Search in sources :

Example 56 with Event

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

the class ParseTreeEvaluatorListenerTest method testSinglePrimaryExpression.

@Test
void testSinglePrimaryExpression() {
    final String testStringValue = "test string";
    final String testSingleStringStatement = String.format("\"%s\"", testStringValue);
    final Integer testInteger = random.nextInt(1000);
    final String testSingleIntegerStatement = String.format("%d", testInteger);
    final Float testFloat = random.nextFloat();
    final String testSingleFloatStatement = String.valueOf(testFloat);
    final String testSingleBooleanStatement = "true";
    final String testKey = "testKey";
    final Integer testValue = random.nextInt();
    final Map<String, Integer> data = Map.of(testKey, testValue);
    final Event testEvent = createTestEvent(data);
    final String testSingleJsonPointerStatement = String.format("/%s", testKey);
    final String testSingleEscapeJsonPointerStatement = String.format("\"/%s\"", testKey);
    assertThat(evaluateStatementOnEvent(testSingleStringStatement, testEvent), equalTo(testStringValue));
    assertThat(evaluateStatementOnEvent(testSingleIntegerStatement, testEvent), equalTo(testInteger));
    assertThat(evaluateStatementOnEvent(testSingleFloatStatement, testEvent), equalTo(testFloat));
    assertThat(evaluateStatementOnEvent(testSingleBooleanStatement, testEvent), equalTo(true));
    assertThat(evaluateStatementOnEvent(testSingleJsonPointerStatement, testEvent), equalTo(testValue));
    assertThat(evaluateStatementOnEvent(testSingleEscapeJsonPointerStatement, testEvent), equalTo(testValue));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Example 57 with Event

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

the class ParseTreeEvaluatorListenerTest method testSimpleRelationalOperatorExpressionWithInValidLiteralType.

@Test
void testSimpleRelationalOperatorExpressionWithInValidLiteralType() {
    final String greaterThanStatement = "2 > true";
    final String greaterThanOrEqualStatement = "1 >= true";
    final String lessThanStatement = "1 < true";
    final String lessThanOrEqualStatement = "1 <= true";
    final Event testEvent = createTestEvent(new HashMap<>());
    assertThrows(ExpressionEvaluationException.class, () -> evaluateStatementOnEvent(greaterThanStatement, testEvent));
    assertThrows(ExpressionEvaluationException.class, () -> evaluateStatementOnEvent(greaterThanOrEqualStatement, testEvent));
    assertThrows(ExpressionEvaluationException.class, () -> evaluateStatementOnEvent(lessThanStatement, testEvent));
    assertThrows(ExpressionEvaluationException.class, () -> evaluateStatementOnEvent(lessThanOrEqualStatement, testEvent));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Example 58 with Event

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

the class ParseTreeEvaluatorListenerTest method testSimpleConditionalOperatorExpressionWithJsonPointerTypeValidValue.

@Test
void testSimpleConditionalOperatorExpressionWithJsonPointerTypeValidValue() {
    final String testKey = "testKey";
    final boolean testValue = true;
    final Map<String, Boolean> data = Map.of(testKey, testValue);
    final Event testEvent = createTestEvent(data);
    final String andStatement = String.format("/%s and false", testKey);
    final String orStatement = String.format("/%s or false", testKey);
    assertThat(evaluateStatementOnEvent(andStatement, testEvent), is(false));
    assertThat(evaluateStatementOnEvent(orStatement, 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 59 with Event

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

the class ParseTreeEvaluatorListenerTest method testSimpleNotOperatorExpressionWithInValidLiteralType.

@Test
void testSimpleNotOperatorExpressionWithInValidLiteralType() {
    final String notStatement = "not 1";
    final Event testEvent = createTestEvent(new HashMap<>());
    assertThrows(ExpressionEvaluationException.class, () -> evaluateStatementOnEvent(notStatement, testEvent));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Example 60 with Event

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

the class ParseTreeEvaluatorListenerTest method testSimpleConditionalOperatorExpressionWithJsonPointerTypeInValidValue.

@Test
void testSimpleConditionalOperatorExpressionWithJsonPointerTypeInValidValue() {
    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 andStatement = String.format("/%s and false", testKey);
    final String orStatement = String.format("/%s or false", testKey);
    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)

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