Skip to content

Commit 8a66287

Browse files
ci: Build with Java 17 (aws-powertools#590)
1 parent f9d5c5f commit 8a66287

7 files changed

+28
-26
lines changed

.github/workflows/build.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
max-parallel: 4
3737
matrix:
3838
# test against latest update of each major Java version, as well as specific updates of LTS versions:
39-
java: [8, 8.0.192, 11.0.x, 11.0.3, 12, 13, 15, 16 ]
39+
java: [8, 8.0.192, 11.0.x, 11.0.3, 12, 13, 15, 16, 17 ]
4040
name: Java ${{ matrix.java }}
4141
env:
4242
OS: ${{ matrix.os }}

powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchFailureSuppressedHandler.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import software.amazon.lambda.powertools.sqs.SqsMessageHandler;
88

99
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
10-
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom;
10+
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient;
1111

1212
public class PartialBatchFailureSuppressedHandler implements RequestHandler<SQSEvent, String> {
1313
@Override
@@ -25,7 +25,7 @@ public String process(SQSMessage message) {
2525
throw new RuntimeException("2e1424d4-f796-459a-8184-9c92662be6da");
2626
}
2727

28-
mockedRandom.nextInt();
28+
interactionClient.listQueues();
2929
return "Success";
3030
}
3131
}

powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchPartialFailureHandler.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import software.amazon.lambda.powertools.sqs.SqsMessageHandler;
88

99
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
10-
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom;
10+
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient;
1111

1212
public class PartialBatchPartialFailureHandler implements RequestHandler<SQSEvent, String> {
1313
@Override
@@ -25,7 +25,7 @@ public String process(SQSMessage message) {
2525
throw new RuntimeException("2e1424d4-f796-459a-8184-9c92662be6da");
2626
}
2727

28-
mockedRandom.nextInt();
28+
interactionClient.listQueues();
2929
return "Success";
3030
}
3131
}

powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/PartialBatchSuccessHandler.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import software.amazon.lambda.powertools.sqs.SqsMessageHandler;
88

99
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
10-
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom;
10+
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient;
1111

1212
public class PartialBatchSuccessHandler implements RequestHandler<SQSEvent, String> {
1313
@Override
@@ -21,7 +21,7 @@ private class InnerMessageHandler implements SqsMessageHandler<Object> {
2121

2222
@Override
2323
public String process(SQSMessage message) {
24-
mockedRandom.nextInt();
24+
interactionClient.listQueues();
2525
return "Success";
2626
}
2727
}

powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandler.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import software.amazon.lambda.powertools.sqs.SqsMessageHandler;
88

99
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
10-
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom;
10+
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient;
1111

1212
public class SqsMessageHandlerWithNonRetryableHandler implements RequestHandler<SQSEvent, String> {
1313

@@ -30,7 +30,7 @@ public String process(SQSMessage message) {
3030
throw new RuntimeException("Invalid message and should be reprocessed");
3131
}
3232

33-
mockedRandom.nextInt();
33+
interactionClient.listQueues();
3434
return "Success";
3535
}
3636
}

powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/handlers/SqsMessageHandlerWithNonRetryableHandlerWithDelete.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import software.amazon.lambda.powertools.sqs.SqsMessageHandler;
88

99
import static com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage;
10-
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.mockedRandom;
10+
import static software.amazon.lambda.powertools.sqs.internal.SqsMessageBatchProcessorAspectTest.interactionClient;
1111

1212
public class SqsMessageHandlerWithNonRetryableHandlerWithDelete implements RequestHandler<SQSEvent, String> {
1313

@@ -32,7 +32,7 @@ public String process(SQSMessage message) {
3232
throw new RuntimeException("Invalid message and should be reprocessed");
3333
}
3434

35-
mockedRandom.nextInt();
35+
interactionClient.listQueues();
3636
return "Success";
3737
}
3838
}

powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/internal/SqsMessageBatchProcessorAspectTest.java

+17-15
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package software.amazon.lambda.powertools.sqs.internal;
22

33
import java.io.IOException;
4+
import java.time.LocalDateTime;
45
import java.util.HashMap;
5-
import java.util.Random;
66
import java.util.function.Consumer;
77

88
import com.amazonaws.services.lambda.runtime.Context;
99
import com.amazonaws.services.lambda.runtime.RequestHandler;
1010
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
1111
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
1212
import com.fasterxml.jackson.databind.ObjectMapper;
13+
import org.assertj.core.api.Assertions;
1314
import org.junit.jupiter.api.BeforeEach;
1415
import org.junit.jupiter.api.Test;
1516
import org.mockito.ArgumentCaptor;
@@ -28,6 +29,7 @@
2829

2930
import static org.assertj.core.api.Assertions.assertThat;
3031
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
32+
import static org.assertj.core.api.Assertions.in;
3133
import static org.mockito.ArgumentMatchers.any;
3234
import static org.mockito.Mockito.mock;
3335
import static org.mockito.Mockito.never;
@@ -39,7 +41,7 @@
3941
import static software.amazon.lambda.powertools.sqs.SqsUtils.overrideSqsClient;
4042

