Search in sources :

Example 1 with DummyAppendOperationConfig

use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig 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));
}
Also used : Arrays(java.util.Arrays) Monitor(com.nextdoor.bender.monitoring.Monitor) FilterOperation(com.nextdoor.bender.operation.FilterOperation) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) DummyStringEvent(com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyStringEvent) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) Collectors(java.util.stream.Collectors) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) ArrayList(java.util.ArrayList) List(java.util.List) Stream(java.util.stream.Stream) ConditionalOperation(com.nextdoor.bender.operation.conditional.ConditionalOperation) Queue(com.oath.cyclops.async.adapters.Queue) Pair(org.apache.commons.lang3.tuple.Pair) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) BasicFilterOperationConfig(com.nextdoor.bender.operation.filter.BasicFilterOperationConfig) Assert.assertEquals(org.junit.Assert.assertEquals) Before(org.junit.Before) BasicFilterOperationFactory(com.nextdoor.bender.operation.filter.BasicFilterOperationFactory) ArrayList(java.util.ArrayList) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) ConditionalOperation(com.nextdoor.bender.operation.conditional.ConditionalOperation) FilterOperation(com.nextdoor.bender.operation.FilterOperation) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) ArrayList(java.util.ArrayList) List(java.util.List) Queue(com.oath.cyclops.async.adapters.Queue) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) Pair(org.apache.commons.lang3.tuple.Pair) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) Test(org.junit.Test)

Example 2 with DummyAppendOperationConfig

use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig 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));
}
Also used : Arrays(java.util.Arrays) Monitor(com.nextdoor.bender.monitoring.Monitor) FilterOperation(com.nextdoor.bender.operation.FilterOperation) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) DummyStringEvent(com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyStringEvent) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) Collectors(java.util.stream.Collectors) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) ArrayList(java.util.ArrayList) List(java.util.List) Stream(java.util.stream.Stream) ConditionalOperation(com.nextdoor.bender.operation.conditional.ConditionalOperation) Queue(com.oath.cyclops.async.adapters.Queue) Pair(org.apache.commons.lang3.tuple.Pair) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) BasicFilterOperationConfig(com.nextdoor.bender.operation.filter.BasicFilterOperationConfig) Assert.assertEquals(org.junit.Assert.assertEquals) Before(org.junit.Before) BasicFilterOperationFactory(com.nextdoor.bender.operation.filter.BasicFilterOperationFactory) ArrayList(java.util.ArrayList) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) ConditionalOperation(com.nextdoor.bender.operation.conditional.ConditionalOperation) FilterOperation(com.nextdoor.bender.operation.FilterOperation) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) ArrayList(java.util.ArrayList) List(java.util.List) Queue(com.oath.cyclops.async.adapters.Queue) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) Pair(org.apache.commons.lang3.tuple.Pair) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) Test(org.junit.Test)

Example 3 with DummyAppendOperationConfig

use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig 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));
}
Also used : Arrays(java.util.Arrays) Monitor(com.nextdoor.bender.monitoring.Monitor) FilterOperation(com.nextdoor.bender.operation.FilterOperation) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) DummyStringEvent(com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyStringEvent) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) Collectors(java.util.stream.Collectors) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) ArrayList(java.util.ArrayList) List(java.util.List) Stream(java.util.stream.Stream) ConditionalOperation(com.nextdoor.bender.operation.conditional.ConditionalOperation) Queue(com.oath.cyclops.async.adapters.Queue) Pair(org.apache.commons.lang3.tuple.Pair) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) BasicFilterOperationConfig(com.nextdoor.bender.operation.filter.BasicFilterOperationConfig) Assert.assertEquals(org.junit.Assert.assertEquals) Before(org.junit.Before) BasicFilterOperationFactory(com.nextdoor.bender.operation.filter.BasicFilterOperationFactory) ArrayList(java.util.ArrayList) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) ConditionalOperation(com.nextdoor.bender.operation.conditional.ConditionalOperation) FilterOperation(com.nextdoor.bender.operation.FilterOperation) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) ArrayList(java.util.ArrayList) List(java.util.List) Queue(com.oath.cyclops.async.adapters.Queue) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) Pair(org.apache.commons.lang3.tuple.Pair) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) Test(org.junit.Test)

Example 4 with DummyAppendOperationConfig

