Skip to content

File tree

5 files changed

+110
-0
lines changed

5 files changed

+110
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.baeldung.micronaut.testing;
2+
3+
import io.micronaut.http.MediaType;
4+
import io.micronaut.http.annotation.Controller;
5+
import io.micronaut.http.annotation.Get;
6+
import io.micronaut.http.annotation.QueryValue;
7+
8+
@Controller
9+
public class AdditionController {
10+
11+
private final AdditionService additionService;
12+
13+
public AdditionController(AdditionService additionService) {
14+
this.additionService = additionService;
15+
}
16+
17+
@Get(uri = "/sum", produces = MediaType.TEXT_PLAIN)
18+
public Integer sum(@QueryValue("firstNumber") int firstNumber, @QueryValue("secondNumber") int secondNumber) {
19+
return additionService.sum(firstNumber, secondNumber);
20+
}
21+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.baeldung.micronaut.testing;
2+
3+
public interface AdditionService {
4+
5+
Integer sum(int a, int b);
6+
7+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.baeldung.micronaut.testing;
2+
3+
import jakarta.inject.Singleton;
4+
5+
@Singleton
6+
public class AdditionServiceImpl implements AdditionService {
7+
8+
@Override
9+
public Integer sum(int a, int b) {
10+
return a + b;
11+
}
12+
13+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.baeldung.micronaut.testing;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.when;
6+
7+
import jakarta.inject.Inject;
8+
9+
import org.junit.jupiter.api.Test;
10+
11+
import io.micronaut.http.HttpRequest;
12+
import io.micronaut.http.client.HttpClient;
13+
import io.micronaut.http.client.annotation.Client;
14+
import io.micronaut.test.annotation.MockBean;
15+
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
16+
17+
@MicronautTest
18+
class AdditionServiceMockingUnitTest {
19+
20+
@Inject
21+
AdditionService additionService;
22+
23+
@MockBean(AdditionService.class)
24+
AdditionService additionService() {
25+
return mock(AdditionService.class);
26+
}
27+
28+
@Inject
29+
@Client("/")
30+
HttpClient client;
31+
32+
@Test
33+
void givenAdditionService_whenAddingTwoIntegers_thenReturnSum() {
34+
when(additionService.sum(2, 2)).thenReturn(4);
35+
assertEquals(4, additionService.sum(2, 2));
36+
}
37+
38+
@Test
39+
void givenSumUrl_whenPassingTwoIntegersAsQuery_thenReturnSum() {
40+
41+
when(additionService.sum(20, 25)).thenReturn(45);
42+
final Integer result = client.toBlocking()
43+
.retrieve(HttpRequest.GET("/sum?firstNumber=20&secondNumber=25"), Integer.class);
44+
45+
assertEquals(45, result);
46+
}
47+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.baeldung.micronaut.testing;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import jakarta.inject.Inject;
6+
7+
import org.junit.jupiter.api.Test;
8+
9+
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
10+
11+
@MicronautTest(startApplication = false)
12+
class AdditionServiceUnitTest {
13+
14+
@Inject
15+
AdditionService additionService;
16+
17+
@Test
18+
void givenAdditionService_whenAddingTwoIntegers_thenReturnSum() {
19+
assertEquals(4, additionService.sum(2, 2));
20+
}
21+
}
22+

0 commit comments

Comments
 (0)