X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fdemo%2FDemoApplicationIT.java;h=131c52e9a9c691984fd6849fa4cacee204ec17e8;hb=450ea88ad63cb4f92b835fe77c1420005af0503b;hp=be40c75824cbf7afa0759e1d148e473b203a3cee;hpb=4b1e91daec5783b7299600e972c94fc9a1517342;p=demos%2Ftesting diff --git a/src/test/java/de/juplo/demo/DemoApplicationIT.java b/src/test/java/de/juplo/demo/DemoApplicationIT.java index be40c75..131c52e 100644 --- a/src/test/java/de/juplo/demo/DemoApplicationIT.java +++ b/src/test/java/de/juplo/demo/DemoApplicationIT.java @@ -1,37 +1,28 @@ package de.juplo.demo; -import java.net.URI; -import org.junit.jupiter.api.BeforeEach; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; import org.junit.jupiter.api.Test; import static org.mockserver.matchers.Times.exactly; import static org.mockserver.model.HttpForward.forward; import static org.mockserver.model.HttpRequest.request; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; -import org.springframework.test.web.servlet.MockMvc; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.web.context.WebApplicationContext; +import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.web.reactive.function.client.WebClient; -@SpringBootTest +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) +@EnableAutoConfiguration class DemoApplicationIT extends IntegrationTestBase { - MockMvc mockMvc; @Autowired - WebApplicationContext context; - - - @BeforeEach - void setUp(WebApplicationContext context) - { - mockMvc = MockMvcBuilders.webAppContextSetup(context).build(); - } + WebTestClient webClient; @Test @@ -42,11 +33,19 @@ class DemoApplicationIT extends IntegrationTestBase .forward(forward() .withHost(NGINX.getContainerIpAddress()) .withPort(NGINX.getMappedPort(80))); - mockMvc - .perform(get(URI.create("http://S.U.T/?path=test.txt"))) - .andExpect(status().isOk()) - .andExpect(content().contentType(MediaType.TEXT_PLAIN)) - .andExpect(content().string("Hello World!\n")); + webClient + .get() + .uri("/?path=test.txt") + .exchange() + .expectStatus().isOk() + .expectHeader().contentType(MediaType.TEXT_HTML) + .expectBody(String.class).value(rendered -> + { + Document doc = Jsoup.parse(rendered); + assertThat( + doc.select("html > body > main > div > div > pre").text()) + .isEqualTo("Hello World!"); + }); } @Configuration @@ -58,8 +57,7 @@ class DemoApplicationIT extends IntegrationTestBase return new RemoteContentService( WebClient .builder() - .baseUrl("http://localhost:" + - DemoApplicationIT.MOCK_SERVER.getLocalPort()) + .baseUrl("http://localhost:" + MOCK_SERVER.getLocalPort()) .build()); }