WIP:Added a html-controller
[demos/testing] / src / test / java / de / juplo / demo / HtmlControllerTest.java
1 package de.juplo.demo;
2
3
4 import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
5 import org.junit.jupiter.api.BeforeEach;
6 import org.junit.jupiter.api.Test;
7 import org.junit.jupiter.api.extension.ExtendWith;
8 import static org.mockito.Mockito.verify;
9 import static org.mockito.Mockito.when;
10 import org.springframework.boot.test.mock.mockito.MockBean;
11 import org.springframework.test.context.junit.jupiter.SpringExtension;
12 import org.springframework.ui.Model;
13 import reactor.core.publisher.Mono;
14
15
16 /**
17  * Unit-Test for class {@link RemoteContentHtmlController}.
18  * @author Kai Moritz
19  */
20 @ExtendWith(SpringExtension.class)
21 public class HtmlControllerTest
22 {
23   HtmlController controller;
24
25   @MockBean
26   RemoteContentService service;
27   @MockBean
28   Model model;
29
30
31   @BeforeEach
32   void setUp()
33   {
34     controller = new HtmlController(service);
35   }
36
37
38   @Test
39   void test()
40   {
41     Mono<String> mono = Mono.empty();
42     when(service.getRemoteText("foo")).thenReturn(mono);
43
44     // when
45     String result = controller.fetch(model, "foo");
46
47     assertThat(result).isEqualTo("layout");
48     verify(model).addAttribute("text", mono);
49   }
50 }