use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory in project bender by Nextdoor.
the class ConditionalOperationTest method testTwoConditionsNoMatch.
@Test
public void testTwoConditionsNoMatch() {
List<Pair<FilterOperation, List<OperationProcessor>>> conditions = new ArrayList<Pair<FilterOperation, List<OperationProcessor>>>();
/*
* Case 1
*/
List<OperationProcessor> case1Ops = new ArrayList<OperationProcessor>();
DummyAppendOperationFactory pos = new DummyAppendOperationFactory();
DummyAppendOperationConfig posConf = new DummyAppendOperationConfig();
posConf.setAppendStr("+");
pos.setConf(posConf);
case1Ops.add(new OperationProcessor(pos));
FilterOperation case1Filter = new BasicFilterOperation(false);
conditions.add(new ImmutablePair<FilterOperation, List<OperationProcessor>>(case1Filter, case1Ops));
/*
* Case 2
*/
List<OperationProcessor> case2Ops = new ArrayList<OperationProcessor>();
DummyAppendOperationFactory neg = new DummyAppendOperationFactory();
DummyAppendOperationConfig negConf = new DummyAppendOperationConfig();
negConf.setAppendStr("-");
neg.setConf(negConf);
case2Ops.add(new OperationProcessor(neg));
FilterOperation case2Filter = new BasicFilterOperation(false);
conditions.add(new ImmutablePair<FilterOperation, List<OperationProcessor>>(case2Filter, case2Ops));
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());
List<String> expected = Arrays.asList("0", "1");
assertEquals(2, actual.size());
assertTrue(expected.containsAll(actual));
}
use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory in project bender by Nextdoor.
the class ConditionalOperationTest method testSingleConditionMatch.
@Test
public void testSingleConditionMatch() {
/*
* Setup the pipeline of operation processors
*/
List<Pair<FilterOperation, List<OperationProcessor>>> conditions = new ArrayList<Pair<FilterOperation, List<OperationProcessor>>>();
List<OperationProcessor> case1Ops = new ArrayList<OperationProcessor>();
DummyAppendOperationFactory pos = new DummyAppendOperationFactory();
DummyAppendOperationConfig posConf = new DummyAppendOperationConfig();
posConf.setAppendStr("+");
pos.setConf(posConf);
case1Ops.add(new OperationProcessor(pos));
FilterOperation filter = new BasicFilterOperation(true);
conditions.add(new ImmutablePair<FilterOperation, List<OperationProcessor>>(filter, 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());
List<String> expected = Arrays.asList("0+", "1+");
assertEquals(2, actual.size());
assertTrue(expected.containsAll(actual));
}
use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory in project bender by Nextdoor.
the class ConditionalOperationTest method testSingleConditionNoMatch.
@Test
public void testSingleConditionNoMatch() {
/*
* Setup the pipeline of operation processors
*/
List<Pair<FilterOperation, List<OperationProcessor>>> conditions = new ArrayList<Pair<FilterOperation, List<OperationProcessor>>>();
List<OperationProcessor> case1Ops = new ArrayList<OperationProcessor>();
DummyAppendOperationFactory pos = new DummyAppendOperationFactory();
DummyAppendOperationConfig posConf = new DummyAppendOperationConfig();
posConf.setAppendStr("+");
pos.setConf(posConf);
case1Ops.add(new OperationProcessor(pos));
FilterOperation filter = new BasicFilterOperation(false);
conditions.add(new ImmutablePair<FilterOperation, List<OperationProcessor>>(filter, 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());
List<String> expected = Arrays.asList("0", "1");
assertEquals(2, actual.size());
assertTrue(expected.containsAll(actual));
}
use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory in project bender by Nextdoor.
the class ConditionalOperationTest method testTwoConditions.
@Test
public void testTwoConditions() {
List<Pair<FilterOperation, List<OperationProcessor>>> conditions = new ArrayList<Pair<FilterOperation, List<OperationProcessor>>>();
/*
* Case 1
*/
List<OperationProcessor> case1Ops = new ArrayList<OperationProcessor>();
DummyAppendOperationFactory pos = new DummyAppendOperationFactory();
DummyAppendOperationConfig posConf = new DummyAppendOperationConfig();
posConf.setAppendStr("+");
pos.setConf(posConf);
case1Ops.add(new OperationProcessor(pos));
FilterOperation case1Filter = new BasicFilterOperation(false);
conditions.add(new ImmutablePair<FilterOperation, List<OperationProcessor>>(case1Filter, case1Ops));
/*
* Case 2
*/
List<OperationProcessor> case2Ops = new ArrayList<OperationProcessor>();
DummyAppendOperationFactory neg = new DummyAppendOperationFactory();
DummyAppendOperationConfig negConf = new DummyAppendOperationConfig();
negConf.setAppendStr("-");
neg.setConf(negConf);
case2Ops.add(new OperationProcessor(neg));
FilterOperation case2Filter = new BasicFilterOperation(true);
conditions.add(new ImmutablePair<FilterOperation, List<OperationProcessor>>(case2Filter, case2Ops));
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());
List<String> expected = Arrays.asList("0-", "1-");
assertEquals(2, actual.size());
assertTrue(expected.containsAll(actual));
}
use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory in project bender by Nextdoor.
the class ForkOperationTest method testEventCloning.
@Test
public void testEventCloning() {
/*
* Setup the pipeline of operation processors
*/
List<List<OperationProcessor>> forks = new ArrayList<List<OperationProcessor>>();
/*
* Fork 1 that adds a "+"
*/
List<OperationProcessor> fork1 = new ArrayList<OperationProcessor>();
DummyAppendOperationFactory pos = new DummyAppendOperationFactory();
DummyAppendOperationConfig posConf = new DummyAppendOperationConfig();
posConf.setAppendStr("+");
pos.setConf(posConf);
fork1.add(new OperationProcessor(pos));
forks.add(fork1);
/*
* Fork 2 that adds a "-"
*/
List<OperationProcessor> fork2 = new ArrayList<OperationProcessor>();
DummyAppendOperationFactory neg = new DummyAppendOperationFactory();
DummyAppendOperationConfig negConf = new DummyAppendOperationConfig();
negConf.setAppendStr("-");
neg.setConf(negConf);
fork2.add(new OperationProcessor(neg));
forks.add(fork2);
ForkOperation op = new ForkOperation(forks);
/*
* 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());
List<String> expected = Arrays.asList("0+", "1+", "0-", "1-");
assertEquals(4, actual.size());
assertTrue(expected.containsAll(actual));
}
Aggregations