@Test
public void testAsElementaryOperators() throws Exception {

	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());
}