4 import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
5 import org.junit.jupiter.api.BeforeEach;
6 import org.junit.jupiter.api.DisplayName;
7 import org.junit.jupiter.api.Test;
8 import org.junit.jupiter.api.extension.ExtendWith;
9 import org.mockito.ArgumentCaptor;
10 import static org.mockito.ArgumentMatchers.eq;
11 import static org.mockito.Mockito.verify;
12 import static org.mockito.Mockito.when;
13 import org.springframework.boot.test.mock.mockito.MockBean;
14 import org.springframework.test.context.junit.jupiter.SpringExtension;
15 import org.springframework.ui.Model;
16 import reactor.core.publisher.Mono;
17 import reactor.test.StepVerifier;
21 * Unit-Test for class {@link RemoteContentHtmlController}.
24 @ExtendWith(SpringExtension.class)
25 public class HtmlControllerTest
27 HtmlController controller;
30 RemoteContentService service;
38 controller = new HtmlController(service);
43 @DisplayName("Data successfully fetched from remote-server")
46 when(service.getRemoteText("foo")).thenReturn(Mono.just("bar"));
48 String result = controller.fetch(model, "foo");
50 assertThat(result).isEqualTo("home");
51 ArgumentCaptor<Mono<String>> captor = ArgumentCaptor.forClass(Mono.class);
52 verify(model).addAttribute(eq("text"), captor.capture());
54 .create(captor.getValue())