### Question:
ProcessorFlowsFactory implements FlowsFactory { @Override public Collection<String> getOutputFlows() { return concat( getListener() .map(listener -> concat(getReturnedBranches(listener), getOutputParameters(listener))) .orElseGet(Stream::empty), getAfterGroup().map(this::getOutputParameters).orElseGet(Stream::empty)).distinct().collect(toList()); }  @Override Collection<String> getInputFlows(); @Override Collection<String> getOutputFlows();  }### Answer:
@Test void testGetOutputFlows() { final ProcessorFlowsFactory factory = new ProcessorFlowsFactory(TestProcessor.class); final Collection<String> outputs = factory.getOutputFlows(); assertEquals(2, outputs.size()); assertTrue(outputs.contains("__default__")); assertTrue(outputs.contains("OUTPUT")); }
@Test void testGetMergeOutputFlows() { final ProcessorFlowsFactory factory = new ProcessorFlowsFactory(TestProcessorMergeOutputs.class); final Collection<String> outputs = factory.getOutputFlows(); assertEquals(2, outputs.size()); assertTrue(outputs.contains("__default__")); assertTrue(outputs.contains("OUTPUT")); }