4143
public class SqsMessageBatchProcessorAspectTest {
42-
public static final Random mockedRandom = mock(Random.class);
44+
public static final SqsClient interactionClient = mock(SqsClient.class);
4345
private static final SqsClient sqsClient = mock(SqsClient.class);
4446
private static final ObjectMapper MAPPER = new ObjectMapper();
4547

@@ -51,7 +53,7 @@ public class SqsMessageBatchProcessorAspectTest {
5153
@BeforeEach
5254
void setUp() throws IOException {
5355
overrideSqsClient(sqsClient);
54-
reset(mockedRandom);
56+
reset(interactionClient);
5557
reset(sqsClient);
5658
setupContext();
5759
event = MAPPER.readValue(this.getClass().getResource("/sampleSqsBatchEvent.json"), SQSEvent.class);
@@ -62,7 +64,7 @@ void setUp() throws IOException {
6264
void shouldBatchProcessAllMessageSuccessfullyAndNotDeleteFromSQS() {
6365
requestHandler.handleRequest(event, context);
6466

65-
verify(mockedRandom, times(2)).nextInt();
67+
verify(interactionClient, times(2)).listQueues();
6668
verify(sqsClient, times(0)).deleteMessageBatch(any(DeleteMessageBatchRequest.class));
6769
}
6870

@@ -75,7 +77,7 @@ void shouldBatchProcessMessageWithSuccessDeletedOnFailureInBatchFromSQS() {
7577
.satisfies(e -> {
7678
assertThat(e.getExceptions())
7779
.hasSize(1)
78-
.extracting("detailMessage")
80+
.extracting("message")
7981
.containsExactly("2e1424d4-f796-459a-8184-9c92662be6da");
8082

8183
assertThat(e.getFailures())
@@ -88,7 +90,7 @@ void shouldBatchProcessMessageWithSuccessDeletedOnFailureInBatchFromSQS() {
8890
.contains("Success");
8991
});
9092

91-
verify(mockedRandom).nextInt();
93+
verify(interactionClient).listQueues();
9294
verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class));
9395
}
9496

@@ -98,7 +100,7 @@ void shouldBatchProcessMessageWithSuccessDeletedOnFailureWithSuppressionInBatchF
98100

99101
requestHandler.handleRequest(event, context);
100102

101-
verify(mockedRandom).nextInt();
103+
verify(interactionClient).listQueues();
102104
verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class));
103105
}
104106

@@ -129,7 +131,7 @@ void shouldBatchProcessAndMoveNonRetryableExceptionToDlq() {
129131

130132
requestHandler.handleRequest(event, context);
131133

132-
verify(mockedRandom).nextInt();
134+
verify(interactionClient).listQueues();
133135
verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class));
134136
verify(sqsClient).sendMessageBatch(any(Consumer.class));
135137
}
@@ -141,7 +143,7 @@ void shouldBatchProcessAndDeleteNonRetryableExceptionMessage() {
141143

142144
requestHandler.handleRequest(event, context);
143145

144-
verify(mockedRandom).nextInt();
146+
verify(interactionClient).listQueues();
145147
ArgumentCaptor<DeleteMessageBatchRequest> captor = ArgumentCaptor.forClass(DeleteMessageBatchRequest.class);
146148
verify(sqsClient).deleteMessageBatch(captor.capture());
147149
verify(sqsClient, never()).sendMessageBatch(any(Consumer.class));
@@ -169,7 +171,7 @@ void shouldBatchProcessAndFailWithExceptionForNonRetryableExceptionAndNoDlq() {
169171
.satisfies(e -> {
170172
assertThat(e.getExceptions())
171173
.hasSize(1)
172-
.extracting("detailMessage")
174+
.extracting("message")
173175
.containsExactly("Invalid message and was moved to DLQ");
174176

175177
assertThat(e.getFailures())
@@ -182,7 +184,7 @@ void shouldBatchProcessAndFailWithExceptionForNonRetryableExceptionAndNoDlq() {
182184
.contains("Success");
183185
});
184186

185-
verify(mockedRandom).nextInt();
187+
verify(interactionClient).listQueues();
186188
verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class));
187189
verify(sqsClient, never()).sendMessageBatch(any(Consumer.class));
188190
}
@@ -206,7 +208,7 @@ void shouldBatchProcessAndFailWithExceptionForNonRetryableExceptionWhenFailedPar
206208
.satisfies(e -> {
207209
assertThat(e.getExceptions())
208210
.hasSize(1)
209-
.extracting("detailMessage")
211+
.extracting("message")
210212
.containsExactly("Invalid message and was moved to DLQ");
211213

212214
assertThat(e.getFailures())
@@ -219,7 +221,7 @@ void shouldBatchProcessAndFailWithExceptionForNonRetryableExceptionWhenFailedPar
219221
.contains("Success");
220222
});
221223

222-
verify(mockedRandom).nextInt();
224+
verify(interactionClient).listQueues();
223225
verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class));
224226
verify(sqsClient, never()).sendMessageBatch(any(Consumer.class));
225227
}
@@ -247,7 +249,7 @@ void shouldBatchProcessAndMoveNonRetryableExceptionToDlqAndThrowException() thro
247249
.satisfies(e -> {
248250
assertThat(e.getExceptions())
249251
.hasSize(1)
250-
.extracting("detailMessage")
252+
.extracting("message")
251253
.containsExactly("Invalid message and should be reprocessed");
252254

253255
assertThat(e.getFailures())
@@ -260,7 +262,7 @@ void shouldBatchProcessAndMoveNonRetryableExceptionToDlqAndThrowException() thro
260262
.contains("Success");
261263
});
262264

263-
verify(mockedRandom).nextInt();
265+
verify(interactionClient).listQueues();
264266
verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class));
265267
verify(sqsClient).sendMessageBatch(any(Consumer.class));
266268
}

0 commit comments

Comments
 (0)