コード例 #1
0
  /** @param oper Data value for comparison. */
  @SuppressWarnings({"rawtypes", "unchecked"})
  public <V extends Number> void testNodeProcessingSchema(Change<V> oper) {
    CollectorTestSink changeSink = new CollectorTestSink();
    CollectorTestSink percentSink = new CollectorTestSink();

    oper.change.setSink(changeSink);
    oper.percent.setSink(percentSink);

    oper.beginWindow(0);
    oper.base.process(oper.getValue(10));
    oper.data.process(oper.getValue(5));
    oper.data.process(oper.getValue(15));
    oper.data.process(oper.getValue(20));
    oper.endWindow();

    Assert.assertEquals("number emitted tuples", 3, changeSink.collectedTuples.size());
    Assert.assertEquals("number emitted tuples", 3, percentSink.collectedTuples.size());

    log.debug("\nLogging tuples");
    for (Object o : changeSink.collectedTuples) {
      log.debug(String.format("change %s", o));
    }
    for (Object o : percentSink.collectedTuples) {
      log.debug(String.format("percent change %s", o));
    }
  }