### Question:
FixedFlowController extends CasFlowController_ImplBase { @Override public Flow computeFlow(CAS aCAS) throws AnalysisEngineProcessException { return new FixedFlowObject(0); }  @Override synchronized void initialize(FlowControllerContext aContext); @Override Flow computeFlow(CAS aCAS); @Override void addAnalysisEngines(Collection<String> aKeys); @Override void removeAnalysisEngines(Collection<String> aKeys); static FlowControllerDescription getDescription(); static FlowControllerDescription makeDefaultDescription(); static final String PARAM_ACTION_AFTER_CAS_MULTIPLIER; }### Answer:
@Test public void testComputeFlow() throws Exception { CAS cas1 = CasCreationUtils.createCas(new TypeSystemDescription_impl(), null, null); CAS cas2 = CasCreationUtils.createCas(new TypeSystemDescription_impl(), null, null); Flow flow1 = fixedFlowController.computeFlow(cas1); Flow flow2 = fixedFlowController.computeFlow(cas2); Step step = flow1.next(); assertTrue(step instanceof SimpleStep); assertEquals("key1", ((SimpleStep)step).getAnalysisEngineKey()); step = flow1.next(); assertTrue(step instanceof SimpleStep); assertEquals("key2", ((SimpleStep)step).getAnalysisEngineKey()); step = flow2.next(); assertTrue(step instanceof SimpleStep); assertEquals("key1", ((SimpleStep)step).getAnalysisEngineKey()); step = flow1.next(); assertTrue(step instanceof SimpleStep); assertEquals("key3", ((SimpleStep)step).getAnalysisEngineKey()); step = flow2.next(); assertTrue(step instanceof SimpleStep); assertEquals("key2", ((SimpleStep)step).getAnalysisEngineKey()); step = flow1.next(); assertTrue(step instanceof FinalStep); step = flow2.next(); assertTrue(step instanceof SimpleStep); assertEquals("key3", ((SimpleStep)step).getAnalysisEngineKey()); step = flow2.next(); assertTrue(step instanceof FinalStep); }