From 589088343c809474b53a6645fc3d418b2f9dcb56 Mon Sep 17 00:00:00 2001 From: Pankaj Agrawal Date: Fri, 22 Oct 2021 12:35:09 +0200 Subject: [PATCH] ci: Build with Java 17 --- .github/workflows/build.yml | 2 +- .../PartialBatchFailureSuppressedHandler.java | 4 +-- .../PartialBatchPartialFailureHandler.java | 4 +-- .../handlers/PartialBatchSuccessHandler.java | 4 +-- ...MessageHandlerWithNonRetryableHandler.java | 4 +-- ...dlerWithNonRetryableHandlerWithDelete.java | 4 +-- .../SqsMessageBatchProcessorAspectTest.java | 32 ++++++++++--------- 7 files changed, 28 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e95a1fce2..5505477f0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,7 @@ jobs: max-parallel: 4 matrix: # test against latest update of each major Java version, as well as specific updates of LTS versions: - java: [8, 8.0.192, 11.0.x, 11.0.3, 12, 13, 15, 16 ] + java: [8, 8.0.192, 11.0.x, 11.0.3, 12, 13, 15, 16, 17 ] name: Java ${{ matrix.java }} env: OS: ${{ matrix.os }} diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java index acd6170c0..63f1573bf 100644 --- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java +++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java @@ -7,7 +7,7 @@ import software.amazon.lambda.powertools.sqs.SqsMessageHandler; import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage; -import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom; +import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient; public class PartialBatchFailureSuppressedHandler implements RequestHandler { @Override @@ -25,7 +25,7 @@ public String process(SQSMessage message) { throw new RuntimeException("2e1424d4-f796-459a-8184-9c92662be6da"); } - mockedRandom.nextInt(); + interactionClient.listQueues(); return "Success"; } } diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java index 018e775f8..653459d82 100644 --- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java +++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java @@ -7,7 +7,7 @@ import software.amazon.lambda.powertools.sqs.SqsMessageHandler; import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage; -import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom; +import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient; public class PartialBatchPartialFailureHandler implements RequestHandler { @Override @@ -25,7 +25,7 @@ public String process(SQSMessage message) { throw new RuntimeException("2e1424d4-f796-459a-8184-9c92662be6da"); } - mockedRandom.nextInt(); + interactionClient.listQueues(); return "Success"; } } diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java index a9e7a07d9..926cdb4f5 100644 --- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java +++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java @@ -7,7 +7,7 @@ import software.amazon.lambda.powertools.sqs.SqsMessageHandler; import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage; -import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom; +import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient; public class PartialBatchSuccessHandler implements RequestHandler { @Override @@ -21,7 +21,7 @@ private class InnerMessageHandler implements SqsMessageHandler { @Override public String process(SQSMessage message) { - mockedRandom.nextInt(); + interactionClient.listQueues(); return "Success"; } } diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandler.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandler.java index 282c35897..6eec87301 100644 --- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandler.java +++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandler.java @@ -7,7 +7,7 @@ import software.amazon.lambda.powertools.sqs.SqsMessageHandler; import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage; -import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom; +import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient; public class SqsMessageHandlerWithNonRetryableHandler implements RequestHandler { @@ -30,7 +30,7 @@ public String process(SQSMessage message) { throw new RuntimeException("Invalid message and should be reprocessed"); } - mockedRandom.nextInt(); + interactionClient.listQueues(); return "Success"; } } diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandlerWithDelete.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandlerWithDelete.java index ed0516253..789a7b86d 100644 --- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandlerWithDelete.java +++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandlerWithDelete.java @@ -7,7 +7,7 @@ import software.amazon.lambda.powertools.sqs.SqsMessageHandler; import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage; -import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom; +import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient; public class SqsMessageHandlerWithNonRetryableHandlerWithDelete implements RequestHandler { @@ -32,7 +32,7 @@ public String process(SQSMessage message) { throw new RuntimeException("Invalid message and should be reprocessed"); } - mockedRandom.nextInt(); + interactionClient.listQueues(); return "Success"; } } diff --git a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java index e53817e76..5d25b8ffa 100644 --- a/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java +++ b/powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java @@ -1,8 +1,8 @@ package software.amazon.lambda.powertools.sqs.internal; import java.io.IOException; +import java.time.LocalDateTime; import java.util.HashMap; -import java.util.Random; import java.util.function.Consumer; import com.amazonaws.services.lambda.runtime.Context; @@ -10,6 +10,7 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent; import com.amazonaws.services.lambda.runtime.events.SQSEvent; import com.fasterxml.jackson.databind.ObjectMapper; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; @@ -28,6 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.in; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -39,7 +41,7 @@ import static software.amazon.lambda.powertools.sqs.SqsUtils.overrideSqsClient; public class SqsMessageBatchProcessorAspectTest { - public static final Random mockedRandom = mock(Random.class); + public static final SqsClient interactionClient = mock(SqsClient.class); private static final SqsClient sqsClient = mock(SqsClient.class); private static final ObjectMapper MAPPER = new ObjectMapper(); @@ -51,7 +53,7 @@ public class SqsMessageBatchProcessorAspectTest { @BeforeEach void setUp() throws IOException { overrideSqsClient(sqsClient); - reset(mockedRandom); + reset(interactionClient); reset(sqsClient); setupContext(); event = MAPPER.readValue(this.getClass().getResource("/sampleSqsBatchEvent.json"), SQSEvent.class); @@ -62,7 +64,7 @@ void setUp() throws IOException { void shouldBatchProcessAllMessageSuccessfullyAndNotDeleteFromSQS() { requestHandler.handleRequest(event, context); - verify(mockedRandom, times(2)).nextInt(); + verify(interactionClient, times(2)).listQueues(); verify(sqsClient, times(0)).deleteMessageBatch(any(DeleteMessageBatchRequest.class)); } @@ -75,7 +77,7 @@ void shouldBatchProcessMessageWithSuccessDeletedOnFailureInBatchFromSQS() { .satisfies(e -> { assertThat(e.getExceptions()) .hasSize(1) - .extracting("detailMessage") + .extracting("message") .containsExactly("2e1424d4-f796-459a-8184-9c92662be6da"); assertThat(e.getFailures()) @@ -88,7 +90,7 @@ void shouldBatchProcessMessageWithSuccessDeletedOnFailureInBatchFromSQS() { .contains("Success"); }); - verify(mockedRandom).nextInt(); + verify(interactionClient).listQueues(); verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class)); } @@ -98,7 +100,7 @@ void shouldBatchProcessMessageWithSuccessDeletedOnFailureWithSuppressionInBatchF requestHandler.handleRequest(event, context); - verify(mockedRandom).nextInt(); + verify(interactionClient).listQueues(); verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class)); } @@ -129,7 +131,7 @@ void shouldBatchProcessAndMoveNonRetryableExceptionToDlq() { requestHandler.handleRequest(event, context); - verify(mockedRandom).nextInt(); + verify(interactionClient).listQueues(); verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class)); verify(sqsClient).sendMessageBatch(any(Consumer.class)); } @@ -141,7 +143,7 @@ void shouldBatchProcessAndDeleteNonRetryableExceptionMessage() { requestHandler.handleRequest(event, context); - verify(mockedRandom).nextInt(); + verify(interactionClient).listQueues(); ArgumentCaptor captor = ArgumentCaptor.forClass(DeleteMessageBatchRequest.class); verify(sqsClient).deleteMessageBatch(captor.capture()); verify(sqsClient, never()).sendMessageBatch(any(Consumer.class)); @@ -169,7 +171,7 @@ void shouldBatchProcessAndFailWithExceptionForNonRetryableExceptionAndNoDlq() { .satisfies(e -> { assertThat(e.getExceptions()) .hasSize(1) - .extracting("detailMessage") + .extracting("message") .containsExactly("Invalid message and was moved to DLQ"); assertThat(e.getFailures()) @@ -182,7 +184,7 @@ void shouldBatchProcessAndFailWithExceptionForNonRetryableExceptionAndNoDlq() { .contains("Success"); }); - verify(mockedRandom).nextInt(); + verify(interactionClient).listQueues(); verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class)); verify(sqsClient, never()).sendMessageBatch(any(Consumer.class)); } @@ -206,7 +208,7 @@ void shouldBatchProcessAndFailWithExceptionForNonRetryableExceptionWhenFailedPar .satisfies(e -> { assertThat(e.getExceptions()) .hasSize(1) - .extracting("detailMessage") + .extracting("message") .containsExactly("Invalid message and was moved to DLQ"); assertThat(e.getFailures()) @@ -219,7 +221,7 @@ void shouldBatchProcessAndFailWithExceptionForNonRetryableExceptionWhenFailedPar .contains("Success"); }); - verify(mockedRandom).nextInt(); + verify(interactionClient).listQueues(); verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class)); verify(sqsClient, never()).sendMessageBatch(any(Consumer.class)); } @@ -247,7 +249,7 @@ void shouldBatchProcessAndMoveNonRetryableExceptionToDlqAndThrowException() thro .satisfies(e -> { assertThat(e.getExceptions()) .hasSize(1) - .extracting("detailMessage") + .extracting("message") .containsExactly("Invalid message and should be reprocessed"); assertThat(e.getFailures()) @@ -260,7 +262,7 @@ void shouldBatchProcessAndMoveNonRetryableExceptionToDlqAndThrowException() thro .contains("Success"); }); - verify(mockedRandom).nextInt(); + verify(interactionClient).listQueues(); verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class)); verify(sqsClient).sendMessageBatch(any(Consumer.class)); }