public void testMergeGateGroupStream() { List<String> values = new ArrayList<String>(); for (int i = 0; i < 10; i++) values.add("value"); TestSourceStage source1 = new TestSourceStage<String>(values); TestSourceStage source2 = new TestSourceStage<String>(values); Gate<String, String> gate = new TestGate<String, String>(); CountingCollectStage stage1 = new CountingCollectStage<String, String>(); CountingCollectStage stage2 = new CountingCollectStage<String, String>(); TestSinkStage sink = new TestSinkStage<String>(); StreamGraph graph = new StreamGraph(); graph.addHead(source1); graph.addHead(source2); graph.addPath(source1, 0, gate); graph.addPath(source2, 1, gate); graph.addPath(gate, stage1); graph.addPath(stage1, stage2); graph.addPath(stage2, sink); graph.addTail(sink); graph.bind(); graph.prepare(); source1.receiveFirst(null); source2.receiveFirst(null); graph.cleanup(); assertPrepareCleanup(stage1); assertEquals(values.size() * 2, stage1.getReceiveCount()); assertEquals(1, stage1.getStartCount()); assertEquals(1, stage1.getCompleteCount()); assertEquals(values.size() * 2, stage2.getReceiveCount()); assertEquals(1, stage2.getStartCount()); assertEquals(1, stage2.getCompleteCount()); assertEquals(1, sink.getResults().size()); }
private void assertPrepareCleanup(CountingCollectStage stage) { assertEquals(1, stage.getPrepareCount()); assertEquals(1, stage.getCleanupCount()); }