use of com.nextdoor.bender.operation.json.array.ArraySplitOperation in project bender by Nextdoor.
the class ArraySplitOperationTest method testEventString.
@Test
public void testEventString() throws JsonSyntaxException, UnsupportedEncodingException, IOException {
JsonParser parser = new JsonParser();
JsonElement input = parser.parse(getResourceString("array_input.json"));
GenericJsonEvent devent = new GenericJsonEvent(input.getAsJsonObject());
ArraySplitOperation operation = new ArraySplitOperation("$.arr");
InternalEvent ievent = new InternalEvent("", null, 0);
ievent.setEventObj(devent);
List<String> actual = operation.perform(ievent).stream().map(InternalEvent::getEventString).collect(Collectors.toList());
List<String> expected = Arrays.asList("{\"foo\":1}", "{\"foo\":2}", "{\"foo\":3}");
assertEquals(expected, actual);
}
use of com.nextdoor.bender.operation.json.array.ArraySplitOperation in project bender by Nextdoor.
the class ArraySplitOperationTest method testTimeMatch.
@Test
public void testTimeMatch() throws JsonSyntaxException, UnsupportedEncodingException, IOException {
JsonParser parser = new JsonParser();
TestContext t = new TestContext();
t.setFunctionName("foo");
LambdaContext lctx = new LambdaContext(t);
JsonElement input = parser.parse(getResourceString("array_input.json"));
GenericJsonEvent devent = new GenericJsonEvent(input.getAsJsonObject());
ArraySplitOperation operation = new ArraySplitOperation("$.arr");
InternalEvent ievent = new InternalEvent("", lctx, 123);
ievent.setEventObj(devent);
ievent.setEventTime(124);
List<InternalEvent> events = operation.perform(ievent);
assertEquals(ievent.getArrivalTime(), events.get(0).getArrivalTime());
assertEquals(ievent.getEventTime(), events.get(0).getEventTime());
assertEquals(ievent.getArrivalTime(), events.get(1).getArrivalTime());
assertEquals(ievent.getEventTime(), events.get(1).getEventTime());
assertEquals(ievent.getArrivalTime(), events.get(2).getArrivalTime());
assertEquals(ievent.getEventTime(), events.get(2).getEventTime());
}
use of com.nextdoor.bender.operation.json.array.ArraySplitOperation in project bender by Nextdoor.
the class ArraySplitOperationTest method testMetadataMatch.
@Test
public void testMetadataMatch() throws JsonSyntaxException, UnsupportedEncodingException, IOException {
JsonParser parser = new JsonParser();
TestContext t = new TestContext();
t.setFunctionName("foo");
LambdaContext lctx = new LambdaContext(t);
JsonElement input = parser.parse(getResourceString("array_input.json"));
GenericJsonEvent devent = new GenericJsonEvent(input.getAsJsonObject());
ArraySplitOperation operation = new ArraySplitOperation("$.arr");
InternalEvent ievent = new InternalEvent("", lctx, 1);
ievent.setEventObj(devent);
List<InternalEvent> events = operation.perform(ievent);
assertEquals(new Long(1), events.get(0).getEventMetadata().get("arrivalEpochMs"));
assertEquals("6a00541bfa24fd59884de557be71f3a5a1344613", events.get(0).getEventMetadata().get("eventSha1Hash"));
assertEquals(new Long(1), events.get(1).getEventMetadata().get("arrivalEpochMs"));
assertEquals("5cbc013a144777d9ce51385ac24a95ce05f77075", events.get(1).getEventMetadata().get("eventSha1Hash"));
assertEquals(new Long(1), events.get(2).getEventMetadata().get("arrivalEpochMs"));
assertEquals("6c3023db7ef03721c27df9f33b26e0d2cbc84d6b", events.get(2).getEventMetadata().get("eventSha1Hash"));
}
use of com.nextdoor.bender.operation.json.array.ArraySplitOperation in project bender by Nextdoor.
the class ArraySplitOperationTest method testMissingField.
@Test(expected = OperationException.class)
public void testMissingField() throws JsonSyntaxException, UnsupportedEncodingException, IOException {
JsonParser parser = new JsonParser();
TestContext t = new TestContext();
t.setFunctionName("foo");
LambdaContext lctx = new LambdaContext(t);
JsonElement input = parser.parse(getResourceString("array_input.json"));
GenericJsonEvent devent = new GenericJsonEvent(input.getAsJsonObject());
ArraySplitOperation operation = new ArraySplitOperation("$.bar]");
InternalEvent ievent = new InternalEvent("", lctx, 123);
ievent.setEventObj(devent);
ievent.setEventTime(124);
List<InternalEvent> events = operation.perform(ievent);
}
use of com.nextdoor.bender.operation.json.array.ArraySplitOperation in project bender by Nextdoor.
the class ArraySplitOperationTest method testNonArray.
@Test(expected = OperationException.class)
public void testNonArray() throws JsonSyntaxException, UnsupportedEncodingException, IOException {
JsonParser parser = new JsonParser();
TestContext t = new TestContext();
t.setFunctionName("foo");
LambdaContext lctx = new LambdaContext(t);
JsonElement input = parser.parse(getResourceString("array_input.json"));
GenericJsonEvent devent = new GenericJsonEvent(input.getAsJsonObject());
ArraySplitOperation operation = new ArraySplitOperation("$.arr[0]");
InternalEvent ievent = new InternalEvent("", lctx, 123);
ievent.setEventObj(devent);
ievent.setEventTime(124);
List<InternalEvent> events = operation.perform(ievent);
}
Aggregations