diff --git a/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionController.java b/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionController.java new file mode 100644 index 000000000000..e7bb1c612a5d --- /dev/null +++ b/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionController.java @@ -0,0 +1,21 @@ +package com.baeldung.micronaut.testing; + +import io.micronaut.http.MediaType; +import io.micronaut.http.annotation.Controller; +import io.micronaut.http.annotation.Get; +import io.micronaut.http.annotation.QueryValue; + +@Controller +public class AdditionController { + + private final AdditionService additionService; + + public AdditionController(AdditionService additionService) { + this.additionService = additionService; + } + + @Get(uri = "/sum", produces = MediaType.TEXT_PLAIN) + public Integer sum(@QueryValue("firstNumber") int firstNumber, @QueryValue("secondNumber") int secondNumber) { + return additionService.sum(firstNumber, secondNumber); + } +} diff --git a/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionService.java b/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionService.java new file mode 100644 index 000000000000..5f4daf539d59 --- /dev/null +++ b/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionService.java @@ -0,0 +1,7 @@ +package com.baeldung.micronaut.testing; + +public interface AdditionService { + + Integer sum(int a, int b); + +} diff --git a/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionServiceImpl.java b/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionServiceImpl.java new file mode 100644 index 000000000000..d38708a1ba04 --- /dev/null +++ b/microservices-modules/micronaut/src/main/java/com/baeldung/micronaut/testing/AdditionServiceImpl.java @@ -0,0 +1,13 @@ +package com.baeldung.micronaut.testing; + +import jakarta.inject.Singleton; + +@Singleton +public class AdditionServiceImpl implements AdditionService { + + @Override + public Integer sum(int a, int b) { + return a + b; + } + +} diff --git a/microservices-modules/micronaut/src/test/java/com/baeldung/micronaut/testing/AdditionServiceMockingUnitTest.java b/microservices-modules/micronaut/src/test/java/com/baeldung/micronaut/testing/AdditionServiceMockingUnitTest.java new file mode 100644 index 000000000000..d1762392e92a --- /dev/null +++ b/microservices-modules/micronaut/src/test/java/com/baeldung/micronaut/testing/AdditionServiceMockingUnitTest.java @@ -0,0 +1,47 @@ +package com.baeldung.micronaut.testing; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import jakarta.inject.Inject; + +import org.junit.jupiter.api.Test; + +import io.micronaut.http.HttpRequest; +import io.micronaut.http.client.HttpClient; +import io.micronaut.http.client.annotation.Client; +import io.micronaut.test.annotation.MockBean; +import io.micronaut.test.extensions.junit5.annotation.MicronautTest; + +@MicronautTest +class AdditionServiceMockingUnitTest { + + @Inject + AdditionService additionService; + + @MockBean(AdditionService.class) + AdditionService additionService() { + return mock(AdditionService.class); + } + + @Inject + @Client("/") + HttpClient client; + + @Test + void givenAdditionService_whenAddingTwoIntegers_thenReturnSum() { + when(additionService.sum(2, 2)).thenReturn(4); + assertEquals(4, additionService.sum(2, 2)); + } + + @Test + void givenSumUrl_whenPassingTwoIntegersAsQuery_thenReturnSum() { + + when(additionService.sum(20, 25)).thenReturn(45); + final Integer result = client.toBlocking() + .retrieve(HttpRequest.GET("/sum?firstNumber=20&secondNumber=25"), Integer.class); + + assertEquals(45, result); + } +} \ No newline at end of file diff --git a/microservices-modules/micronaut/src/test/java/com/baeldung/micronaut/testing/AdditionServiceUnitTest.java b/microservices-modules/micronaut/src/test/java/com/baeldung/micronaut/testing/AdditionServiceUnitTest.java new file mode 100644 index 000000000000..506289e58190 --- /dev/null +++ b/microservices-modules/micronaut/src/test/java/com/baeldung/micronaut/testing/AdditionServiceUnitTest.java @@ -0,0 +1,22 @@ +package com.baeldung.micronaut.testing; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import jakarta.inject.Inject; + +import org.junit.jupiter.api.Test; + +import io.micronaut.test.extensions.junit5.annotation.MicronautTest; + +@MicronautTest(startApplication = false) +class AdditionServiceUnitTest { + + @Inject + AdditionService additionService; + + @Test + void givenAdditionService_whenAddingTwoIntegers_thenReturnSum() { + assertEquals(4, additionService.sum(2, 2)); + } +} +