WIP:integrationtest
[demos/testing] / src / test / java / de / juplo / demo / IntegrationtestApplicationIT.java
1 package de.juplo.demo;
2
3 import de.juplo.integrationtest.IntegrationtestApplicationIT.Application;
4 import java.net.URI;
5 import org.junit.jupiter.api.Test;
6 import static org.mockserver.matchers.Times.exactly;
7 import static org.mockserver.model.HttpForward.forward;
8 import static org.mockserver.model.HttpRequest.request;
9 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.boot.autoconfigure.SpringBootApplication;
11 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureWebMvc;
12 import org.springframework.boot.test.context.SpringBootTest;
13 import org.springframework.context.annotation.Bean;
14 import org.springframework.test.web.servlet.MockMvc;
15 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
16 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
17
18 @SpringBootTest(classes = Application.class)
19 @AutoConfigureWebMvc
20 class IntegrationtestApplicationIT extends IntegrationTestBase {
21
22   @Autowired
23   MockMvc mockMvc;
24
25
26   @Test
27         void contextLoads() throws Exception {
28     MOCK_SERVER
29         .when(request().withPath("/?path=test.txt"), exactly(1))
30         .forward(forward().withHost(getNginxIP()).withPort(getNginxPort()));
31     mockMvc
32         .perform(get(URI.create("http://sut/?path=test.txt")))
33         .andExpect(status().isOk());
34         }
35
36   @SpringBootApplication
37   static class Application {
38
39     @Bean
40     public RemoteContentController remoteContentController()
41     {
42       return new RemoteContentController(
43           "http://localhost:" +
44           IntegrationtestApplicationIT.MOCK_SERVER.getLocalPort()
45           );
46     }
47   }
48 }