3 import de.juplo.demo.DemoApplicationIT.Application;
5 import org.junit.jupiter.api.BeforeEach;
6 import org.junit.jupiter.api.Test;
7 import static org.mockserver.matchers.Times.exactly;
8 import static org.mockserver.model.HttpForward.forward;
9 import static org.mockserver.model.HttpRequest.request;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.context.ApplicationContext;
12 import org.springframework.context.annotation.Bean;
13 import org.springframework.context.annotation.Configuration;
14 import org.springframework.http.MediaType;
15 import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
16 import org.springframework.test.web.reactive.server.WebTestClient;
17 import org.springframework.web.reactive.function.client.WebClient;
19 @SpringJUnitConfig(Application.class)
20 class DemoApplicationIT extends IntegrationTestBase
22 WebTestClient webClient;
24 ApplicationContext context;
30 webClient = WebTestClient.bindToApplicationContext(context).build();
35 void test() throws Exception
38 .when(request().withPath("/test.txt"), exactly(1))
40 .withHost(NGINX.getContainerIpAddress())
41 .withPort(NGINX.getMappedPort(80)));
44 .uri(URI.create("http://S.U.T/?path=test.txt"))
46 .expectStatus().is2xxSuccessful()
47 .expectHeader().contentType(MediaType.TEXT_HTML)
48 .expectBody(String.class).isEqualTo("Hello World!\n");
52 static class Application
55 RemoteContentService service()
57 return new RemoteContentService(
60 .baseUrl("http://localhost:" +
61 DemoApplicationIT.MOCK_SERVER.getLocalPort())
66 HtmlController controller(RemoteContentService service)
68 return new HtmlController(service);