### Question:
FixedFlowController extends CasFlowController_ImplBase { @Override public void removeAnalysisEngines(Collection<String> aKeys) throws AnalysisEngineProcessException { mSequence.removeAll(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 testRemoveAnalysisEngines() 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()); analysisEngineMetaDataMap.remove("key2"); List<String> removedKeys = new ArrayList<>(); removedKeys.add("key2"); fixedFlowController.removeAnalysisEngines(removedKeys); step = flow.next(); assertTrue(step instanceof SimpleStep); assertEquals("key3", ((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("key3", ((SimpleStep)step).getAnalysisEngineKey()); step = flow.next(); assertTrue(step instanceof FinalStep); }