X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fdemo%2FHtmlControllerIT.java;fp=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fdemo%2FHtmlControllerIT.java;h=bcf037cf18ea703f703fe91331e3ac366e3bffb8;hb=bf0121fe5fe3b60563e9deec9b35aca8e5da1993;hp=0000000000000000000000000000000000000000;hpb=8fda1e5a750a098fd9b03b10e78d9377aa96633d;p=demos%2Ftesting diff --git a/src/test/java/de/juplo/demo/HtmlControllerIT.java b/src/test/java/de/juplo/demo/HtmlControllerIT.java new file mode 100644 index 0000000..bcf037c --- /dev/null +++ b/src/test/java/de/juplo/demo/HtmlControllerIT.java @@ -0,0 +1,53 @@ +package de.juplo.demo; + + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.reactive.server.WebTestClient; +import reactor.core.publisher.Mono; + + +/** + * Narrow Integration-Test for the {@link HtmlController}. + * @author Kai Moritz + */ +@ExtendWith(SpringExtension.class) +@WebFluxTest() +public class HtmlControllerIT +{ + @Autowired + WebTestClient webClient; + @MockBean + RemoteContentService service; + + + @Test + @DisplayName("Mapping for HtmlController: /?path=foo") + void testUriWithParameter() + { + when(service.getRemoteText("foo")).thenReturn(Mono.just("bar")); + webClient + .get() + .uri("/?path=foo") + .exchange() + .expectStatus().isOk() + .expectBody(String.class).value(rendered -> + { + Document doc = Jsoup.parse(rendered); + assertThat( + doc.select("html > body > main > div > div > div > pre").text()) + .isEqualTo("bar"); + }); + verify(service).getRemoteText("foo"); + } +}