8b248ce2e5c7779bdd225be70ebcef6ac0042c54
[demos/testing] / src / test / java / de / juplo / demo / RestControllerTest.java
1 package de.juplo.demo;
2
3
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 reactor.core.publisher.Mono;
10 import reactor.test.StepVerifier;
11
12
13 /**
14  * Unit-Test for class {@link RestController}.
15  * @author Kai Moritz
16  */
17 public class RestControllerTest
18 {
19   RestController controller;
20   RemoteContentService service;
21
22
23   @BeforeEach
24   void setUp()
25   {
26     service = Mockito.mock(RemoteContentService.class);
27     controller = new RestController(service);
28   }
29
30
31   @Test
32   @DisplayName("Data successfully fetched from remote-server")
33   void testResponseOK()
34   {
35     when(service.getRemoteText("foo")).thenReturn(Mono.just("bar"));
36
37     Mono<String> result = controller.fetch("foo");
38
39     StepVerifier
40         .create(result)
41         .expectNext("bar")
42         .expectComplete()
43         .verify();
44   }
45 }