@Test
public void testTopologicalSort1() {

	try {
		JobVertex source1 = new JobVertex("source1");
		JobVertex source2 = new JobVertex("source2");
		JobVertex target1 = new JobVertex("target1");
		JobVertex target2 = new JobVertex("target2");
		JobVertex intermediate1 = new JobVertex("intermediate1");
		JobVertex intermediate2 = new JobVertex("intermediate2");
		
		target1.connectNewDataSetAsInput(source1, DistributionPattern.POINTWISE, ResultPartitionType.PIPELINED);
		target2.connectNewDataSetAsInput(source1, DistributionPattern.POINTWISE, ResultPartitionType.PIPELINED);
		target2.connectNewDataSetAsInput(intermediate2, DistributionPattern.POINTWISE, ResultPartitionType.PIPELINED);
		intermediate2.connectNewDataSetAsInput(intermediate1, DistributionPattern.POINTWISE, ResultPartitionType.PIPELINED);
		intermediate1.connectNewDataSetAsInput(source2, DistributionPattern.POINTWISE, ResultPartitionType.PIPELINED);
		JobGraph graph = new JobGraph("TestGraph",
			source1, source2, intermediate1, intermediate2, target1, target2);
		List<JobVertex> sorted = graph.getVerticesSortedTopologicallyFromSources();
		
		assertEquals(6, sorted.size());
		
		assertBefore(source1, target1, sorted);
		assertBefore(source1, target2, sorted);
		assertBefore(source2, target2, sorted);
		assertBefore(source2, intermediate1, sorted);
		assertBefore(source2, intermediate2, sorted);
		assertBefore(intermediate1, target2, sorted);
		assertBefore(intermediate2, target2, sorted);
	}
	catch (Exception e) {
		e.printStackTrace();
		fail(e.getMessage());
	}
}