Skip to content

Commit 7520d42

Browse files
author
Pankaj Agrawal
committed
feat(batch-processing): test cases
1 parent 2a2f1c0 commit 7520d42

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

powertools-sqs/src/test/java/software/amazon/lambda/powertools/sqs/SqsUtilsBatchProcessorTest.java

+30
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,36 @@ void shouldBatchProcessAndMoveNonRetryableExceptionToDlq() {
242242
verify(sqsClient).sendMessageBatch(any(Consumer.class));
243243
}
244244

245+
@Test
246+
void shouldBatchProcessAndDeleteNonRetryableException() {
247+
String failedId = "2e1424d4-f796-459a-8184-9c92662be6da";
248+
HashMap<QueueAttributeName, String> attributes = new HashMap<>();
249+
250+
attributes.put(QueueAttributeName.REDRIVE_POLICY, "{\n" +
251+
" \"deadLetterTargetArn\": \"arn:aws:sqs:us-east-2:123456789012:retry-queue\",\n" +
252+
" \"maxReceiveCount\": 2\n" +
253+
"}");
254+
255+
when(sqsClient.getQueueAttributes(any(GetQueueAttributesRequest.class))).thenReturn(GetQueueAttributesResponse.builder()
256+
.attributes(attributes)
257+
.build());
258+
259+
List<String> batchProcessor = batchProcessor(event, false, (message) -> {
260+
if (failedId.equals(message.getMessageId())) {
261+
throw new IllegalStateException("Failed processing");
262+
}
263+
264+
interactionClient.listQueues();
265+
return "Success";
266+
}, true, IllegalStateException.class, IllegalArgumentException.class);
267+
268+
Assertions.assertThat(batchProcessor)
269+
.hasSize(1);
270+
271+
verify(sqsClient, times(0)).sendMessageBatch(any(Consumer.class));
272+
verify(sqsClient).deleteMessageBatch(any(DeleteMessageBatchRequest.class));
273+
}
274+
245275
public class FailureSampleInnerSqsHandler implements SqsMessageHandler<String> {
246276
@Override
247277
public String process(SQSEvent.SQSMessage message) {

0 commit comments

Comments
 (0)