source: class CompositeOperatorTest extends Operator<Self> {
  
  	@Test
  	public void testAsElementaryOperators() throws Exception {
  
target: 		final Operator<?> input1 = new Source("file://1");
  		final Operator<?> input2 = new Source("file://2");
  		final Operator<?> input3 = new Source("file://3");
  		final CompositeOperator<?> fixture = new CompositeOperatorImpl(1);
  		fixture.setInputs(input1, input2, input3);
  
  		final ElementarySopremoModule module = fixture.asElementaryOperators();
  
  		assertNotNull(module);
  		final List<Level<Operator<?>>> reachableNodes = GraphLevelPartitioner.getLevels(
  			module.getAllOutputs(), OperatorNavigator.INSTANCE);
  		assertEquals(3, reachableNodes.get(0).getLevelNodes().size());
  		assertEquals(1, reachableNodes.get(1).getLevelNodes().size());
  		assertEquals(1, reachableNodes.get(2).getLevelNodes().size());
  		assertEquals(1, reachableNodes.get(3).getLevelNodes().size());
  
  		for (int index = 0; index < 3; index++)
  			assertSame(Source.class, reachableNodes.get(0).getLevelNodes().get(index).getClass());
  		assertSame(ElementaryOperatorImpl.class, reachableNodes.get(1)
  			.getLevelNodes().get(0).getClass());
  		assertSame(ElementaryOperatorImpl.class, reachableNodes.get(2)
  			.getLevelNodes().get(0).getClass());
  		assertSame(Sink.class, reachableNodes.get(3).getLevelNodes().get(0).getClass());
  	}
  
  }