### Question:
FixedFlowController extends CasFlowController_ImplBase { @Override public void addAnalysisEngines(Collection<String> aKeys) { mSequence.addAll(aKeys); }  @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 testAddAnalysisEngines() throws Exception { CAS cas = CasCreationUtils.createCas(new TypeSystemDescription_impl(), null, null); Flow flow = fixedFlowController.computeFlow(cas); Step step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key1", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key2", ((SimpleStep)step).getAnalysisEngineKey()); AnalysisEngineMetaData delegateMd = new AnalysisEngineMetaData_impl(); delegateMd.setOperationalProperties(new OperationalProperties_impl()); analysisEngineMetaDataMap.put("key4", delegateMd); analysisEngineMetaDataMap.put("key5", delegateMd); List<String> newAeKeys = new ArrayList<>(); newAeKeys.add("key4"); newAeKeys.add("key5"); fixedFlowController.addAnalysisEngines(newAeKeys); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key3", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key4", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key5", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof FinalStep); flow = fixedFlowController.computeFlow(cas); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key1", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key2", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key3", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key4", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key5", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof FinalStep); }