Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.baeldung.micronaut.testing;

public interface AdditionService {

Integer sum(int a, int b);

}
Original file line number Diff line number Diff line change
@@ -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;
}

}
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -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));
}
}