Example #1
0
  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());
  }
Example #2
0
 private void assertPrepareCleanup(CountingCollectStage stage) {
   assertEquals(1, stage.getPrepareCount());
   assertEquals(1, stage.getCleanupCount());
 }