Search in sources :

Example 36 with Event

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

the class AggregateActionSynchronizerTest method conclude_group_with_should_conclude_group_false_returns_empty_optional.

@Test
void conclude_group_with_should_conclude_group_false_returns_empty_optional() {
    final AggregateActionSynchronizer objectUnderTest = createObjectUnderTest();
    when(concludeGroupLock.tryLock()).thenReturn(true);
    when(aggregateGroup.shouldConcludeGroup(any(Duration.class))).thenReturn(false);
    final Optional<Event> concludeGroupEvent = objectUnderTest.concludeGroup(identificationHash, aggregateGroup);
    final InOrder inOrder = Mockito.inOrder(concludeGroupLock, handleEventForGroupLock, aggregateGroup, aggregateGroupManager);
    inOrder.verify(concludeGroupLock).tryLock();
    inOrder.verify(handleEventForGroupLock).lock();
    inOrder.verify(aggregateGroup).shouldConcludeGroup(any(Duration.class));
    inOrder.verify(aggregateGroupManager, times(0)).getGroupDuration();
    inOrder.verify(handleEventForGroupLock).unlock();
    inOrder.verify(concludeGroupLock).unlock();
    verifyNoInteractions(aggregateAction);
    assertThat(concludeGroupEvent, equalTo(Optional.empty()));
}
Also used : InOrder(org.mockito.InOrder) Event(com.amazon.dataprepper.model.event.Event) Duration(java.time.Duration) Test(org.junit.jupiter.api.Test)

Example 37 with Event

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

the class S3ObjectWorkerTest method parseS3Object_calls_Codec_parse_with_Consumer_that_adds_to_BufferAccumulator.

@Test
void parseS3Object_calls_Codec_parse_with_Consumer_that_adds_to_BufferAccumulator() throws Exception {
    final ResponseInputStream<GetObjectResponse> objectInputStream = mock(ResponseInputStream.class);
    when(s3Client.getObject(any(GetObjectRequest.class))).thenReturn(objectInputStream);
    final BufferAccumulator bufferAccumulator = mock(BufferAccumulator.class);
    try (final MockedStatic<BufferAccumulator> bufferAccumulatorMockedStatic = mockStatic(BufferAccumulator.class)) {
        bufferAccumulatorMockedStatic.when(() -> BufferAccumulator.create(buffer, recordsToAccumulate, bufferTimeout)).thenReturn(bufferAccumulator);
        createObjectUnderTest().parseS3Object(s3ObjectReference);
    }
    final ArgumentCaptor<Consumer<Record<Event>>> eventConsumerArgumentCaptor = ArgumentCaptor.forClass(Consumer.class);
    verify(codec).parse(any(InputStream.class), eventConsumerArgumentCaptor.capture());
    final Consumer<Record<Event>> consumerUnderTest = eventConsumerArgumentCaptor.getValue();
    final Record record = mock(Record.class);
    consumerUnderTest.accept(record);
    verify(bufferAccumulator).add(record);
}
Also used : GetObjectResponse(software.amazon.awssdk.services.s3.model.GetObjectResponse) Consumer(java.util.function.Consumer) ResponseInputStream(software.amazon.awssdk.core.ResponseInputStream) InputStream(java.io.InputStream) Event(com.amazon.dataprepper.model.event.Event) Record(com.amazon.dataprepper.model.record.Record) GetObjectRequest(software.amazon.awssdk.services.s3.model.GetObjectRequest) Test(org.junit.jupiter.api.Test)

Example 38 with Event

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

the class NewlineDelimitedCodecTest method parse_calls_Consumer_for_each_line.

@ParameterizedTest
@ValueSource(ints = { 0, 1, 2, 10, 50 })
void parse_calls_Consumer_for_each_line(int numberOfLines) throws IOException {
    final List<String> linesList = generateLinesAsList(numberOfLines);
    final InputStream inputStream = createInputStream(linesList);
    List<Record<Event>> actualEvents = new ArrayList<>();
    createObjectUnderTest().parse(inputStream, actualEvents::add);
    assertThat(actualEvents.size(), equalTo(numberOfLines));
    for (int i = 0; i < actualEvents.size(); i++) {
        final Record<Event> record = actualEvents.get(i);
        assertThat(record, notNullValue());
        assertThat(record.getData(), notNullValue());
        assertThat(record.getData().get("message", String.class), equalTo(linesList.get(i)));
    }
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) Event(com.amazon.dataprepper.model.event.Event) Record(com.amazon.dataprepper.model.record.Record) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 39 with Event

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

the class NewlineDelimitedCodecTest method parse_calls_Consumer_for_each_line_after_skipping.

@ParameterizedTest
@ValueSource(ints = { 1, 2, 10, 50 })
void parse_calls_Consumer_for_each_line_after_skipping(int numberOfLines) throws IOException {
    final List<String> linesList = generateLinesAsList(numberOfLines);
    final InputStream inputStream = createInputStream(linesList);
    final int skipLines = 1;
    when(config.getSkipLines()).thenReturn(skipLines);
    final List<Record<Event>> actualEvents = new ArrayList<>();
    createObjectUnderTest().parse(inputStream, actualEvents::add);
    assertThat(actualEvents.size(), equalTo(numberOfLines - skipLines));
    for (int i = 0; i < actualEvents.size(); i++) {
        final Record<Event> record = actualEvents.get(i);
        assertThat(record, notNullValue());
        assertThat(record.getData(), notNullValue());
        assertThat(record.getData().get("message", String.class), equalTo(linesList.get(i + skipLines)));
    }
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) Event(com.amazon.dataprepper.model.event.Event) Record(com.amazon.dataprepper.model.record.Record) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 40 with Event

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

the class NewlineDelimitedCodec method parseBufferedReader.

private void parseBufferedReader(final BufferedReader reader, final Consumer<Record<Event>> eventConsumer) throws IOException {
    int linesToSkip = skipLines;
    String line;
    while ((line = reader.readLine()) != null) {
        if (linesToSkip > 0) {
            linesToSkip--;
            continue;
        }
        final Event event = JacksonEvent.fromMessage(line);
        eventConsumer.accept(new Record<>(event));
    }
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent)

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