final ArrayList<Processor> processors = Lists.newArrayList(RootOutputExecutionTracker, RootNoOutput, NeedsTable, NeedsMap,
RootMapOut, RootTableAndWidthOut);
ProcessorDependencyGraph graph = this.processorDependencyGraphFactory.build(processors);
assertContainsProcessors(graph.getRoots(), RootOutputExecutionTracker);
final TestOrderExecution execution = new TestOrderExecution();
Values values = new Values();
values.put(EXECUTION_TRACKER, execution);
forkJoinPool.invoke(graph.createTask(values));
assertEquals(0, execution.testOrderExecution.size());
TestOrderExecution correctTracker = values.getObject(EXECUTION_TRACKER, TestOrderExecution.class);
assertEquals(correctTracker.testOrderExecution.toString(), 5, correctTracker.testOrderExecution.size());
assertHasOrdering(correctTracker, RootMapOut, NeedsMap);
assertHasOrdering(correctTracker, RootTableAndWidthOut, NeedsTable);