Search in sources :

Example 61 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class ParseTreeEvaluatorListenerTest method testSimpleConditionalOperatorExpressionWithInValidLiteralType.

@Test
void testSimpleConditionalOperatorExpressionWithInValidLiteralType() {
    final String andStatement = "1 and false";
    final String orStatement = "true or 0";
    final Event testEvent = createTestEvent(new HashMap<>());
    assertThrows(ExpressionEvaluationException.class, () -> evaluateStatementOnEvent(andStatement, testEvent));
    assertThrows(ExpressionEvaluationException.class, () -> evaluateStatementOnEvent(orStatement, testEvent));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Example 62 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class ParseTreeEvaluatorListenerTest method testSimpleRelationalOperatorExpressionWithJsonPointerTypeValidValue.

@Test
void testSimpleRelationalOperatorExpressionWithJsonPointerTypeValidValue() {
    final String testKey = "testKey";
    final int testValue = random.nextInt(1000);
    final Map<String, Integer> data = Map.of(testKey, testValue);
    final Event testEvent = createTestEvent(data);
    final String greaterThanStatement = String.format(" /%s > %d", testKey, testValue - 1);
    final String greaterThanOrEqualStatement = String.format(" /%s >= /%s", testKey, testKey);
    final String lessThanStatement = String.format(" /%s < %d", testKey, testValue + 1);
    final String lessThanOrEqualStatement = String.format(" /%s <= /%s", testKey, testKey);
    assertThat(evaluateStatementOnEvent(greaterThanStatement, testEvent), is(true));
    assertThat(evaluateStatementOnEvent(greaterThanOrEqualStatement, testEvent), is(true));
    assertThat(evaluateStatementOnEvent(lessThanStatement, testEvent), is(true));
    assertThat(evaluateStatementOnEvent(lessThanOrEqualStatement, testEvent), is(true));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Example 63 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class ParseTreeEvaluatorListenerTest method testVisitErrorNode.

@Test
void testVisitErrorNode() {
    final ErrorNode errorNode = mock(ErrorNode.class);
    final Event testEvent = createTestEvent(new HashMap<>());
    objectUnderTest = createObjectUnderTest(testEvent);
    assertThrows(RuntimeException.class, () -> objectUnderTest.visitErrorNode(errorNode));
}
Also used : ErrorNode(org.antlr.v4.runtime.tree.ErrorNode) Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Example 64 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class ParseTreeEvaluatorListenerTest method testMultipleOperatorsExpressionEqualityPriorToConditional.

@Test
void testMultipleOperatorsExpressionEqualityPriorToConditional() {
    final Event testEvent = createTestEvent(new HashMap<>());
    final String equalPriorToAndStatement = "true and 1 == 1";
    final String equalPriorToOrStatement = "false or 1 == 1";
    final String notEqualPriorToAndStatement = "true and 1 != 2";
    final String notEqualPriorToOrStatement = "false or 1 != 2";
    assertThat(evaluateStatementOnEvent(equalPriorToAndStatement, testEvent), is(true));
    assertThat(evaluateStatementOnEvent(equalPriorToOrStatement, testEvent), is(true));
    assertThat(evaluateStatementOnEvent(notEqualPriorToAndStatement, testEvent), is(true));
    assertThat(evaluateStatementOnEvent(notEqualPriorToOrStatement, testEvent), is(true));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Example 65 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class ParseTreeEvaluatorListenerTest method testSimpleEqualityOperatorExpressionWithEscapeJsonPointerType.

@Test
void testSimpleEqualityOperatorExpressionWithEscapeJsonPointerType() {
    final String testKey = "testKey";
    final Integer testValue = random.nextInt(1000);
    final Map<String, Integer> data = Map.of(testKey, testValue);
    final Event testEvent = createTestEvent(data);
    final String equalStatement = String.format("\"/%s\" == %d", testKey, testValue);
    assertThat(evaluateStatementOnEvent(equalStatement, testEvent), is(true));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Aggregations

Event (com.amazon.dataprepper.model.event.Event)81 Test (org.junit.jupiter.api.Test)52 JacksonEvent (com.amazon.dataprepper.model.event.JacksonEvent)46 Record (com.amazon.dataprepper.model.record.Record)23 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)22 List (java.util.List)12 TestObject (org.opensearch.dataprepper.expression.util.TestObject)11 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)10 ArrayList (java.util.ArrayList)7 HashMap (java.util.HashMap)7 MethodSource (org.junit.jupiter.params.provider.MethodSource)6 ZonedDateTime (java.time.ZonedDateTime)5 Map (java.util.Map)5 ParseTree (org.antlr.v4.runtime.tree.ParseTree)4 AggregateActionInput (com.amazon.dataprepper.plugins.processor.aggregate.AggregateActionInput)3 InputStream (java.io.InputStream)3 LinkedList (java.util.LinkedList)3 Random (java.util.Random)3 Test (org.junit.Test)3 ValueSource (org.junit.jupiter.params.provider.ValueSource)3