All Downloads are FREE. Search and download functionalities are using the official Maven repository.

entry-point.sqs.sqs-listenerTest.mustache Maven / Gradle / Ivy

Go to download

Gradle plugin to create a clean application in Java that already works, It follows our best practices!

There is a newer version: 3.20.10
Show newest version
package {{package}}.sqs.listener.helper;

import co.com.bancolombia.sqs.listener.SQSProcessor;
import co.com.bancolombia.sqs.listener.config.SQSProperties;
{{#metrics}}
import io.micrometer.core.instrument.Timer;
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
{{/metrics}}
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.test.util.ReflectionTestUtils;
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
import software.amazon.awssdk.services.sqs.model.*;

import java.util.concurrent.CompletableFuture;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;

public class SQSListenerTest {

    @Mock
    private SqsAsyncClient asyncClient;

    @BeforeEach
    void setUp(){
        MockitoAnnotations.openMocks(this);

        Message message = Message.builder().body("message").build();
        DeleteMessageResponse deleteMessageResponse = DeleteMessageResponse.builder().build();
        ReceiveMessageResponse messageResponse = ReceiveMessageResponse.builder().messages(message).build();

        when(asyncClient.receiveMessage(any(ReceiveMessageRequest.class))).thenReturn(CompletableFuture.completedFuture(messageResponse));
        when(asyncClient.deleteMessage(any(DeleteMessageRequest.class))).thenReturn(CompletableFuture.completedFuture(deleteMessageResponse));

    }

    @Test
    void startTest(){
        SQSProperties sqsProperties = new SQSProperties();
        sqsProperties.setNumberOfThreads(1);
        sqsProperties.setRegion("Region");

        SQSListener sqsListener =SQSListener.builder()
            .client(asyncClient)
            .properties(sqsProperties)
            .consumer(System.out::println)
            {{#metrics}}
            .timer(Timer.builder("test").register(new SimpleMeterRegistry()))
            {{/metrics}}
            .build();

        SQSListener listener = sqsListener.start();

        Assertions.assertNotNull(listener);
    }

    @Test
    void listenerTest() {
        SQSProperties sqsProperties = new SQSProperties();
        sqsProperties.setNumberOfThreads(1);
        sqsProperties.setRegion("Region");

        SQSProcessor sqsProcessor = new SQSProcessor();

        SQSListener sqsListener =SQSListener.builder()
            .client(asyncClient)
            .properties(sqsProperties)
            .consumer(sqsProcessor)
            {{#metrics}}
            .timer(Timer.builder("test").register(new SimpleMeterRegistry()))
            {{/metrics}}
            .build();

        ReflectionTestUtils.invokeMethod(sqsListener, "listen");

        Assertions.assertNotNull(sqsListener);

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy