@Test
public void testFilterCondition() {

  List<Pair<FilterOperation, List<OperationProcessor>>> conditions =
      new ArrayList<Pair<FilterOperation, List<OperationProcessor>>>();
  /*
   * Case 1
   */
  List<OperationProcessor> case1Ops = new ArrayList<OperationProcessor>();
  BasicFilterOperationFactory fOp = new BasicFilterOperationFactory();
  BasicFilterOperationConfig fOpConf = new BasicFilterOperationConfig();
  fOpConf.setPass(false);
  fOp.setConf(fOpConf);
  case1Ops.add(new OperationProcessor(fOp));
  FilterOperation case1Filter = new BasicFilterOperation(true);
  conditions
      .add(new ImmutablePair<FilterOperation, List<OperationProcessor>>(case1Filter, case1Ops));
  ConditionalOperation op = new ConditionalOperation(conditions, false);
  /*
   * Create thread that supplies input events
   */
  Queue<InternalEvent> inputQueue = new Queue<InternalEvent>();
  supply(2, inputQueue);
  /*
   * Process
   */
  Stream<InternalEvent> input = inputQueue.stream();
  Stream<InternalEvent> output = op.getOutputStream(input);
  List<String> actual = output.map(m -> {
    return m.getEventObj().getPayload().toString();
  }).collect(Collectors.toList());
  assertEquals(0, actual.size());
}