use of com.nextdoor.bender.LambdaContext in project bender by Nextdoor.
the class ContextSubstitutionTest method testExcludesContext.
@Test
public void testExcludesContext() throws FieldNotFoundException {
ArrayList<Substitution> substitutions = new ArrayList<Substitution>();
substitutions.add(new ContextSubstitution("foo", Collections.emptyList(), Arrays.asList("functionName"), true));
DummpyMapEvent devent = new DummpyMapEvent();
TestContext ctx = new TestContext();
ctx.setFunctionName("fun name");
ctx.setInvokedFunctionArn("some arn");
InternalEvent ievent = new InternalEvent("", new LambdaContext(ctx), 10);
ievent.setEventObj(devent);
ievent.setEventTime(20);
SubstitutionOperation op = new SubstitutionOperation(substitutions);
op.perform(ievent);
Map<String, Object> expected = new HashMap<String, Object>() {
{
put("invokedFunctionArn", "some arn");
}
};
assertEquals(expected, devent.getField("foo"));
}
use of com.nextdoor.bender.LambdaContext in project bender by Nextdoor.
the class ContextSubstitutionTest method testIncludesContext.
@Test
public void testIncludesContext() throws FieldNotFoundException {
ArrayList<Substitution> substitutions = new ArrayList<Substitution>();
substitutions.add(new ContextSubstitution("foo", Arrays.asList("functionName"), Collections.emptyList(), true));
DummpyMapEvent devent = new DummpyMapEvent();
TestContext ctx = new TestContext();
ctx.setFunctionName("fun name");
ctx.setInvokedFunctionArn("some arn");
InternalEvent ievent = new InternalEvent("", new LambdaContext(ctx), 10);
ievent.setEventObj(devent);
ievent.setEventTime(20);
SubstitutionOperation op = new SubstitutionOperation(substitutions);
op.perform(ievent);
Map<String, Object> expected = new HashMap<String, Object>() {
{
put("functionName", "fun name");
}
};
assertEquals(expected, devent.getField("foo"));
}
use of com.nextdoor.bender.LambdaContext 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.LambdaContext 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.LambdaContext 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);
}
Aggregations