public void testClosureDeltaIteration() {
FileDataSource sourceA = new FileDataSource(DummyInputFormat.class, IN_FILE, "Source 1");
FileDataSource sourceB = new FileDataSource(DummyInputFormat.class, IN_FILE, "Source 2");
FileDataSource sourceC = new FileDataSource(DummyInputFormat.class, IN_FILE, "Source 3");
FileDataSink sink1 = new FileDataSink(DummyOutputFormat.class, OUT_FILE, sourceA, "Sink 1");
FileDataSink sink2 = new FileDataSink(DummyOutputFormat.class, OUT_FILE, sourceC, "Sink 2");
DeltaIteration iteration = new DeltaIteration(0, "Loop");
iteration.setInitialSolutionSet(sourceA);
iteration.setInitialWorkset(sourceB);
iteration.setMaximumNumberOfIterations(10);
CrossOperator nextWorkset = CrossOperator.builder(DummyCrossStub.class).name("Next workset").
input1(iteration.getWorkset()).
input2(sourceC).
build();
JoinOperator solutionSetDelta = JoinOperator.builder(DummyMatchStub.class, LongValue.class,0,0).
name("Next solution set.").
input1(nextWorkset).
input2(iteration.getSolutionSet()).
build();
iteration.setNextWorkset(nextWorkset);
iteration.setSolutionSetDelta(solutionSetDelta);
FileDataSink sink3 = new FileDataSink(DummyOutputFormat.class, OUT_FILE, iteration, "Sink 3");
List<FileDataSink> sinks = new ArrayList<FileDataSink>();
sinks.add(sink1);
sinks.add(sink2);
sinks.add(sink3);