4 import org.junit.jupiter.api.BeforeEach;
5 import org.junit.jupiter.api.DisplayName;
6 import org.junit.jupiter.api.Test;
7 import org.mockito.Mockito;
8 import static org.mockito.Mockito.when;
9 import org.springframework.web.reactive.function.client.WebClientResponseException;
10 import org.springframework.web.reactive.function.client.WebClientResponseException.NotFound;
11 import reactor.core.publisher.Mono;
12 import reactor.test.StepVerifier;
16 * Unit-Test for class {@link RestController}.
19 public class RestControllerTest
21 RestController controller;
22 RemoteContentService service;
28 service = Mockito.mock(RemoteContentService.class);
29 controller = new RestController(service);
34 @DisplayName("Data successfully fetched from remote-server")
37 when(service.getRemoteText("foo")).thenReturn(Mono.just("bar"));
39 Mono<String> result = controller.fetch("foo");
49 @DisplayName("Data not found on remote-server")
50 void testResponseNotFoud()
52 when(service.getRemoteText("foo")).thenReturn(Mono.error(exception(404)));
54 Mono<String> result = controller.fetch("foo");
58 .expectError(NotFound.class)
63 WebClientResponseException exception(int status)
65 return WebClientResponseException.create(status, "", null, null, null);