Search in sources :

Example 71 with Event

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

the class StdInSourceTests method testStdInSourceSuccessfulWriteToBuffer.

@Test
public void testStdInSourceSuccessfulWriteToBuffer() {
    final Queue<Record<Event>> bufferQueue = new LinkedList<>();
    final TestBuffer buffer = new TestBuffer(bufferQueue, 1);
    final StdInSource stdInSource = new StdInSource(TEST_WRITE_TIMEOUT, TEST_PIPELINE_NAME);
    assertThat(buffer.size(), is(equalTo(0)));
    stdInSource.start(buffer);
    assertThat(buffer.size(), is(equalTo(1)));
    final Map.Entry<Collection<Record<Event>>, CheckpointState> readResult = buffer.read(TEST_WRITE_TIMEOUT);
    final Collection<Record<Event>> recordsFromBuffer = readResult.getKey();
    assertThat(recordsFromBuffer.size(), is(equalTo(1)));
    recordsFromBuffer.forEach(actualRecord -> assertThat(actualRecord.getData().get("message", String.class), is(equalTo(READ_CONTENT))));
}
Also used : TestBuffer(com.amazon.dataprepper.plugins.buffer.TestBuffer) Collection(java.util.Collection) Event(com.amazon.dataprepper.model.event.Event) Record(com.amazon.dataprepper.model.record.Record) CheckpointState(com.amazon.dataprepper.model.CheckpointState) Map(java.util.Map) LinkedList(java.util.LinkedList) Test(org.junit.Test)

Example 72 with Event

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

the class AggregateActionSynchronizerTest method concludeGroup_with_tryLock_true_calls_expected_functions_and_returns_correct_event.

@Test
void concludeGroup_with_tryLock_true_calls_expected_functions_and_returns_correct_event() {
    final AggregateActionSynchronizer objectUnderTest = createObjectUnderTest();
    when(concludeGroupLock.tryLock()).thenReturn(true);
    when(aggregateAction.concludeGroup(aggregateGroup)).thenReturn(Optional.of(event));
    final Optional<Event> concludeGroupEvent = objectUnderTest.concludeGroup(identificationHash, aggregateGroup);
    final InOrder inOrder = Mockito.inOrder(handleEventForGroupLock, aggregateAction, aggregateGroupManager, concludeGroupLock);
    inOrder.verify(handleEventForGroupLock).lock();
    inOrder.verify(aggregateAction).concludeGroup(aggregateGroup);
    inOrder.verify(aggregateGroupManager).closeGroup(identificationHash, aggregateGroup);
    inOrder.verify(handleEventForGroupLock).unlock();
    inOrder.verify(concludeGroupLock).unlock();
    assertThat(concludeGroupEvent.isPresent(), equalTo(true));
    assertThat(concludeGroupEvent.get(), equalTo(event));
}
Also used : InOrder(org.mockito.InOrder) Event(com.amazon.dataprepper.model.event.Event) Test(org.junit.jupiter.api.Test)

Example 73 with Event

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

the class AggregateActionSynchronizerTest method locks_are_unlocked_and_empty_optional_returned_when_aggregateAction_concludeGroup_throws_exception.

@Test
void locks_are_unlocked_and_empty_optional_returned_when_aggregateAction_concludeGroup_throws_exception() {
    final AggregateActionSynchronizer objectUnderTest = createObjectUnderTest();
    when(concludeGroupLock.tryLock()).thenReturn(true);
    when(aggregateAction.concludeGroup(aggregateGroup)).thenThrow(RuntimeException.class);
    final Optional<Event> concludeGroupEvent = objectUnderTest.concludeGroup(identificationHash, aggregateGroup);
    final InOrder inOrder = Mockito.inOrder(handleEventForGroupLock, aggregateAction, concludeGroupLock, actionConcludeGroupEventsProcessingErrors);
    inOrder.verify(handleEventForGroupLock).lock();
    inOrder.verify(aggregateAction).concludeGroup(aggregateGroup);
    inOrder.verify(actionConcludeGroupEventsProcessingErrors).increment();
    inOrder.verify(handleEventForGroupLock).unlock();
    inOrder.verify(concludeGroupLock).unlock();
    assertThat(concludeGroupEvent, equalTo(Optional.empty()));
}
Also used : InOrder(org.mockito.InOrder) Event(com.amazon.dataprepper.model.event.Event) Test(org.junit.jupiter.api.Test)

Example 74 with Event

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

the class AggregateIdentificationKeysHasherTest method different_identification_hashes_are_not_considered_equal.

@Test
void different_identification_hashes_are_not_considered_equal() {
    aggregateIdentificationKeysHasher = createObjectUnderTest();
    final Map<Object, Object> eventMap = new HashMap<>();
    eventMap.put("firstIdentificationKey", UUID.randomUUID().toString());
    eventMap.put("secondIdentificationKey", UUID.randomUUID().toString());
    eventMap.put(UUID.randomUUID().toString(), UUID.randomUUID().toString());
    final Map<Object, Object> secondEventMap = new HashMap<>(eventMap);
    secondEventMap.remove("firstIdentificationKey");
    event = JacksonEvent.builder().withEventType("event").withData(eventMap).build();
    final Event secondEvent = JacksonEvent.builder().withEventType("event").withData(secondEventMap).build();
    final AggregateIdentificationKeysHasher.IdentificationHash result = aggregateIdentificationKeysHasher.createIdentificationKeyHashFromEvent(event);
    final AggregateIdentificationKeysHasher.IdentificationHash secondResult = aggregateIdentificationKeysHasher.createIdentificationKeyHashFromEvent(secondEvent);
    assertThat(result, is(not(equalTo(secondResult))));
}
Also used : HashMap(java.util.HashMap) Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Test(org.junit.jupiter.api.Test)

Example 75 with Event

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

the class AggregateProcessorIT method getBatchOfEvents.

private List<Record<Event>> getBatchOfEvents() {
    final List<Record<Event>> events = new ArrayList<>();
    for (int i = 0; i < NUM_EVENTS_PER_BATCH; i++) {
        final Map<String, Object> eventMap = getEventMap(i % NUM_UNIQUE_EVENTS_PER_BATCH);
        final Event event = JacksonEvent.builder().withEventType("event").withData(eventMap).build();
        uniqueEventMaps.add(eventMap);
        events.add(new Record<>(event));
    }
    return events;
}
Also used : ArrayList(java.util.ArrayList) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Event(com.amazon.dataprepper.model.event.Event) Record(com.amazon.dataprepper.model.record.Record)

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