use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig 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));
}
Also used : Arrays(java.util.Arrays) Monitor(com.nextdoor.bender.monitoring.Monitor) FilterOperation(com.nextdoor.bender.operation.FilterOperation) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) DummyStringEvent(com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyStringEvent) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) Collectors(java.util.stream.Collectors) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) ArrayList(java.util.ArrayList) List(java.util.List) Stream(java.util.stream.Stream) ConditionalOperation(com.nextdoor.bender.operation.conditional.ConditionalOperation) Queue(com.oath.cyclops.async.adapters.Queue) Pair(org.apache.commons.lang3.tuple.Pair) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) BasicFilterOperationConfig(com.nextdoor.bender.operation.filter.BasicFilterOperationConfig) Assert.assertEquals(org.junit.Assert.assertEquals) Before(org.junit.Before) BasicFilterOperationFactory(com.nextdoor.bender.operation.filter.BasicFilterOperationFactory) ArrayList(java.util.ArrayList) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) ConditionalOperation(com.nextdoor.bender.operation.conditional.ConditionalOperation) FilterOperation(com.nextdoor.bender.operation.FilterOperation) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) ArrayList(java.util.ArrayList) List(java.util.List) Queue(com.oath.cyclops.async.adapters.Queue) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) Pair(org.apache.commons.lang3.tuple.Pair) BasicFilterOperation(com.nextdoor.bender.operation.filter.BasicFilterOperation) Test(org.junit.Test)

Example 5 with DummyAppendOperationConfig

use of com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig 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));
}
Also used : DummyNullOperation(com.nextdoor.bender.testutils.DummyOperationHelper.DummyNullOperation) Arrays(java.util.Arrays) Monitor(com.nextdoor.bender.monitoring.Monitor) DummyThrottleOperationFactory(com.nextdoor.bender.testutils.DummyThrottleOperationHelper.DummyThrottleOperationFactory) Assert.assertTrue(org.junit.Assert.assertTrue) Stat(com.nextdoor.bender.monitoring.Stat) HashMap(java.util.HashMap) Test(org.junit.Test) DummyStringEvent(com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyStringEvent) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) Collectors(java.util.stream.Collectors) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) ArrayList(java.util.ArrayList) List(java.util.List) Stream(java.util.stream.Stream) Queue(com.oath.cyclops.async.adapters.Queue) Map(java.util.Map) DummyOperationFactory(com.nextdoor.bender.testutils.DummyOperationHelper.DummyOperationFactory) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) Assert.assertEquals(org.junit.Assert.assertEquals) Before(org.junit.Before) ArrayList(java.util.ArrayList) OperationProcessor(com.nextdoor.bender.operation.OperationProcessor) InternalEvent(com.nextdoor.bender.InternalEvent) DummyAppendOperationFactory(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory) DummyAppendOperationConfig(com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig) ArrayList(java.util.ArrayList) List(java.util.List) Queue(com.oath.cyclops.async.adapters.Queue) Test(org.junit.Test)

Aggregations

InternalEvent (com.nextdoor.bender.InternalEvent)5 Monitor (com.nextdoor.bender.monitoring.Monitor)5 OperationProcessor (com.nextdoor.bender.operation.OperationProcessor)5 DummyAppendOperationConfig (com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationConfig)5 DummyAppendOperationFactory (com.nextdoor.bender.testutils.DummyAppendOperationHelper.DummyAppendOperationFactory)5 DummyStringEvent (com.nextdoor.bender.testutils.DummyDeserializerHelper.DummyStringEvent)5 Queue (com.oath.cyclops.async.adapters.Queue)5 ArrayList (java.util.ArrayList)5 Arrays (java.util.Arrays)5 List (java.util.List)5 Collectors (java.util.stream.Collectors)5 Stream (java.util.stream.Stream)5 Assert.assertEquals (org.junit.Assert.assertEquals)5 Assert.assertTrue (org.junit.Assert.assertTrue)5 Before (org.junit.Before)5 Test (org.junit.Test)5 FilterOperation (com.nextdoor.bender.operation.FilterOperation)4 ConditionalOperation (com.nextdoor.bender.operation.conditional.ConditionalOperation)4 BasicFilterOperation (com.nextdoor.bender.operation.filter.BasicFilterOperation)4 BasicFilterOperationConfig (com.nextdoor.bender.operation.filter.BasicFilterOperationConfig)4