diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/EndpointMvcIntegrationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/EndpointMvcIntegrationTests.java index 63af038b24..22d0914530 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/EndpointMvcIntegrationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/EndpointMvcIntegrationTests.java @@ -49,8 +49,9 @@ import org.springframework.boot.autoconfigure.web.HttpMessageConverters; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -58,7 +59,6 @@ import org.springframework.context.annotation.Import; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -74,8 +74,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ @RunWith(SpringRunner.class) @SpringApplicationConfiguration(Application.class) -@IntegrationTest("server.port=0") -@WebAppConfiguration +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class EndpointMvcIntegrationTests { diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/HalBrowserMvcEndpointServerContextPathIntegrationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/HalBrowserMvcEndpointServerContextPathIntegrationTests.java index eb85c76f33..84f258ec2c 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/HalBrowserMvcEndpointServerContextPathIntegrationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/HalBrowserMvcEndpointServerContextPathIntegrationTests.java @@ -24,8 +24,9 @@ import org.junit.runner.RunWith; import org.springframework.boot.actuate.autoconfigure.MinimalActuatorHypermediaApplication; import org.springframework.boot.actuate.endpoint.mvc.HalBrowserMvcEndpointServerContextPathIntegrationTests.SpringBootHypermediaApplication; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.hateoas.ResourceSupport; import org.springframework.http.HttpEntity; @@ -36,7 +37,6 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -52,8 +52,8 @@ import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo; */ @RunWith(SpringRunner.class) @SpringApplicationConfiguration(SpringBootHypermediaApplication.class) -@WebAppConfiguration -@IntegrationTest({ "server.port=0", "server.contextPath=/spring" }) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "server.contextPath=/spring" }) @DirtiesContext public class HalBrowserMvcEndpointServerContextPathIntegrationTests { diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/HalBrowserMvcEndpointServerPortIntegrationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/HalBrowserMvcEndpointServerPortIntegrationTests.java index bd8b70d867..d9a4090dee 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/HalBrowserMvcEndpointServerPortIntegrationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/HalBrowserMvcEndpointServerPortIntegrationTests.java @@ -24,8 +24,9 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.actuate.autoconfigure.MinimalActuatorHypermediaApplication; import org.springframework.boot.actuate.endpoint.mvc.HalBrowserMvcEndpointServerPortIntegrationTests.SpringBootHypermediaApplication; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.hateoas.ResourceSupport; import org.springframework.http.HttpEntity; @@ -36,7 +37,6 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -52,8 +52,8 @@ import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo; */ @RunWith(SpringRunner.class) @SpringApplicationConfiguration(SpringBootHypermediaApplication.class) -@WebAppConfiguration -@IntegrationTest({ "server.port=0", "management.port=0" }) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.port=0" }) @DirtiesContext public class HalBrowserMvcEndpointServerPortIntegrationTests { diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/integration/SpringIntegrationMetricReaderTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/integration/SpringIntegrationMetricReaderTests.java index 7119119673..ebdc6a435e 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/integration/SpringIntegrationMetricReaderTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/integration/SpringIntegrationMetricReaderTests.java @@ -23,8 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.metrics.integration.SpringIntegrationMetricReaderTests.TestConfiguration; import org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration; import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -41,7 +41,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ @RunWith(SpringRunner.class) @SpringApplicationConfiguration(TestConfiguration.class) -@IntegrationTest("spring.jmx.enabled=true") +@SpringApplicationTest("spring.jmx.enabled=true") @DirtiesContext public class SpringIntegrationMetricReaderTests { diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfigurationIntegrationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfigurationIntegrationTests.java index f38d0f7080..1198a9b609 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfigurationIntegrationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfigurationIntegrationTests.java @@ -23,8 +23,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.MessageSourceAutoConfigurationIntegrationTests.Config; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Configuration; import org.springframework.test.annotation.DirtiesContext; @@ -41,7 +41,7 @@ import static org.assertj.core.api.Assertions.assertThat; PropertyPlaceholderAutoConfiguration.class }) @RunWith(SpringRunner.class) @DirtiesContext -@IntegrationTest("spring.messages.basename:test/messages") +@SpringApplicationTest("spring.messages.basename:test/messages") public class MessageSourceAutoConfigurationIntegrationTests { @Autowired diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomFilterContextPathTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomFilterContextPathTests.java index 7d2d395b5d..95c8b8805e 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomFilterContextPathTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomFilterContextPathTests.java @@ -38,7 +38,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationCust import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -56,8 +57,8 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true, value = {"spring.jersey.type=filter", - "server.contextPath=/app" }) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "spring.jersey.type=filter", "server.contextPath=/app" }) public class JerseyAutoConfigurationCustomFilterContextPathTests { @Autowired @@ -65,8 +66,8 @@ public class JerseyAutoConfigurationCustomFilterContextPathTests { @Test public void contextLoads() { - ResponseEntity entity = this.restTemplate.getForEntity( - "/app/rest/hello", String.class); + ResponseEntity entity = this.restTemplate.getForEntity("/app/rest/hello", + String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomFilterPathTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomFilterPathTests.java index 75b2b874aa..0f308bd3a1 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomFilterPathTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomFilterPathTests.java @@ -38,7 +38,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationCust import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -56,7 +57,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true, value = "spring.jersey.type=filter") +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.jersey.type=filter") public class JerseyAutoConfigurationCustomFilterPathTests { @Autowired @@ -64,8 +65,8 @@ public class JerseyAutoConfigurationCustomFilterPathTests { @Test public void contextLoads() { - ResponseEntity entity = this.restTemplate.getForEntity( - "/rest/hello", String.class); + ResponseEntity entity = this.restTemplate.getForEntity("/rest/hello", + String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomLoadOnStartupTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomLoadOnStartupTests.java index 85576b5a21..c5817649b5 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomLoadOnStartupTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomLoadOnStartupTests.java @@ -33,7 +33,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationCust import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; @@ -48,7 +49,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true, value = "spring.jersey.servlet.load-on-startup=5") +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.jersey.servlet.load-on-startup=5") public class JerseyAutoConfigurationCustomLoadOnStartupTests { @Autowired @@ -56,8 +57,9 @@ public class JerseyAutoConfigurationCustomLoadOnStartupTests { @Test public void contextLoads() { - assertThat(new DirectFieldAccessor(this.context.getBean("jerseyServletRegistration")) - .getPropertyValue("loadOnStartup")).isEqualTo(5); + assertThat( + new DirectFieldAccessor(this.context.getBean("jerseyServletRegistration")) + .getPropertyValue("loadOnStartup")).isEqualTo(5); } @MinimalWebConfiguration @@ -72,9 +74,9 @@ public class JerseyAutoConfigurationCustomLoadOnStartupTests { @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented - @Import({EmbeddedServletContainerAutoConfiguration.class, + @Import({ EmbeddedServletContainerAutoConfiguration.class, ServerPropertiesAutoConfiguration.class, JerseyAutoConfiguration.class, - PropertyPlaceholderAutoConfiguration.class}) + PropertyPlaceholderAutoConfiguration.class }) protected @interface MinimalWebConfiguration { } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomObjectMapperProviderTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomObjectMapperProviderTests.java index 385a375cca..e57fc2c48e 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomObjectMapperProviderTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomObjectMapperProviderTests.java @@ -38,7 +38,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationObje import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -56,7 +57,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true, value = "spring.jackson.serialization-inclusion=non_null") +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.jackson.serialization-inclusion=non_null") public class JerseyAutoConfigurationCustomObjectMapperProviderTests { @Autowired @@ -64,8 +65,8 @@ public class JerseyAutoConfigurationCustomObjectMapperProviderTests { @Test public void contextLoads() { - ResponseEntity response = this.restTemplate.getForEntity( - "/rest/message", String.class); + ResponseEntity response = this.restTemplate.getForEntity("/rest/message", + String.class); assertThat(HttpStatus.OK).isEqualTo(response.getStatusCode()); assertThat("{\"subject\":\"Jersey\"}").isEqualTo(response.getBody()); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomServletContextPathTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomServletContextPathTests.java index 6d996c9121..5a16438a64 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomServletContextPathTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomServletContextPathTests.java @@ -38,7 +38,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationCust import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -53,10 +54,11 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Dave Syer */ + @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true, value = "server.contextPath=/app") +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "server.contextPath=/app") public class JerseyAutoConfigurationCustomServletContextPathTests { @Autowired @@ -64,8 +66,8 @@ public class JerseyAutoConfigurationCustomServletContextPathTests { @Test public void contextLoads() { - ResponseEntity entity = this.restTemplate.getForEntity( - "/app/rest/hello", String.class); + ResponseEntity entity = this.restTemplate.getForEntity("/app/rest/hello", + String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomServletPathTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomServletPathTests.java index 6ecb35fca7..41f47d580f 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomServletPathTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationCustomServletPathTests.java @@ -38,7 +38,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationCust import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -53,10 +54,11 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Dave Syer */ + @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class JerseyAutoConfigurationCustomServletPathTests { @Autowired @@ -64,8 +66,8 @@ public class JerseyAutoConfigurationCustomServletPathTests { @Test public void contextLoads() { - ResponseEntity entity = this.restTemplate.getForEntity( - "/rest/hello", String.class); + ResponseEntity entity = this.restTemplate.getForEntity("/rest/hello", + String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationDefaultFilterPathTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationDefaultFilterPathTests.java index c576b1ecc6..f55e8ec98d 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationDefaultFilterPathTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationDefaultFilterPathTests.java @@ -37,7 +37,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationDefa import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -55,7 +56,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true, value = "spring.jersey.type=filter") +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.jersey.type=filter") public class JerseyAutoConfigurationDefaultFilterPathTests { @Autowired @@ -63,8 +64,8 @@ public class JerseyAutoConfigurationDefaultFilterPathTests { @Test public void contextLoads() { - ResponseEntity entity = this.restTemplate - .getForEntity("/hello", String.class); + ResponseEntity entity = this.restTemplate.getForEntity("/hello", + String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationDefaultServletPathTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationDefaultServletPathTests.java index 2d99e6c8dc..f349d4247d 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationDefaultServletPathTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationDefaultServletPathTests.java @@ -37,7 +37,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationDefa import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -52,10 +53,11 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Dave Syer */ + @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class JerseyAutoConfigurationDefaultServletPathTests { @Autowired @@ -63,8 +65,8 @@ public class JerseyAutoConfigurationDefaultServletPathTests { @Test public void contextLoads() { - ResponseEntity entity = this.restTemplate - .getForEntity("/hello", String.class); + ResponseEntity entity = this.restTemplate.getForEntity("/hello", + String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationObjectMapperProviderTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationObjectMapperProviderTests.java index 597cf17694..5a9d770f56 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationObjectMapperProviderTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationObjectMapperProviderTests.java @@ -38,7 +38,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationObje import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -56,7 +57,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class JerseyAutoConfigurationObjectMapperProviderTests { @Autowired @@ -64,8 +65,8 @@ public class JerseyAutoConfigurationObjectMapperProviderTests { @Test public void contextLoads() { - ResponseEntity response = this.restTemplate.getForEntity( - "/rest/message", String.class); + ResponseEntity response = this.restTemplate.getForEntity("/rest/message", + String.class); assertThat(HttpStatus.OK).isEqualTo(response.getStatusCode()); assertThat("{\"subject\":\"Jersey\",\"body\":null}") .isEqualTo(response.getBody()); diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java index 852efe8d27..5d7a83d38b 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java @@ -35,7 +35,8 @@ import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoCo import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.rule.OutputCapture; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -54,7 +55,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class JerseyAutoConfigurationServletContainerTests { @ClassRule diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationWithoutApplicationPathTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationWithoutApplicationPathTests.java index d173d2dd87..8f89cfa6ce 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationWithoutApplicationPathTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationWithoutApplicationPathTests.java @@ -37,7 +37,8 @@ import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfigurationCust import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -55,7 +56,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@WebIntegrationTest(randomPort = true, value = "spring.jersey.application-path=/api") +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.jersey.application-path=/api") public class JerseyAutoConfigurationWithoutApplicationPathTests { @Autowired @@ -63,8 +64,8 @@ public class JerseyAutoConfigurationWithoutApplicationPathTests { @Test public void contextLoads() { - ResponseEntity entity = this.restTemplate.getForEntity( - "/api/hello", String.class); + ResponseEntity entity = this.restTemplate.getForEntity("/api/hello", + String.class); assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/MustacheAutoConfigurationIntegrationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/MustacheAutoConfigurationIntegrationTests.java index 0700367131..276816fd6d 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/MustacheAutoConfigurationIntegrationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/MustacheAutoConfigurationIntegrationTests.java @@ -36,15 +36,15 @@ import org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfigura import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.stereotype.Controller; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import static org.assertj.core.api.Assertions.assertThat; @@ -57,9 +57,8 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@IntegrationTest({ "server.port:0", +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { "spring.mustache.prefix:classpath:/mustache-templates/" }) -@WebAppConfiguration public class MustacheAutoConfigurationIntegrationTests { @Autowired diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/MustacheStandaloneIntegrationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/MustacheStandaloneIntegrationTests.java index 0abac11d89..a51a673b38 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/MustacheStandaloneIntegrationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/MustacheStandaloneIntegrationTests.java @@ -25,8 +25,9 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.mustache.MustacheStandaloneIntegrationTests.Application; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; @@ -42,7 +43,8 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@IntegrationTest({ "spring.main.web_environment=false", "env.foo=There", "foo=World" }) +@SpringApplicationTest(webEnvironment = WebEnvironment.NONE, properties = { + "env.foo=There", "foo=World" }) public class MustacheStandaloneIntegrationTests { @Autowired diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/web/MustacheWebIntegrationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/web/MustacheWebIntegrationTests.java index 8116909558..c05aa2bc6f 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/web/MustacheWebIntegrationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mustache/web/MustacheWebIntegrationTests.java @@ -41,8 +41,9 @@ import org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfigura import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -50,7 +51,6 @@ import org.springframework.context.annotation.Import; import org.springframework.stereotype.Controller; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import static org.assertj.core.api.Assertions.assertThat; @@ -64,8 +64,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration(Application.class) -@IntegrationTest("server.port:0") -@WebAppConfiguration +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class MustacheWebIntegrationTests { @Autowired diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/UserInfoTokenServicesRefreshTokenTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/UserInfoTokenServicesRefreshTokenTests.java index 91efeda25b..49f711dfdf 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/UserInfoTokenServicesRefreshTokenTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/UserInfoTokenServicesRefreshTokenTests.java @@ -31,7 +31,8 @@ import org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfi import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.http.HttpStatus; @@ -59,7 +60,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest({ "server.port=0", +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { "security.oauth2.resource.userInfoUri:http://example.com", "security.oauth2.client.clientId=foo" }) @DirtiesContext diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerIntegrationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerIntegrationTests.java index fce906ec32..1bdff3d1ed 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerIntegrationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerIntegrationTests.java @@ -34,8 +34,9 @@ import org.junit.runner.RunWith; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.web.BasicErrorControllerIntegrationTests.TestConfiguration; import org.springframework.boot.autoconfigure.web.BasicErrorControllerMockMvcTests.MinimalWebConfiguration; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; @@ -46,7 +47,6 @@ import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.validation.BindException; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.RequestBody; @@ -68,9 +68,8 @@ import static org.assertj.core.api.Assertions.assertThat; */ @RunWith(SpringRunner.class) @SpringApplicationConfiguration(TestConfiguration.class) -@WebAppConfiguration @DirtiesContext -@IntegrationTest("server.port=0") +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class BasicErrorControllerIntegrationTests { private ConfigurableApplicationContext context; diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/RemappedErrorViewIntegrationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/RemappedErrorViewIntegrationTests.java index 5799c0ee80..524a9a0ae8 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/RemappedErrorViewIntegrationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/RemappedErrorViewIntegrationTests.java @@ -26,15 +26,15 @@ import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletCont import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.boot.context.embedded.ErrorPage; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.boot.test.context.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.stereotype.Controller; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.client.RestTemplate; @@ -45,8 +45,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ @SpringApplicationConfiguration(TestConfiguration.class) @RunWith(SpringRunner.class) -@WebAppConfiguration -@IntegrationTest({ "server.servletPath:/spring/*", "server.port:0" }) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "server.servletPath:/spring/*") @DirtiesContext public class RemappedErrorViewIntegrationTests { diff --git a/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/integrationtest/HttpTunnelIntegrationTests.java b/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/integrationtest/HttpTunnelIntegrationTests.java index bc07eff573..06313ee344 100644 --- a/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/integrationtest/HttpTunnelIntegrationTests.java +++ b/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/integrationtest/HttpTunnelIntegrationTests.java @@ -39,7 +39,8 @@ import org.springframework.boot.devtools.tunnel.server.PortProvider; import org.springframework.boot.devtools.tunnel.server.SocketTargetServerConnection; import org.springframework.boot.devtools.tunnel.server.StaticPortProvider; import org.springframework.boot.devtools.tunnel.server.TargetServerConnection; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -61,7 +62,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Phillip Webb */ @RunWith(SpringRunner.class) -@WebIntegrationTest +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class HttpTunnelIntegrationTests { @Autowired diff --git a/spring-boot-integration-tests/spring-boot-security-tests/spring-boot-security-test-web-helloworld/src/test/java/sample/HelloWebSecurityApplicationTests.java b/spring-boot-integration-tests/spring-boot-security-tests/spring-boot-security-test-web-helloworld/src/test/java/sample/HelloWebSecurityApplicationTests.java index 14c38e3f29..394d2baf63 100644 --- a/spring-boot-integration-tests/spring-boot-security-tests/spring-boot-security-test-web-helloworld/src/test/java/sample/HelloWebSecurityApplicationTests.java +++ b/spring-boot-integration-tests/spring-boot-security-tests/spring-boot-security-test-web-helloworld/src/test/java/sample/HelloWebSecurityApplicationTests.java @@ -23,7 +23,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.mock.web.MockFilterChain; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; @@ -34,7 +35,7 @@ import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class HelloWebSecurityApplicationTests { @Autowired diff --git a/spring-boot-parent/src/checkstyle/checkstyle.xml b/spring-boot-parent/src/checkstyle/checkstyle.xml index 9e19149b30..61889c0536 100644 --- a/spring-boot-parent/src/checkstyle/checkstyle.xml +++ b/spring-boot-parent/src/checkstyle/checkstyle.xml @@ -71,7 +71,7 @@ + value="org.assertj.core.api.Assertions.*, org.junit.Assert.*, org.junit.Assume.*, org.junit.internal.matchers.ThrowableMessageMatcher.*, org.hamcrest.CoreMatchers.*, org.hamcrest.Matchers.*, org.springframework.boot.configurationprocessor.ConfigurationMetadataMatchers.*, org.springframework.boot.configurationprocessor.TestCompiler.*, org.mockito.Mockito.*, org.mockito.BDDMockito.*, org.mockito.Matchers.*, org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*, org.springframework.test.web.servlet.result.MockMvcResultMatchers.*, org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*, org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*, org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo, org.springframework.boot.test.context.SpringApplicationTest.Mode.*" /> diff --git a/spring-boot-samples/spring-boot-sample-actuator-log4j2/src/test/java/sample/actuator/log4j2/SampleActuatorLog4J2ApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator-log4j2/src/test/java/sample/actuator/log4j2/SampleActuatorLog4J2ApplicationTests.java index 9c630bca54..81399e8342 100644 --- a/spring-boot-samples/spring-boot-sample-actuator-log4j2/src/test/java/sample/actuator/log4j2/SampleActuatorLog4J2ApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator-log4j2/src/test/java/sample/actuator/log4j2/SampleActuatorLog4J2ApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -37,7 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleActuatorLog4J2ApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationPortTests.java b/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationPortTests.java index f69abc8711..44b488e2ba 100644 --- a/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationPortTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationPortTests.java @@ -23,7 +23,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -38,7 +39,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.port:0" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.port:0" }) @DirtiesContext public class SampleActuatorUiApplicationPortTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationTests.java index f9542200b7..a9562b347e 100644 --- a/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationTests.java @@ -23,7 +23,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -42,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleActuatorUiApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/EndpointsPropertiesSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/EndpointsPropertiesSampleActuatorApplicationTests.java index c2b59ac18c..453166f0c5 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/EndpointsPropertiesSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/EndpointsPropertiesSampleActuatorApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -40,7 +41,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext @ActiveProfiles("endpoints") public class EndpointsPropertiesSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureManagementPortAndPathSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureManagementPortAndPathSampleActuatorApplicationTests.java index 944f2feff3..eeec119dec 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureManagementPortAndPathSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureManagementPortAndPathSampleActuatorApplicationTests.java @@ -25,7 +25,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -40,8 +41,9 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.port=0", "management.context-path=/admin", - "management.security.enabled=false" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.port=0", "management.context-path=/admin", + "management.security.enabled=false" }) @DirtiesContext public class InsecureManagementPortAndPathSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureManagementSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureManagementSampleActuatorApplicationTests.java index 6e9fc7dedd..19d40c6350 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureManagementSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureManagementSampleActuatorApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -39,7 +40,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.security.enabled:false" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.security.enabled:false" }) @DirtiesContext @ActiveProfiles("unsecure-management") public class InsecureManagementSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureSampleActuatorApplicationTests.java index 65f78ec403..5df3e819fe 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/InsecureSampleActuatorApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -38,7 +39,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "security.basic.enabled:false" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "security.basic.enabled:false" }) @DirtiesContext public class InsecureSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementAddressActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementAddressActuatorApplicationTests.java index ec4b2679d3..7f494ae066 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementAddressActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementAddressActuatorApplicationTests.java @@ -23,7 +23,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -38,8 +39,9 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.port=0", "management.address=127.0.0.1", - "management.context-path:/admin" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.port=0", "management.address=127.0.0.1", + "management.context-path:/admin" }) @DirtiesContext public class ManagementAddressActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPathSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPathSampleActuatorApplicationTests.java index 9936ebe073..6f8065bb19 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPathSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPathSampleActuatorApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -37,7 +38,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.context_path=/admin" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.context_path=/admin" }) @DirtiesContext public class ManagementPathSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPortAndPathSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPortAndPathSampleActuatorApplicationTests.java index 29598c4fe0..2dd7a908c6 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPortAndPathSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPortAndPathSampleActuatorApplicationTests.java @@ -25,7 +25,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -40,8 +41,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.port=0", - "management.context-path=/admin" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.port=0", "management.context-path=/admin" }) @DirtiesContext public class ManagementPortAndPathSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPortSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPortSampleActuatorApplicationTests.java index 540fff5dae..c4169ecc0b 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPortSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ManagementPortSampleActuatorApplicationTests.java @@ -25,7 +25,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -40,7 +41,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.port=0" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.port=0" }) @DirtiesContext public class ManagementPortSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/NoManagementSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/NoManagementSampleActuatorApplicationTests.java index 21b6e1b6d2..1aada07374 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/NoManagementSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/NoManagementSampleActuatorApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -39,7 +40,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.port=-1" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.port=-1" }) @DirtiesContext public class NoManagementSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/NonSensitiveHealthTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/NonSensitiveHealthTests.java index 46cd2d4bcb..b361b53aac 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/NonSensitiveHealthTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/NonSensitiveHealthTests.java @@ -20,7 +20,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -35,7 +36,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Phillip Webb */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "endpoints.health.sensitive=false" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "endpoints.health.sensitive=false" }) @DirtiesContext public class NonSensitiveHealthTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/SampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/SampleActuatorApplicationTests.java index d2dacf2db6..640da701e1 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/SampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/SampleActuatorApplicationTests.java @@ -27,7 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -47,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Stephane Nicoll */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ServletPathInsecureSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ServletPathInsecureSampleActuatorApplicationTests.java index 12a39ef847..f97e42f1cf 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ServletPathInsecureSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ServletPathInsecureSampleActuatorApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -38,8 +39,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "security.basic.enabled:false", - "server.servletPath:/spring" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "security.basic.enabled:false", "server.servletPath:/spring" }) @DirtiesContext public class ServletPathInsecureSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ServletPathSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ServletPathSampleActuatorApplicationTests.java index 19bde50b46..0b905b625f 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ServletPathSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ServletPathSampleActuatorApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -37,7 +38,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "server.servletPath=/spring" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "server.servletPath=/spring" }) @DirtiesContext public class ServletPathSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ShutdownSampleActuatorApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ShutdownSampleActuatorApplicationTests.java index f11647e88d..4514010467 100644 --- a/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ShutdownSampleActuatorApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator/src/test/java/sample/actuator/ShutdownSampleActuatorApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -39,7 +40,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class ShutdownSampleActuatorApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-atmosphere/src/test/java/sample/atmosphere/SampleAtmosphereApplicationTests.java b/spring-boot-samples/spring-boot-sample-atmosphere/src/test/java/sample/atmosphere/SampleAtmosphereApplicationTests.java index 7c50675916..70289e73d9 100644 --- a/spring-boot-samples/spring-boot-sample-atmosphere/src/test/java/sample/atmosphere/SampleAtmosphereApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-atmosphere/src/test/java/sample/atmosphere/SampleAtmosphereApplicationTests.java @@ -31,7 +31,8 @@ import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfigurati import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.web.LocalServerPort; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -47,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringApplicationConfiguration(SampleAtmosphereApplication.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleAtmosphereApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-data-cassandra/src/test/java/sample/data/cassandra/SampleCassandraApplicationTests.java b/spring-boot-samples/spring-boot-sample-data-cassandra/src/test/java/sample/data/cassandra/SampleCassandraApplicationTests.java index 8f48ab7ce6..aea5bcf090 100644 --- a/spring-boot-samples/spring-boot-sample-data-cassandra/src/test/java/sample/data/cassandra/SampleCassandraApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-data-cassandra/src/test/java/sample/data/cassandra/SampleCassandraApplicationTests.java @@ -22,7 +22,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.boot.test.context.IntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; import org.springframework.boot.test.rule.OutputCapture; import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.TestExecutionListeners.MergeMode; @@ -36,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @TestExecutionListeners(mergeMode = MergeMode.MERGE_WITH_DEFAULTS, listeners = { OrderedCassandraTestExecutionListener.class }) -@IntegrationTest("spring.data.cassandra.port=9142") +@SpringApplicationTest("spring.data.cassandra.port=9142") @CassandraDataSet(keyspace = "mykeyspace", value = "setup.cql") @EmbeddedCassandra(timeout = 60000) public class SampleCassandraApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-data-mongodb/src/test/java/sample/data/mongo/SampleMongoApplicationTests.java b/spring-boot-samples/spring-boot-sample-data-mongodb/src/test/java/sample/data/mongo/SampleMongoApplicationTests.java index e9aabfaabf..8b79dfecf2 100644 --- a/spring-boot-samples/spring-boot-sample-data-mongodb/src/test/java/sample/data/mongo/SampleMongoApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-data-mongodb/src/test/java/sample/data/mongo/SampleMongoApplicationTests.java @@ -20,7 +20,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.boot.test.context.IntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; import org.springframework.boot.test.rule.OutputCapture; import org.springframework.test.context.junit4.SpringRunner; @@ -33,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@IntegrationTest +@SpringApplicationTest public class SampleMongoApplicationTests { @ClassRule diff --git a/spring-boot-samples/spring-boot-sample-hateoas/src/test/java/sample/hateoas/SampleHateoasApplicationTests.java b/spring-boot-samples/spring-boot-sample-hateoas/src/test/java/sample/hateoas/SampleHateoasApplicationTests.java index d9368e72b3..f6e12149f2 100644 --- a/spring-boot-samples/spring-boot-sample-hateoas/src/test/java/sample/hateoas/SampleHateoasApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-hateoas/src/test/java/sample/hateoas/SampleHateoasApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -35,7 +36,7 @@ import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class SampleHateoasApplicationTests { @LocalServerPort diff --git a/spring-boot-samples/spring-boot-sample-hypermedia-ui/src/test/java/sample/hypermedia/ui/SampleHypermediaUiApplicationTests.java b/spring-boot-samples/spring-boot-sample-hypermedia-ui/src/test/java/sample/hypermedia/ui/SampleHypermediaUiApplicationTests.java index 8de7e33174..9f3e34ee22 100644 --- a/spring-boot-samples/spring-boot-sample-hypermedia-ui/src/test/java/sample/hypermedia/ui/SampleHypermediaUiApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-hypermedia-ui/src/test/java/sample/hypermedia/ui/SampleHypermediaUiApplicationTests.java @@ -23,7 +23,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -35,7 +36,8 @@ import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@WebIntegrationTest(value = { "management.context-path=" }, randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "management.context-path=" }) public class SampleHypermediaUiApplicationTests { @LocalServerPort diff --git a/spring-boot-samples/spring-boot-sample-hypermedia/src/test/java/sample/hypermedia/SampleHypermediaApplicationHomePageTests.java b/spring-boot-samples/spring-boot-sample-hypermedia/src/test/java/sample/hypermedia/SampleHypermediaApplicationHomePageTests.java index c3879d4d99..f7b8799a55 100644 --- a/spring-boot-samples/spring-boot-sample-hypermedia/src/test/java/sample/hypermedia/SampleHypermediaApplicationHomePageTests.java +++ b/spring-boot-samples/spring-boot-sample-hypermedia/src/test/java/sample/hypermedia/SampleHypermediaApplicationHomePageTests.java @@ -23,7 +23,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -35,7 +36,7 @@ import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class SampleHypermediaApplicationHomePageTests { @LocalServerPort diff --git a/spring-boot-samples/spring-boot-sample-jersey/src/test/java/sample/jersey/SampleJerseyApplicationTests.java b/spring-boot-samples/spring-boot-sample-jersey/src/test/java/sample/jersey/SampleJerseyApplicationTests.java index 5ce6b102cd..e1a64351e7 100644 --- a/spring-boot-samples/spring-boot-sample-jersey/src/test/java/sample/jersey/SampleJerseyApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-jersey/src/test/java/sample/jersey/SampleJerseyApplicationTests.java @@ -20,7 +20,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -30,7 +31,7 @@ import org.springframework.web.client.RestTemplate; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class SampleJerseyApplicationTests { @LocalServerPort diff --git a/spring-boot-samples/spring-boot-sample-jersey1/src/test/java/sample/jersey1/SampleJersey1ApplicationTests.java b/spring-boot-samples/spring-boot-sample-jersey1/src/test/java/sample/jersey1/SampleJersey1ApplicationTests.java index b61909d4e0..15d652d418 100644 --- a/spring-boot-samples/spring-boot-sample-jersey1/src/test/java/sample/jersey1/SampleJersey1ApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-jersey1/src/test/java/sample/jersey1/SampleJersey1ApplicationTests.java @@ -20,14 +20,15 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class SampleJersey1ApplicationTests { @LocalServerPort diff --git a/spring-boot-samples/spring-boot-sample-jetty-ssl/src/test/java/sample/jetty/ssl/SampleJettySslApplicationTests.java b/spring-boot-samples/spring-boot-sample-jetty-ssl/src/test/java/sample/jetty/ssl/SampleJettySslApplicationTests.java index 61d465e3e5..9eacbf20c5 100644 --- a/spring-boot-samples/spring-boot-sample-jetty-ssl/src/test/java/sample/jetty/ssl/SampleJettySslApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-jetty-ssl/src/test/java/sample/jetty/ssl/SampleJettySslApplicationTests.java @@ -25,7 +25,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -41,7 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleJettySslApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-jetty/src/test/java/sample/jetty/SampleJettyApplicationTests.java b/spring-boot-samples/spring-boot-sample-jetty/src/test/java/sample/jetty/SampleJettyApplicationTests.java index ba567f36d6..0eb311a5eb 100644 --- a/spring-boot-samples/spring-boot-sample-jetty/src/test/java/sample/jetty/SampleJettyApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-jetty/src/test/java/sample/jetty/SampleJettyApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleJettyApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-jetty8-ssl/src/test/java/sample/jetty8/ssl/SampleJetty8SslApplicationTests.java b/spring-boot-samples/spring-boot-sample-jetty8-ssl/src/test/java/sample/jetty8/ssl/SampleJetty8SslApplicationTests.java index 183f9569f2..90d30dcea1 100644 --- a/spring-boot-samples/spring-boot-sample-jetty8-ssl/src/test/java/sample/jetty8/ssl/SampleJetty8SslApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-jetty8-ssl/src/test/java/sample/jetty8/ssl/SampleJetty8SslApplicationTests.java @@ -25,7 +25,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -41,7 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleJetty8SslApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-jetty8/src/test/java/sample/jetty8/SampleJetty8ApplicationTests.java b/spring-boot-samples/spring-boot-sample-jetty8/src/test/java/sample/jetty8/SampleJetty8ApplicationTests.java index e03987dc1a..3fe03f08c6 100644 --- a/spring-boot-samples/spring-boot-sample-jetty8/src/test/java/sample/jetty8/SampleJetty8ApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-jetty8/src/test/java/sample/jetty8/SampleJetty8ApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleJetty8ApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-jetty93/src/test/java/sample/jetty93/SampleJetty93ApplicationTests.java b/spring-boot-samples/spring-boot-sample-jetty93/src/test/java/sample/jetty93/SampleJetty93ApplicationTests.java index e6b8123e9a..fdda6caff2 100644 --- a/spring-boot-samples/spring-boot-sample-jetty93/src/test/java/sample/jetty93/SampleJetty93ApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-jetty93/src/test/java/sample/jetty93/SampleJetty93ApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleJetty93ApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-metrics-dropwizard/src/test/java/sample/metrics/dropwizard/SampleDropwizardMetricsApplicationTests.java b/spring-boot-samples/spring-boot-sample-metrics-dropwizard/src/test/java/sample/metrics/dropwizard/SampleDropwizardMetricsApplicationTests.java index 567bef6b73..8c1700559c 100644 --- a/spring-boot-samples/spring-boot-sample-metrics-dropwizard/src/test/java/sample/metrics/dropwizard/SampleDropwizardMetricsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-metrics-dropwizard/src/test/java/sample/metrics/dropwizard/SampleDropwizardMetricsApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.metrics.GaugeService; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; @@ -34,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleDropwizardMetricsApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-metrics-opentsdb/src/test/java/sample/metrics/opentsdb/SampleOpenTsdbExportApplicationTests.java b/spring-boot-samples/spring-boot-sample-metrics-opentsdb/src/test/java/sample/metrics/opentsdb/SampleOpenTsdbExportApplicationTests.java index 7a6074965a..c172e94546 100644 --- a/spring-boot-samples/spring-boot-sample-metrics-opentsdb/src/test/java/sample/metrics/opentsdb/SampleOpenTsdbExportApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-metrics-opentsdb/src/test/java/sample/metrics/opentsdb/SampleOpenTsdbExportApplicationTests.java @@ -19,7 +19,8 @@ package sample.metrics.opentsdb; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; @@ -29,7 +30,7 @@ import org.springframework.test.context.junit4.SpringRunner; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleOpenTsdbExportApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-metrics-redis/src/test/java/sample/metrics/redis/SampleRedisExportApplicationTests.java b/spring-boot-samples/spring-boot-sample-metrics-redis/src/test/java/sample/metrics/redis/SampleRedisExportApplicationTests.java index 50216760ba..7052f4ac70 100644 --- a/spring-boot-samples/spring-boot-sample-metrics-redis/src/test/java/sample/metrics/redis/SampleRedisExportApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-metrics-redis/src/test/java/sample/metrics/redis/SampleRedisExportApplicationTests.java @@ -19,7 +19,8 @@ package sample.metrics.redis; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; @@ -29,7 +30,7 @@ import org.springframework.test.context.junit4.SpringRunner; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(value = "spring.jmx.enabled=true", randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.jmx.enabled=true") @DirtiesContext public class SampleRedisExportApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-secure-oauth2-resource/src/test/java/sample/secure/oauth2/resource/SampleSecureOAuth2ResourceApplicationTests.java b/spring-boot-samples/spring-boot-sample-secure-oauth2-resource/src/test/java/sample/secure/oauth2/resource/SampleSecureOAuth2ResourceApplicationTests.java index 55ba65c6b9..bcc7ea62c0 100644 --- a/spring-boot-samples/spring-boot-sample-secure-oauth2-resource/src/test/java/sample/secure/oauth2/resource/SampleSecureOAuth2ResourceApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-secure-oauth2-resource/src/test/java/sample/secure/oauth2/resource/SampleSecureOAuth2ResourceApplicationTests.java @@ -21,7 +21,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.hateoas.MediaTypes; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.FilterChainProxy; @@ -41,7 +42,7 @@ import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppC * @author Greg Turnquist */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class SampleSecureOAuth2ResourceApplicationTests { @Autowired diff --git a/spring-boot-samples/spring-boot-sample-secure-oauth2/src/test/java/sample/secure/oauth2/SampleSecureOAuth2ApplicationTests.java b/spring-boot-samples/spring-boot-sample-secure-oauth2/src/test/java/sample/secure/oauth2/SampleSecureOAuth2ApplicationTests.java index 78e0b83d48..1455a8b8d9 100644 --- a/spring-boot-samples/spring-boot-sample-secure-oauth2/src/test/java/sample/secure/oauth2/SampleSecureOAuth2ApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-secure-oauth2/src/test/java/sample/secure/oauth2/SampleSecureOAuth2ApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.hateoas.MediaTypes; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.codec.Base64; @@ -49,7 +50,7 @@ import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppC * @author Greg Turnquist */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class SampleSecureOAuth2ApplicationTests { @Autowired diff --git a/spring-boot-samples/spring-boot-sample-servlet/src/test/java/sample/servlet/SampleServletApplicationTests.java b/spring-boot-samples/spring-boot-sample-servlet/src/test/java/sample/servlet/SampleServletApplicationTests.java index 87ef6bbc89..5db955175f 100644 --- a/spring-boot-samples/spring-boot-sample-servlet/src/test/java/sample/servlet/SampleServletApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-servlet/src/test/java/sample/servlet/SampleServletApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.SecurityProperties; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -37,7 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleServletApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-simple/src/test/java/sample/simple/SpringTestSampleSimpleApplicationTests.java b/spring-boot-samples/spring-boot-sample-simple/src/test/java/sample/simple/SpringTestSampleSimpleApplicationTests.java index 7e3a63ddf4..1cbbd45292 100644 --- a/spring-boot-samples/spring-boot-sample-simple/src/test/java/sample/simple/SpringTestSampleSimpleApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-simple/src/test/java/sample/simple/SpringTestSampleSimpleApplicationTests.java @@ -20,7 +20,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.IntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; import org.springframework.context.ApplicationContext; import org.springframework.test.context.junit4.SpringRunner; @@ -32,7 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@IntegrationTest +@SpringApplicationTest public class SpringTestSampleSimpleApplicationTests { @Autowired diff --git a/spring-boot-samples/spring-boot-sample-test/src/test/java/sample/test/SampleTestApplicationWebIntegrationTests.java b/spring-boot-samples/spring-boot-sample-test/src/test/java/sample/test/SampleTestApplicationWebIntegrationTests.java index 94801f81c4..8f0d0ec2dc 100644 --- a/spring-boot-samples/spring-boot-sample-test/src/test/java/sample/test/SampleTestApplicationWebIntegrationTests.java +++ b/spring-boot-samples/spring-boot-sample-test/src/test/java/sample/test/SampleTestApplicationWebIntegrationTests.java @@ -25,7 +25,8 @@ import sample.test.service.VehicleDetailsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.AutoConfigureTestDatabase; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.test.context.junit4.SpringRunner; @@ -38,7 +39,7 @@ import static org.mockito.BDDMockito.given; * @author Phillip Webb */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @AutoConfigureTestDatabase public class SampleTestApplicationWebIntegrationTests { diff --git a/spring-boot-samples/spring-boot-sample-testng/src/test/java/sample/testng/SampleTestNGApplicationTests.java b/spring-boot-samples/spring-boot-sample-testng/src/test/java/sample/testng/SampleTestNGApplicationTests.java index c6b05c9799..bdd81a6387 100644 --- a/spring-boot-samples/spring-boot-sample-testng/src/test/java/sample/testng/SampleTestNGApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-testng/src/test/java/sample/testng/SampleTestNGApplicationTests.java @@ -19,7 +19,8 @@ package sample.testng; import org.testng.annotations.Test; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -33,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Phillip Webb */ -@WebIntegrationTest("server.port:0") +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleTestNGApplicationTests extends AbstractTestNGSpringContextTests { diff --git a/spring-boot-samples/spring-boot-sample-tomcat-jsp/src/test/java/sample/tomcat/jsp/SampleWebJspApplicationTests.java b/spring-boot-samples/spring-boot-sample-tomcat-jsp/src/test/java/sample/tomcat/jsp/SampleWebJspApplicationTests.java index 1d5ec02737..7451211c7b 100644 --- a/spring-boot-samples/spring-boot-sample-tomcat-jsp/src/test/java/sample/tomcat/jsp/SampleWebJspApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-tomcat-jsp/src/test/java/sample/tomcat/jsp/SampleWebJspApplicationTests.java @@ -20,7 +20,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -35,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Phillip Webb */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebJspApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-tomcat-multi-connectors/src/test/java/sample/tomcat/multiconnector/SampleTomcatTwoConnectorsApplicationTests.java b/spring-boot-samples/spring-boot-sample-tomcat-multi-connectors/src/test/java/sample/tomcat/multiconnector/SampleTomcatTwoConnectorsApplicationTests.java index 3c0cf3e72f..6974cef02d 100644 --- a/spring-boot-samples/spring-boot-sample-tomcat-multi-connectors/src/test/java/sample/tomcat/multiconnector/SampleTomcatTwoConnectorsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-tomcat-multi-connectors/src/test/java/sample/tomcat/multiconnector/SampleTomcatTwoConnectorsApplicationTests.java @@ -32,7 +32,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ApplicationContext; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -50,7 +51,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleTomcatTwoConnectorsApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-tomcat-ssl/src/test/java/sample/tomcat/ssl/SampleTomcatSslApplicationTests.java b/spring-boot-samples/spring-boot-sample-tomcat-ssl/src/test/java/sample/tomcat/ssl/SampleTomcatSslApplicationTests.java index 579bd815f1..f1b1291097 100644 --- a/spring-boot-samples/spring-boot-sample-tomcat-ssl/src/test/java/sample/tomcat/ssl/SampleTomcatSslApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-tomcat-ssl/src/test/java/sample/tomcat/ssl/SampleTomcatSslApplicationTests.java @@ -25,7 +25,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -36,7 +37,7 @@ import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleTomcatSslApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/NonAutoConfigurationSampleTomcatApplicationTests.java b/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/NonAutoConfigurationSampleTomcatApplicationTests.java index ac474bb030..6141942b6b 100644 --- a/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/NonAutoConfigurationSampleTomcatApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/NonAutoConfigurationSampleTomcatApplicationTests.java @@ -29,7 +29,8 @@ import org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfi import org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration; import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @@ -47,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class NonAutoConfigurationSampleTomcatApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/SampleTomcatApplicationTests.java b/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/SampleTomcatApplicationTests.java index fa540e36ef..5cce794944 100644 --- a/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/SampleTomcatApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/SampleTomcatApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleTomcatApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/test/java/sample/tomcat7/jsp/SampleWebJspApplicationTests.java b/spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/test/java/sample/tomcat7/jsp/SampleWebJspApplicationTests.java index a8cf3be0c9..60344a6d56 100644 --- a/spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/test/java/sample/tomcat7/jsp/SampleWebJspApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-tomcat7-jsp/src/test/java/sample/tomcat7/jsp/SampleWebJspApplicationTests.java @@ -20,7 +20,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -35,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Phillip Webb */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebJspApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-traditional/src/test/java/sample/traditional/SampleTraditionalApplicationTests.java b/spring-boot-samples/spring-boot-sample-traditional/src/test/java/sample/traditional/SampleTraditionalApplicationTests.java index cecf71666f..3b4f889e6f 100644 --- a/spring-boot-samples/spring-boot-sample-traditional/src/test/java/sample/traditional/SampleTraditionalApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-traditional/src/test/java/sample/traditional/SampleTraditionalApplicationTests.java @@ -20,7 +20,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -35,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleTraditionalApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-undertow-ssl/src/test/java/sample/undertow/ssl/SampleUndertowSslApplicationTests.java b/spring-boot-samples/spring-boot-sample-undertow-ssl/src/test/java/sample/undertow/ssl/SampleUndertowSslApplicationTests.java index 6b460d0a53..2bb50e3fd5 100644 --- a/spring-boot-samples/spring-boot-sample-undertow-ssl/src/test/java/sample/undertow/ssl/SampleUndertowSslApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-undertow-ssl/src/test/java/sample/undertow/ssl/SampleUndertowSslApplicationTests.java @@ -25,7 +25,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -41,7 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Ivan Sopov */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleUndertowSslApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-undertow/src/test/java/sample/undertow/SampleUndertowApplicationTests.java b/spring-boot-samples/spring-boot-sample-undertow/src/test/java/sample/undertow/SampleUndertowApplicationTests.java index c7c243d69e..a86c7dd345 100644 --- a/spring-boot-samples/spring-boot-sample-undertow/src/test/java/sample/undertow/SampleUndertowApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-undertow/src/test/java/sample/undertow/SampleUndertowApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleUndertowApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-freemarker/src/test/java/sample/freemarker/SampleWebFreeMarkerApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-freemarker/src/test/java/sample/freemarker/SampleWebFreeMarkerApplicationTests.java index a3e7c413a4..dc8e961bae 100644 --- a/spring-boot-samples/spring-boot-sample-web-freemarker/src/test/java/sample/freemarker/SampleWebFreeMarkerApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-freemarker/src/test/java/sample/freemarker/SampleWebFreeMarkerApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -42,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebFreeMarkerApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-groovy-templates/src/test/java/sample/groovytemplates/SampleGroovyTemplateApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-groovy-templates/src/test/java/sample/groovytemplates/SampleGroovyTemplateApplicationTests.java index 64518cc683..7b6d2725ea 100644 --- a/spring-boot-samples/spring-boot-sample-web-groovy-templates/src/test/java/sample/groovytemplates/SampleGroovyTemplateApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-groovy-templates/src/test/java/sample/groovytemplates/SampleGroovyTemplateApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -39,7 +40,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleGroovyTemplateApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-jsp/src/test/java/sample/jsp/SampleWebJspApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-jsp/src/test/java/sample/jsp/SampleWebJspApplicationTests.java index 112a981d45..0cb9d6cbc8 100644 --- a/spring-boot-samples/spring-boot-sample-web-jsp/src/test/java/sample/jsp/SampleWebJspApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-jsp/src/test/java/sample/jsp/SampleWebJspApplicationTests.java @@ -20,7 +20,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -35,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Phillip Webb */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebJspApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-method-security/src/test/java/sample/security/method/SampleMethodSecurityApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-method-security/src/test/java/sample/security/method/SampleMethodSecurityApplicationTests.java index a2a9b328eb..1d1d928dc6 100644 --- a/spring-boot-samples/spring-boot-sample-web-method-security/src/test/java/sample/security/method/SampleMethodSecurityApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-method-security/src/test/java/sample/security/method/SampleMethodSecurityApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleMethodSecurityApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-mustache/src/test/java/sample/mustache/SampleWebMustacheApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-mustache/src/test/java/sample/mustache/SampleWebMustacheApplicationTests.java index af7d33fb18..a9d10e94f6 100644 --- a/spring-boot-samples/spring-boot-sample-web-mustache/src/test/java/sample/mustache/SampleWebMustacheApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-mustache/src/test/java/sample/mustache/SampleWebMustacheApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -42,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebMustacheApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-secure-custom/src/test/java/sample/web/secure/custom/SampleWebSecureCustomApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-secure-custom/src/test/java/sample/web/secure/custom/SampleWebSecureCustomApplicationTests.java index bd92672a6e..16b57e0372 100644 --- a/spring-boot-samples/spring-boot-sample-web-secure-custom/src/test/java/sample/web/secure/custom/SampleWebSecureCustomApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-secure-custom/src/test/java/sample/web/secure/custom/SampleWebSecureCustomApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebSecureCustomApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-secure-github/src/test/java/sample/web/secure/github/SampleGithubApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-secure-github/src/test/java/sample/web/secure/github/SampleGithubApplicationTests.java index 10a281e463..63c4f9c925 100644 --- a/spring-boot-samples/spring-boot-sample-web-secure-github/src/test/java/sample/web/secure/github/SampleGithubApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-secure-github/src/test/java/sample/web/secure/github/SampleGithubApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -38,7 +39,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleGithubApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-secure-jdbc/src/test/java/sample/web/secure/jdbc/SampleWebSecureCustomApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-secure-jdbc/src/test/java/sample/web/secure/jdbc/SampleWebSecureCustomApplicationTests.java index 731c42fed0..d41dc72ae1 100644 --- a/spring-boot-samples/spring-boot-sample-web-secure-jdbc/src/test/java/sample/web/secure/jdbc/SampleWebSecureCustomApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-secure-jdbc/src/test/java/sample/web/secure/jdbc/SampleWebSecureCustomApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebSecureCustomApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-secure/src/test/java/sample/web/secure/SampleSecureApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-secure/src/test/java/sample/web/secure/SampleSecureApplicationTests.java index 9251df87b9..eb95dc032b 100644 --- a/spring-boot-samples/spring-boot-sample-web-secure/src/test/java/sample/web/secure/SampleSecureApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-secure/src/test/java/sample/web/secure/SampleSecureApplicationTests.java @@ -24,7 +24,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -45,7 +46,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleSecureApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-static/src/test/java/sample/web/staticcontent/SampleWebStaticApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-static/src/test/java/sample/web/staticcontent/SampleWebStaticApplicationTests.java index b97ae871b6..f58ec11415 100644 --- a/spring-boot-samples/spring-boot-sample-web-static/src/test/java/sample/web/staticcontent/SampleWebStaticApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-static/src/test/java/sample/web/staticcontent/SampleWebStaticApplicationTests.java @@ -20,7 +20,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -36,7 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebStaticApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-ui/src/test/java/sample/web/ui/SampleWebUiApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-ui/src/test/java/sample/web/ui/SampleWebUiApplicationTests.java index e15cc1a38b..9df1383d04 100644 --- a/spring-boot-samples/spring-boot-sample-web-ui/src/test/java/sample/web/ui/SampleWebUiApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-ui/src/test/java/sample/web/ui/SampleWebUiApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -39,7 +40,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Dave Syer */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebUiApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-web-velocity/src/test/java/sample/web/velocity/SampleWebVelocityApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-velocity/src/test/java/sample/web/velocity/SampleWebVelocityApplicationTests.java index 00c86478da..0910f28f39 100644 --- a/spring-boot-samples/spring-boot-sample-web-velocity/src/test/java/sample/web/velocity/SampleWebVelocityApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-web-velocity/src/test/java/sample/web/velocity/SampleWebVelocityApplicationTests.java @@ -22,7 +22,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -42,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Andy Wilkinson */ @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebVelocityApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/SampleWebSocketsApplicationTests.java b/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/SampleWebSocketsApplicationTests.java index 604c66d6e5..96cb9fb20c 100644 --- a/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/SampleWebSocketsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/SampleWebSocketsApplicationTests.java @@ -34,7 +34,8 @@ import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfigurati import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.web.LocalServerPort; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -47,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringApplicationConfiguration(SampleJettyWebSocketsApplication.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebSocketsApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/echo/CustomContainerWebSocketsApplicationTests.java b/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/echo/CustomContainerWebSocketsApplicationTests.java index 6b9d92b49f..7b95fb8ae3 100644 --- a/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/echo/CustomContainerWebSocketsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-websocket-jetty/src/test/java/samples/websocket/jetty/echo/CustomContainerWebSocketsApplicationTests.java @@ -37,7 +37,8 @@ import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -52,7 +53,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringApplicationConfiguration({ SampleJettyWebSocketsApplication.class, CustomContainerConfiguration.class }) -@WebIntegrationTest +@SpringApplicationTest(webEnvironment = WebEnvironment.DEFINED_PORT) @DirtiesContext public class CustomContainerWebSocketsApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-websocket-tomcat/src/test/java/samples/websocket/tomcat/SampleWebSocketsApplicationTests.java b/spring-boot-samples/spring-boot-sample-websocket-tomcat/src/test/java/samples/websocket/tomcat/SampleWebSocketsApplicationTests.java index 6a3b853016..a1b855c396 100644 --- a/spring-boot-samples/spring-boot-sample-websocket-tomcat/src/test/java/samples/websocket/tomcat/SampleWebSocketsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-websocket-tomcat/src/test/java/samples/websocket/tomcat/SampleWebSocketsApplicationTests.java @@ -34,7 +34,8 @@ import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfigurati import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.web.LocalServerPort; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -47,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringApplicationConfiguration(SampleTomcatWebSocketApplication.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebSocketsApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-websocket-tomcat/src/test/java/samples/websocket/tomcat/echo/CustomContainerWebSocketsApplicationTests.java b/spring-boot-samples/spring-boot-sample-websocket-tomcat/src/test/java/samples/websocket/tomcat/echo/CustomContainerWebSocketsApplicationTests.java index 4bff42ae55..142a80972d 100644 --- a/spring-boot-samples/spring-boot-sample-websocket-tomcat/src/test/java/samples/websocket/tomcat/echo/CustomContainerWebSocketsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-websocket-tomcat/src/test/java/samples/websocket/tomcat/echo/CustomContainerWebSocketsApplicationTests.java @@ -37,7 +37,8 @@ import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -52,7 +53,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringApplicationConfiguration({ SampleTomcatWebSocketApplication.class, CustomContainerConfiguration.class }) -@WebIntegrationTest +@SpringApplicationTest(webEnvironment = WebEnvironment.DEFINED_PORT) @DirtiesContext public class CustomContainerWebSocketsApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-websocket-undertow/src/test/java/samples/websocket/undertow/SampleWebSocketsApplicationTests.java b/spring-boot-samples/spring-boot-sample-websocket-undertow/src/test/java/samples/websocket/undertow/SampleWebSocketsApplicationTests.java index e5c2c57cd1..42ff174696 100644 --- a/spring-boot-samples/spring-boot-sample-websocket-undertow/src/test/java/samples/websocket/undertow/SampleWebSocketsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-websocket-undertow/src/test/java/samples/websocket/undertow/SampleWebSocketsApplicationTests.java @@ -34,7 +34,8 @@ import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfigurati import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.web.LocalServerPort; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -47,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringApplicationConfiguration(SampleUndertowWebSocketsApplication.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext public class SampleWebSocketsApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-websocket-undertow/src/test/java/samples/websocket/undertow/echo/CustomContainerWebSocketsApplicationTests.java b/spring-boot-samples/spring-boot-sample-websocket-undertow/src/test/java/samples/websocket/undertow/echo/CustomContainerWebSocketsApplicationTests.java index 5dc5686e1d..724baf6160 100644 --- a/spring-boot-samples/spring-boot-sample-websocket-undertow/src/test/java/samples/websocket/undertow/echo/CustomContainerWebSocketsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-websocket-undertow/src/test/java/samples/websocket/undertow/echo/CustomContainerWebSocketsApplicationTests.java @@ -37,7 +37,8 @@ import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.undertow.UndertowEmbeddedServletContainerFactory; import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -52,7 +53,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringApplicationConfiguration({ SampleUndertowWebSocketsApplication.class, CustomContainerConfiguration.class }) -@WebIntegrationTest +@SpringApplicationTest(webEnvironment = WebEnvironment.DEFINED_PORT) @DirtiesContext public class CustomContainerWebSocketsApplicationTests { diff --git a/spring-boot-samples/spring-boot-sample-ws/src/test/java/sample/ws/SampleWsApplicationTests.java b/spring-boot-samples/spring-boot-sample-ws/src/test/java/sample/ws/SampleWsApplicationTests.java index 4dab7d00d5..807b172dc9 100644 --- a/spring-boot-samples/spring-boot-sample-ws/src/test/java/sample/ws/SampleWsApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-ws/src/test/java/sample/ws/SampleWsApplicationTests.java @@ -27,7 +27,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.web.WebIntegrationTest; +import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.boot.test.rule.OutputCapture; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.ws.client.core.WebServiceTemplate; @@ -35,7 +36,7 @@ import org.springframework.ws.client.core.WebServiceTemplate; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) -@WebIntegrationTest(randomPort = true) +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class SampleWsApplicationTests { @Rule diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/IntegrationTest.java b/spring-boot-test/src/main/java/org/springframework/boot/test/IntegrationTest.java index a3785967cf..600c65dc27 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/IntegrationTest.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/IntegrationTest.java @@ -23,8 +23,13 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.springframework.core.annotation.AliasFor; +import org.springframework.boot.test.context.SpringApplicationTest; import org.springframework.core.env.Environment; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener; +import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; +import org.springframework.test.context.support.DirtiesContextTestExecutionListener; +import org.springframework.test.context.transaction.TransactionalTestExecutionListener; /** * Test class annotation signifying that the tests are "integration tests" and therefore @@ -36,14 +41,18 @@ import org.springframework.core.env.Environment; * * @author Dave Syer * @see WebIntegrationTest - * @deprecated since 1.4.0 in favor of - * {@link org.springframework.boot.test.context.IntegrationTest} + * @deprecated since 1.4.0 in favor of {@link SpringApplicationTest} */ @Documented @Inherited @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) -@org.springframework.boot.test.context.IntegrationTest +// Leave out the ServletTestExecutionListener because it only deals with Mock* servlet +// stuff. A real embedded application will not need the mocks. +@TestExecutionListeners(listeners = { IntegrationTestPropertiesListener.class, + DependencyInjectionTestExecutionListener.class, + DirtiesContextTestExecutionListener.class, + TransactionalTestExecutionListener.class, SqlScriptsTestExecutionListener.class }) @Deprecated public @interface IntegrationTest { @@ -52,7 +61,6 @@ public @interface IntegrationTest { * {@link Environment} before the test runs. * @return the environment properties */ - @AliasFor(annotation = org.springframework.boot.test.context.IntegrationTest.class, attribute = "value") String[] value() default {}; } diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/IntegrationTestPropertiesListener.java b/spring-boot-test/src/main/java/org/springframework/boot/test/IntegrationTestPropertiesListener.java index 39b211e3b7..b121e9031d 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/IntegrationTestPropertiesListener.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/IntegrationTestPropertiesListener.java @@ -16,7 +16,6 @@ package org.springframework.boot.test; -import org.springframework.boot.test.context.IntegrationTest; import org.springframework.core.Ordered; import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.core.annotation.AnnotationAttributes; diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/MergedContextConfigurationProperties.java b/spring-boot-test/src/main/java/org/springframework/boot/test/MergedContextConfigurationProperties.java index a2d44a5978..cc80cbac11 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/MergedContextConfigurationProperties.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/MergedContextConfigurationProperties.java @@ -20,7 +20,6 @@ import java.util.Arrays; import java.util.LinkedHashSet; import java.util.Set; -import org.springframework.boot.test.context.web.WebIntegrationTest; import org.springframework.test.context.MergedContextConfiguration; import org.springframework.test.util.ReflectionTestUtils; diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/SpringApplicationConfiguration.java b/spring-boot-test/src/main/java/org/springframework/boot/test/SpringApplicationConfiguration.java index e4566933d7..27f170614b 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/SpringApplicationConfiguration.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/SpringApplicationConfiguration.java @@ -42,11 +42,11 @@ import org.springframework.test.context.ContextConfiguration; * @deprecated since 1.4.0 in favor of * {@link org.springframework.boot.test.context.SpringApplicationConfiguration} */ +@ContextConfiguration(loader = SpringApplicationContextLoader.class) @Documented @Inherited @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) -@org.springframework.boot.test.context.SpringApplicationConfiguration @Deprecated public @interface SpringApplicationConfiguration { @@ -55,7 +55,7 @@ public @interface SpringApplicationConfiguration { * @see ContextConfiguration#classes() * @return the context configuration classes */ - @AliasFor(annotation = org.springframework.boot.test.context.SpringApplicationConfiguration.class, attribute = "value") + @AliasFor("classes") Class[] value() default {}; /** @@ -63,7 +63,7 @@ public @interface SpringApplicationConfiguration { * @see ContextConfiguration#locations() * @return the context configuration locations */ - @AliasFor(annotation = org.springframework.boot.test.context.SpringApplicationConfiguration.class, attribute = "locations") + @AliasFor(annotation = ContextConfiguration.class, attribute = "locations") String[] locations() default {}; /** @@ -71,7 +71,7 @@ public @interface SpringApplicationConfiguration { * @see ContextConfiguration#classes() * @return the context configuration classes */ - @AliasFor(annotation = org.springframework.boot.test.context.SpringApplicationConfiguration.class, attribute = "classes") + @AliasFor("value") Class[] classes() default {}; /** @@ -79,7 +79,7 @@ public @interface SpringApplicationConfiguration { * @see ContextConfiguration#initializers() * @return the context configuration initializers */ - @AliasFor(annotation = org.springframework.boot.test.context.SpringApplicationConfiguration.class, attribute = "initializers") + @AliasFor(annotation = ContextConfiguration.class, attribute = "initializers") Class>[] initializers() default {}; /** @@ -87,7 +87,7 @@ public @interface SpringApplicationConfiguration { * @see ContextConfiguration#inheritLocations() * @return {@code true} if context locations should be inherited */ - @AliasFor(annotation = org.springframework.boot.test.context.SpringApplicationConfiguration.class, attribute = "inheritLocations") + @AliasFor(annotation = ContextConfiguration.class, attribute = "inheritLocations") boolean inheritLocations() default true; /** @@ -95,7 +95,7 @@ public @interface SpringApplicationConfiguration { * @see ContextConfiguration#inheritInitializers() * @return {@code true} if context initializers should be inherited */ - @AliasFor(annotation = org.springframework.boot.test.context.SpringApplicationConfiguration.class, attribute = "inheritInitializers") + @AliasFor(annotation = ContextConfiguration.class, attribute = "inheritInitializers") boolean inheritInitializers() default true; /** @@ -103,7 +103,7 @@ public @interface SpringApplicationConfiguration { * @see ContextConfiguration#name() * @return the name of the context hierarchy level */ - @AliasFor(annotation = org.springframework.boot.test.context.SpringApplicationConfiguration.class, attribute = "name") + @AliasFor(annotation = ContextConfiguration.class, attribute = "name") String name() default ""; } diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/SpringApplicationContextLoader.java b/spring-boot-test/src/main/java/org/springframework/boot/test/SpringApplicationContextLoader.java index 85a9ac6424..a244d6d7c3 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/SpringApplicationContextLoader.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/SpringApplicationContextLoader.java @@ -16,15 +16,46 @@ package org.springframework.boot.test; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.springframework.beans.BeanUtils; import org.springframework.boot.SpringApplication; +import org.springframework.boot.context.web.ServletContextApplicationContextInitializer; import org.springframework.boot.test.context.SpringApplicationTest; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.SpringVersion; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.core.env.ConfigurableEnvironment; +import org.springframework.core.env.MapPropertySource; +import org.springframework.core.env.StandardEnvironment; import org.springframework.mock.web.MockServletContext; +import org.springframework.test.context.ContextConfigurationAttributes; import org.springframework.test.context.ContextLoader; +import org.springframework.test.context.MergedContextConfiguration; +import org.springframework.test.context.support.AbstractContextLoader; +import org.springframework.test.context.support.AnnotationConfigContextLoaderUtils; +import org.springframework.test.context.support.TestPropertySourceUtils; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.test.context.web.WebMergedContextConfiguration; +import org.springframework.util.Assert; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.context.support.GenericWebApplicationContext; /** * A {@link ContextLoader} that can be used to test Spring Boot applications (those that * normally startup using {@link SpringApplication}). Can be used to test non-web features - * (like a repository layer) or start an fully-configured embedded servlet container. + * (like a repository layer) or start a fully-configured embedded servlet container. *

* Use {@code @WebIntegrationTest} (or {@code @IntegrationTest} with * {@code @WebAppConfiguration}) to indicate that you want to use a real servlet container @@ -37,18 +68,225 @@ import org.springframework.test.context.ContextLoader; * @author Phillip Webb * @author Andy Wilkinson * @see org.springframework.boot.test.context.SpringApplicationTest - * @see org.springframework.boot.test.context.IntegrationTest - * @see org.springframework.boot.test.context.web.WebIntegrationTest + * @see org.springframework.boot.test.IntegrationTest + * @see org.springframework.boot.test.WebIntegrationTest * @deprecated since 1.4.0 in favor of - * {@link SpringApplicationTest @SpringApplicationTest}, - * {@link org.springframework.boot.test.context.IntegrationTest @IntegrationTest}, - * {@link org.springframework.boot.test.context.web.WebIntegrationTest @WebIntegrationTest} - * annotations. + * {@link SpringApplicationTest @SpringApplicationTest} * {@link org.springframework.boot.test.context.SpringApplicationContextLoader} can also * be considered if absolutely necessary. */ @Deprecated -public class SpringApplicationContextLoader - extends org.springframework.boot.test.context.SpringApplicationContextLoader { +public class SpringApplicationContextLoader extends AbstractContextLoader { + + @Override + public ApplicationContext loadContext(final MergedContextConfiguration config) + throws Exception { + assertValidAnnotations(config.getTestClass()); + SpringApplication application = getSpringApplication(); + application.setMainApplicationClass(config.getTestClass()); + application.setSources(getSources(config)); + ConfigurableEnvironment environment = new StandardEnvironment(); + if (!ObjectUtils.isEmpty(config.getActiveProfiles())) { + setActiveProfiles(environment, config.getActiveProfiles()); + } + Map properties = getEnvironmentProperties(config); + addProperties(environment, properties); + application.setEnvironment(environment); + List> initializers = getInitializers(config, + application); + if (config instanceof WebMergedContextConfiguration) { + new WebConfigurer().configure(config, application, initializers); + } + else { + application.setWebEnvironment(false); + } + application.setInitializers(initializers); + ConfigurableApplicationContext applicationContext = application.run(); + return applicationContext; + } + + private void assertValidAnnotations(Class testClass) { + boolean hasWebAppConfiguration = AnnotationUtils.findAnnotation(testClass, + WebAppConfiguration.class) != null; + boolean hasWebIntegrationTest = AnnotationUtils.findAnnotation(testClass, + WebIntegrationTest.class) != null; + if (hasWebAppConfiguration && hasWebIntegrationTest) { + throw new IllegalStateException("@WebIntegrationTest and " + + "@WebAppConfiguration cannot be used together"); + } + } + + /** + * Builds new {@link org.springframework.boot.SpringApplication} instance. You can + * override this method to add custom behavior + * @return {@link org.springframework.boot.SpringApplication} instance + */ + protected SpringApplication getSpringApplication() { + return new SpringApplication(); + } + + private Set getSources(MergedContextConfiguration mergedConfig) { + Set sources = new LinkedHashSet(); + sources.addAll(Arrays.asList(mergedConfig.getClasses())); + sources.addAll(Arrays.asList(mergedConfig.getLocations())); + Assert.state(!sources.isEmpty(), "No configuration classes " + + "or locations found in @SpringApplicationConfiguration. " + + "For default configuration detection to work you need " + + "Spring 4.0.3 or better (found " + SpringVersion.getVersion() + ")."); + return sources; + } + + private void setActiveProfiles(ConfigurableEnvironment environment, + String[] profiles) { + EnvironmentTestUtils.addEnvironment(environment, "spring.profiles.active=" + + StringUtils.arrayToCommaDelimitedString(profiles)); + } + + protected Map getEnvironmentProperties( + MergedContextConfiguration config) { + Map properties = new LinkedHashMap(); + // JMX bean names will clash if the same bean is used in multiple contexts + disableJmx(properties); + properties.putAll(TestPropertySourceUtils + .convertInlinedPropertiesToMap(config.getPropertySourceProperties())); + if (!TestAnnotations.isIntegrationTest(config)) { + properties.putAll(getDefaultEnvironmentProperties()); + } + return properties; + } + + private void disableJmx(Map properties) { + properties.put("spring.jmx.enabled", "false"); + } + + private Map getDefaultEnvironmentProperties() { + return Collections.singletonMap("server.port", "-1"); + } + + private void addProperties(ConfigurableEnvironment environment, + Map properties) { + // @IntegrationTest properties go before external configuration and after system + environment.getPropertySources().addAfter( + StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME, + new MapPropertySource("integrationTest", properties)); + } + + private List> getInitializers( + MergedContextConfiguration mergedConfig, SpringApplication application) { + List> initializers = new ArrayList>(); + initializers.add(new PropertySourceLocationsInitializer( + mergedConfig.getPropertySourceLocations())); + initializers.addAll(application.getInitializers()); + for (Class> initializerClass : mergedConfig + .getContextInitializerClasses()) { + initializers.add(BeanUtils.instantiate(initializerClass)); + } + return initializers; + } + + @Override + public void processContextConfiguration( + ContextConfigurationAttributes configAttributes) { + super.processContextConfiguration(configAttributes); + if (!configAttributes.hasResources()) { + Class[] defaultConfigClasses = detectDefaultConfigurationClasses( + configAttributes.getDeclaringClass()); + configAttributes.setClasses(defaultConfigClasses); + } + } + + /** + * Detect the default configuration classes for the supplied test class. By default + * simply delegates to + * {@link AnnotationConfigContextLoaderUtils#detectDefaultConfigurationClasses} . + * @param declaringClass the test class that declared {@code @ContextConfiguration} + * @return an array of default configuration classes, potentially empty but never + * {@code null} + * @see AnnotationConfigContextLoaderUtils + */ + protected Class[] detectDefaultConfigurationClasses(Class declaringClass) { + return AnnotationConfigContextLoaderUtils + .detectDefaultConfigurationClasses(declaringClass); + } + + @Override + public ApplicationContext loadContext(String... locations) throws Exception { + throw new UnsupportedOperationException("SpringApplicationContextLoader " + + "does not support the loadContext(String...) method"); + } + + @Override + protected String[] getResourceSuffixes() { + return new String[] { "-context.xml", "Context.groovy" }; + } + + @Override + protected String getResourceSuffix() { + throw new IllegalStateException(); + } + + /** + * Inner class to configure {@link WebMergedContextConfiguration}. + */ + private static class WebConfigurer { + + private static final Class WEB_CONTEXT_CLASS = GenericWebApplicationContext.class; + + void configure(MergedContextConfiguration configuration, + SpringApplication application, + List> initializers) { + if (!TestAnnotations.isIntegrationTest(configuration)) { + WebMergedContextConfiguration webConfiguration = (WebMergedContextConfiguration) configuration; + addMockServletContext(initializers, webConfiguration); + application.setApplicationContextClass(WEB_CONTEXT_CLASS); + } + } + + private void addMockServletContext( + List> initializers, + WebMergedContextConfiguration webConfiguration) { + SpringBootMockServletContext servletContext = new SpringBootMockServletContext( + webConfiguration.getResourceBasePath()); + initializers.add(0, + new ServletContextApplicationContextInitializer(servletContext)); + } + + } + + /** + * {@link ApplicationContextInitializer} to setup test property source locations. + */ + private static class PropertySourceLocationsInitializer + implements ApplicationContextInitializer { + + private final String[] propertySourceLocations; + + PropertySourceLocationsInitializer(String[] propertySourceLocations) { + this.propertySourceLocations = propertySourceLocations; + } + + @Override + public void initialize(ConfigurableApplicationContext applicationContext) { + TestPropertySourceUtils.addPropertiesFilesToEnvironment(applicationContext, + this.propertySourceLocations); + } + + } + + private static class TestAnnotations { + + public static boolean isIntegrationTest( + MergedContextConfiguration configuration) { + return (hasAnnotation(configuration, IntegrationTest.class) + || hasAnnotation(configuration, WebIntegrationTest.class)); + } + + private static boolean hasAnnotation(MergedContextConfiguration configuration, + Class annotation) { + return (AnnotationUtils.findAnnotation(configuration.getTestClass(), + annotation) != null); + } + + } } diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/WebAppIntegrationTestContextBootstrapper.java b/spring-boot-test/src/main/java/org/springframework/boot/test/WebAppIntegrationTestContextBootstrapper.java new file mode 100644 index 0000000000..c80ad9a1bd --- /dev/null +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/WebAppIntegrationTestContextBootstrapper.java @@ -0,0 +1,65 @@ +/* + * Copyright 2012-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.test; + +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.test.context.ContextLoader; +import org.springframework.test.context.MergedContextConfiguration; +import org.springframework.test.context.TestContextBootstrapper; +import org.springframework.test.context.support.DefaultTestContextBootstrapper; +import org.springframework.test.context.web.WebDelegatingSmartContextLoader; +import org.springframework.test.context.web.WebMergedContextConfiguration; + +/** + * {@link TestContextBootstrapper} for Spring Boot web integration tests. + * + * @author Phillip Webb + * @since 1.2.1 + * @deprecated Since 1.4.0 + */ +@Deprecated +class WebAppIntegrationTestContextBootstrapper extends DefaultTestContextBootstrapper { + + @Override + protected Class getDefaultContextLoaderClass( + Class testClass) { + if (AnnotationUtils.findAnnotation(testClass, WebIntegrationTest.class) != null) { + return WebDelegatingSmartContextLoader.class; + } + return super.getDefaultContextLoaderClass(testClass); + } + + @Override + protected MergedContextConfiguration processMergedContextConfiguration( + MergedContextConfiguration mergedConfig) { + WebIntegrationTest annotation = AnnotationUtils + .findAnnotation(mergedConfig.getTestClass(), WebIntegrationTest.class); + if (annotation != null) { + mergedConfig = new WebMergedContextConfiguration(mergedConfig, null); + MergedContextConfigurationProperties properties = new MergedContextConfigurationProperties( + mergedConfig); + if (annotation.randomPort()) { + properties.add(annotation.value(), "server.port:0"); + } + else { + properties.add(annotation.value()); + } + } + return mergedConfig; + } + +} diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/WebIntegrationTest.java b/spring-boot-test/src/main/java/org/springframework/boot/test/WebIntegrationTest.java index 6fae84ba2c..2bc345ee5a 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/WebIntegrationTest.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/WebIntegrationTest.java @@ -24,8 +24,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.core.annotation.AliasFor; import org.springframework.core.env.Environment; +import org.springframework.test.context.BootstrapWith; /** * Test class annotation signifying that the tests are "web integration tests" and @@ -40,13 +40,14 @@ import org.springframework.core.env.Environment; * @since 1.2.1 * @see IntegrationTest * @deprecated since 1.4.0 in favor of - * {@link org.springframework.boot.test.context.web.WebIntegrationTest} + * {@link org.springframework.boot.test.context.SpringApplicationTest} with + * {@code webEnvironment=RANDOM_PORT} or {@code webEnvironment=DEFINED_PORT}. */ @Documented @Inherited @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) -@org.springframework.boot.test.context.web.WebIntegrationTest +@BootstrapWith(WebAppIntegrationTestContextBootstrapper.class) @Deprecated public @interface WebIntegrationTest { @@ -55,7 +56,6 @@ public @interface WebIntegrationTest { * {@link Environment} before the test runs. * @return properties to add to the context */ - @AliasFor(annotation = org.springframework.boot.test.context.web.WebIntegrationTest.class, attribute = "value") String[] value() default {}; /** @@ -65,7 +65,6 @@ public @interface WebIntegrationTest { * test. * @return if a random port should be used */ - @AliasFor(annotation = org.springframework.boot.test.context.web.WebIntegrationTest.class, attribute = "randomPort") boolean randomPort() default false; } diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/IntegrationTest.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/IntegrationTest.java deleted file mode 100644 index 9fd0d43cf3..0000000000 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/IntegrationTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.test.context; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; -import org.springframework.test.context.BootstrapWith; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.web.servlet.MockMvc; - -/** - * Test class annotation signifying that the tests are "integration tests" for a - * {@link org.springframework.boot.SpringApplication Spring Boot Application}. By default - * will load nested {@code @Configuration} classes, or fallback an - * {@link SpringApplicationConfiguration @SpringApplicationConfiguration} search. Unless - * otherwise configured, a {@link SpringApplicationContextLoader} will be used to load the - * {@link ApplicationContext}. Use - * {@link SpringApplicationConfiguration @SpringApplicationConfiguration} or - * {@link ContextConfiguration @ContextConfiguration} if custom configuration is required. - *

- * It's recommended that {@code @IntegrationTest} is used only for non-web applications - * (i.e. not combined with {@link WebAppConfiguration @WebAppConfiguration}). If you want - * to start a real embedded servlet container in the same way as a production application - * (listening on normal ports) use - * {@link org.springframework.boot.test.context.web.WebIntegrationTest @WebIntegrationTest} - * instead. If you are testing a web application and want to mock the servlet environment - * (for example so that you can use {@link MockMvc}) you should switch to the - * {@link SpringApplicationTest @SpringApplicationTest} annotation. - * - * @author Dave Syer - * @author Phillip Webb - * @see SpringApplicationTest - * @see org.springframework.boot.test.context.web.WebIntegrationTest - */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -@Documented -@Inherited -@BootstrapWith(IntegrationTestContextBootstrapper.class) -public @interface IntegrationTest { - - /** - * Properties in form {@literal key=value} that should be added to the Spring - * {@link Environment} before the test runs. - * @return the environment properties - */ - String[] value() default {}; - -} diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/IntegrationTestContextBootstrapper.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/IntegrationTestContextBootstrapper.java deleted file mode 100644 index 23d2595806..0000000000 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/IntegrationTestContextBootstrapper.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.test.context; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.springframework.core.annotation.AnnotatedElementUtils; -import org.springframework.test.context.MergedContextConfiguration; -import org.springframework.test.context.TestContextBootstrapper; -import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.context.web.WebMergedContextConfiguration; - -/** - * {@link TestContextBootstrapper} for {@link IntegrationTest}. - * - * @author Phillip Webb - */ -class IntegrationTestContextBootstrapper extends SpringBootTestContextBootstrapper { - - private static final String SERVLET_LISTENER = "org.springframework.test.context.web.ServletTestExecutionListener"; - - @Override - protected List getDefaultTestExecutionListenerClassNames() { - // Remove the ServletTestExecutionListener because it only deals with MockServlet - List classNames = new ArrayList( - super.getDefaultTestExecutionListenerClassNames()); - while (classNames.contains(SERVLET_LISTENER)) { - classNames.remove(SERVLET_LISTENER); - } - return Collections.unmodifiableList(classNames); - } - - @Override - protected MergedContextConfiguration processMergedContextConfiguration( - MergedContextConfiguration mergedConfig) { - mergedConfig = super.processMergedContextConfiguration(mergedConfig); - WebAppConfiguration webAppConfiguration = AnnotatedElementUtils - .getMergedAnnotation(mergedConfig.getTestClass(), - WebAppConfiguration.class); - if (webAppConfiguration != null) { - mergedConfig = new WebMergedContextConfiguration(mergedConfig, - webAppConfiguration.value()); - } - return mergedConfig; - } - - @Override - protected void processPropertySourceProperties( - MergedContextConfiguration mergedConfig, - List propertySourceProperties) { - IntegrationTest annotation = AnnotatedElementUtils - .getMergedAnnotation(mergedConfig.getTestClass(), IntegrationTest.class); - propertySourceProperties.addAll(Arrays.asList(annotation.value())); - } - -} diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationConfiguration.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationConfiguration.java index 83c320b03c..efde57446b 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationConfiguration.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationConfiguration.java @@ -36,18 +36,13 @@ import org.springframework.test.context.ContextConfiguration; * Spring Boot's {@link SpringApplicationContextLoader}. *

* Tests that using this annotation only to define {@code classes} should consider using - * {@link SpringApplicationTest @SpringApplicationTest}, - * {@link IntegrationTest @IntegrationTest} or - * {@link org.springframework.boot.test.context.web.WebIntegrationTest @WebIntegrationTest} - * instead. + * {@link SpringApplicationTest @SpringApplicationTest} instead. * * @author Dave Syer * @author Sam Brannen * @author Phillip Webb * @since 1.4.0 * @see SpringApplicationTest - * @see IntegrationTest - * @see org.springframework.boot.test.context.web.WebIntegrationTest * @see SpringApplicationContextLoader * @see ContextConfiguration */ diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationContextLoader.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationContextLoader.java index 7787ea92eb..47b95e945a 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationContextLoader.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationContextLoader.java @@ -54,21 +54,12 @@ import org.springframework.web.context.support.GenericWebApplicationContext; /** * A {@link ContextLoader} that can be used to test Spring Boot applications (those that * normally startup using {@link SpringApplication}). Although this loader can be used - * directly, most test will instead want to use one of the following annotations: - *

    - *
  • {@link SpringApplicationTest @SpringApplicationTest} - For non-web applications, or - * web-applications running under a mock servlet environment
  • - *
  • {@link IntegrationTest @IntegrationTest} - To integration test non-web applications - *
  • - *
  • - * {@link org.springframework.boot.test.context.web.WebIntegrationTest @WebIntegrationTest} - * - To integration test web applications (i.e. listening on normal ports).
  • - *
+ * directly, most test will instead want to use it with {@link SpringApplicationTest}. + *

* The loader supports both standard {@link MergedContextConfiguration} as well as * {@link WebMergedContextConfiguration}. If {@link WebMergedContextConfiguration} is used * the context will either use a mock servlet environment, or start the full embedded - * servlet container (depending on the result of {@link #isIntegrationTest - * isIntegrationTest(...)}). + * servlet container. *

* If {@code @ActiveProfiles} are provided in the test class they will be used to create * the application context. @@ -77,8 +68,6 @@ import org.springframework.web.context.support.GenericWebApplicationContext; * @author Phillip Webb * @author Andy Wilkinson * @see SpringApplicationTest - * @see IntegrationTest - * @see org.springframework.boot.test.context.web.WebIntegrationTest */ public class SpringApplicationContextLoader extends AbstractContextLoader { @@ -86,8 +75,6 @@ public class SpringApplicationContextLoader extends AbstractContextLoader { static { Set annotations = new LinkedHashSet(); - annotations.add("org.springframework.boot.test.context.IntegrationTest"); - annotations.add("org.springframework.boot.test.context.web.WebIntegrationTest"); annotations.add("org.springframework.boot.test.IntegrationTest"); annotations.add("org.springframework.boot.test.WebIntegrationTest"); INTEGRATION_TEST_ANNOTATIONS = Collections.unmodifiableSet(annotations); @@ -110,8 +97,9 @@ public class SpringApplicationContextLoader extends AbstractContextLoader { application); if (config instanceof WebMergedContextConfiguration) { application.setWebEnvironment(true); - WebConfigurer configurer = new WebConfigurer(isIntegrationTest(config)); - configurer.configure(config, application, initializers); + if (!isEmbeddedWebEnvironment(config)) { + new WebConfigurer().configure(config, application, initializers); + } } else { application.setWebEnvironment(false); @@ -154,8 +142,8 @@ public class SpringApplicationContextLoader extends AbstractContextLoader { disableJmx(properties); properties.putAll(TestPropertySourceUtils .convertInlinedPropertiesToMap(config.getPropertySourceProperties())); - if (!isIntegrationTest(config)) { - properties.putAll(getDefaultEnvironmentProperties()); + if (!isEmbeddedWebEnvironment(config)) { + properties.put("server.port", "-1"); } return properties; } @@ -164,10 +152,6 @@ public class SpringApplicationContextLoader extends AbstractContextLoader { properties.put("spring.jmx.enabled", "false"); } - private Map getDefaultEnvironmentProperties() { - return Collections.singletonMap("server.port", "-1"); - } - private void addProperties(ConfigurableEnvironment environment, Map properties) { // @IntegrationTest properties go before external configuration and after system @@ -192,18 +176,17 @@ public class SpringApplicationContextLoader extends AbstractContextLoader { return initializers; } - /** - * Return if the test is a full integration test or not. By default this method checks - * for well known integration test annotations. - * @param config the merged context configuration - * @return if the test is an integration test - */ - protected boolean isIntegrationTest(MergedContextConfiguration config) { + private boolean isEmbeddedWebEnvironment(MergedContextConfiguration config) { for (String annotation : INTEGRATION_TEST_ANNOTATIONS) { if (AnnotatedElementUtils.isAnnotated(config.getTestClass(), annotation)) { return true; } } + SpringApplicationTest annotation = AnnotatedElementUtils + .findMergedAnnotation(config.getTestClass(), SpringApplicationTest.class); + if (annotation != null && annotation.webEnvironment().isEmbedded()) { + return true; + } return false; } @@ -255,20 +238,12 @@ public class SpringApplicationContextLoader extends AbstractContextLoader { private static final Class WEB_CONTEXT_CLASS = GenericWebApplicationContext.class; - private final boolean integrationTest; - - WebConfigurer(boolean integrationTest) { - this.integrationTest = integrationTest; - } - void configure(MergedContextConfiguration configuration, SpringApplication application, List> initializers) { - if (!this.integrationTest) { - WebMergedContextConfiguration webConfiguration = (WebMergedContextConfiguration) configuration; - addMockServletContext(initializers, webConfiguration); - application.setApplicationContextClass(WEB_CONTEXT_CLASS); - } + WebMergedContextConfiguration webConfiguration = (WebMergedContextConfiguration) configuration; + addMockServletContext(initializers, webConfiguration); + application.setApplicationContextClass(WEB_CONTEXT_CLASS); } private void addMockServletContext( diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTest.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTest.java index 88102f5c7c..7b9d4e6c9b 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTest.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTest.java @@ -23,33 +23,36 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext; +import org.springframework.boot.context.web.LocalServerPort; import org.springframework.context.ApplicationContext; +import org.springframework.core.annotation.AliasFor; import org.springframework.core.env.Environment; import org.springframework.test.context.BootstrapWith; import org.springframework.test.context.ContextConfiguration; +import org.springframework.web.context.WebApplicationContext; /** * Test class annotation signifying that the tests are for a * {@link org.springframework.boot.SpringApplication Spring Boot Application}. By default - * will load nested {@code @Configuration} classes, or fallback an + * will load nested {@code @Configuration} classes, or fall back on * {@link SpringApplicationConfiguration @SpringApplicationConfiguration} search. Unless * otherwise configured, a {@link SpringApplicationContextLoader} will be used to load the * {@link ApplicationContext}. Use * {@link SpringApplicationConfiguration @SpringApplicationConfiguration} or * {@link ContextConfiguration @ContextConfiguration} if custom configuration is required. *

- * A mock servlet environment will be used when this annotation is used to a test web - * application. If you want to start a real embedded servlet container in the same way as - * a production application (listening on normal ports) the - * {@link org.springframework.boot.test.context.web.WebIntegrationTest @WebIntegrationTest} - * annotation should be used instead. If you are testing a non-web application, and you - * don't need a mock servlet environment you should switch to - * {@link IntegrationTest @IntegrationTest}. + * The environment that will be used can be configured using the {@code mode} attribute. + * By default, a mock servlet environment will be used when this annotation is used to a + * test web application. If you want to start a real embedded servlet container in the + * same way as a production application (listening on normal ports) configure + * {@code mode=EMBEDDED_SERVLET}. If want to disable the creation of the mock servlet + * environment, configure {@code mode=STANDARD}. * * @author Phillip Webb + * @author Andy Wilkinson * @since 1.4.0 - * @see IntegrationTest - * @see org.springframework.boot.test.context.web.WebIntegrationTest */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @@ -58,11 +61,73 @@ import org.springframework.test.context.ContextConfiguration; @BootstrapWith(SpringApplicationTestContextBootstrapper.class) public @interface SpringApplicationTest { + /** + * Alias for {@link #properties()}. + * @return the properties to apply + */ + @AliasFor("properties") + String[] value() default {}; + /** * Properties in form {@literal key=value} that should be added to the Spring * {@link Environment} before the test runs. * @return the properties to add */ - String[] value() default {}; + @AliasFor("value") + String[] properties() default {}; + + /** + * The type of web environment to create when applicable. Defaults to + * {@link WebEnvironment#MOCK}. + * @return the type of web environment + */ + WebEnvironment webEnvironment() default WebEnvironment.MOCK; + + /** + * An enumeration web environment modes. + */ + enum WebEnvironment { + + /** + * Creates a {@link WebApplicationContext} with a mock servlet environment or a + * regular {@link ApplicationContext} if servlet APIs are not on the classpath. + */ + MOCK(false), + + /** + * Creates an {@link EmbeddedWebApplicationContext} and sets a + * {@code server.port=0} {@link Environment} property (which usually triggers + * listening on a random port). Often used in conjunction with a + * {@link LocalServerPort} injected field on the test. + */ + RANDOM_PORT(true), + + /** + * Creates an {@link EmbeddedWebApplicationContext} without defining any + * {@code server.port=0} {@link Environment} property. + */ + DEFINED_PORT(true), + + /** + * Creates an {@link ApplicationContext} and sets + * {@link SpringApplication#setWebEnvironment(boolean)} to {@code false}. + */ + NONE(false); + + private final boolean embedded; + + WebEnvironment(boolean embedded) { + this.embedded = embedded; + } + + /** + * Return if the environment uses an {@link EmbeddedWebApplicationContext}. + * @return if an {@link EmbeddedWebApplicationContext} is used. + */ + public boolean isEmbedded() { + return this.embedded; + } + + } } diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextBootstrapper.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextBootstrapper.java index 64eba434dd..f276b4d961 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextBootstrapper.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextBootstrapper.java @@ -19,11 +19,11 @@ package org.springframework.boot.test.context; import java.util.Arrays; import java.util.List; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.test.context.MergedContextConfiguration; import org.springframework.test.context.TestContext; import org.springframework.test.context.TestContextBootstrapper; -import org.springframework.test.context.web.ServletTestExecutionListener; import org.springframework.test.context.web.WebMergedContextConfiguration; import org.springframework.util.ClassUtils; @@ -37,11 +37,20 @@ class SpringApplicationTestContextBootstrapper extends SpringBootTestContextBoot private static final String[] WEB_ENVIRONMENT_CLASSES = { "javax.servlet.Servlet", "org.springframework.web.context.ConfigurableWebApplicationContext" }; + private static final String ACTIVATE_SERVLET_LISTENER = "org.springframework.test." + + "context.web.ServletTestExecutionListener.activateListener"; + @Override public TestContext buildTestContext() { TestContext context = super.buildTestContext(); - if (isWebApplicationTest()) { - context.setAttribute(ServletTestExecutionListener.ACTIVATE_LISTENER, true); + SpringApplicationTest annotation = AnnotatedElementUtils + .getMergedAnnotation(context.getTestClass(), SpringApplicationTest.class); + WebEnvironment webEnvironment = annotation.webEnvironment(); + if (webEnvironment == WebEnvironment.MOCK) { + context.setAttribute(ACTIVATE_SERVLET_LISTENER, true); + } + else if (webEnvironment.isEmbedded()) { + context.setAttribute(ACTIVATE_SERVLET_LISTENER, false); } return context; } @@ -50,14 +59,17 @@ class SpringApplicationTestContextBootstrapper extends SpringBootTestContextBoot protected MergedContextConfiguration processMergedContextConfiguration( MergedContextConfiguration mergedConfig) { mergedConfig = super.processMergedContextConfiguration(mergedConfig); - if (!(mergedConfig instanceof WebMergedContextConfiguration) - && isWebApplicationTest()) { + SpringApplicationTest annotation = AnnotatedElementUtils.getMergedAnnotation( + mergedConfig.getTestClass(), SpringApplicationTest.class); + WebEnvironment webEnvironment = annotation.webEnvironment(); + if (webEnvironment.isEmbedded() || (webEnvironment == WebEnvironment.MOCK + && hasWebEnvironmentClasses())) { mergedConfig = new WebMergedContextConfiguration(mergedConfig, ""); } return mergedConfig; } - private boolean isWebApplicationTest() { + private boolean hasWebEnvironmentClasses() { for (String className : WEB_ENVIRONMENT_CLASSES) { if (!ClassUtils.isPresent(className, null)) { return false; @@ -72,7 +84,10 @@ class SpringApplicationTestContextBootstrapper extends SpringBootTestContextBoot List propertySourceProperties) { SpringApplicationTest annotation = AnnotatedElementUtils.getMergedAnnotation( mergedConfig.getTestClass(), SpringApplicationTest.class); - propertySourceProperties.addAll(Arrays.asList(annotation.value())); + propertySourceProperties.addAll(Arrays.asList(annotation.properties())); + if (annotation.webEnvironment() == WebEnvironment.RANDOM_PORT) { + propertySourceProperties.add("server.port=0"); + } } } diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextCustomizer.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextCustomizer.java similarity index 56% rename from spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextCustomizer.java rename to spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextCustomizer.java index 035cc0774e..9a28c86993 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextCustomizer.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextCustomizer.java @@ -14,35 +14,35 @@ * limitations under the License. */ -package org.springframework.boot.test.context.web; +package org.springframework.boot.test.context; import org.springframework.boot.test.web.client.LocalHostUriTemplateHandler; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.core.env.Environment; import org.springframework.test.context.ContextCustomizer; import org.springframework.test.context.MergedContextConfiguration; +import org.springframework.web.client.RestTemplate; /** - * {@link ContextCustomizer} for {@link WebIntegrationTest} that provides a - * {@link TestRestTemplate} bean that can automatically resolve - * {@literal local.server.port}. + * {@link ContextCustomizer} for {@link SpringApplicationTest}. * * @author Phillip Webb + * @author Andy Wilkinson */ -class WebIntegrationTestContextCustomizer implements ContextCustomizer { +class SpringApplicationTestContextCustomizer implements ContextCustomizer { @Override public void customizeContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedContextConfiguration) { - TestRestTemplate restTemplate = getRestTemplate(context.getEnvironment()); - context.getBeanFactory().registerSingleton("testRestTemplate", restTemplate); - } - - private TestRestTemplate getRestTemplate(Environment environment) { - TestRestTemplate template = new TestRestTemplate(); - template.setUriTemplateHandler(new LocalHostUriTemplateHandler(environment)); - return template; + SpringApplicationTest annotation = AnnotatedElementUtils.getMergedAnnotation( + mergedContextConfiguration.getTestClass(), SpringApplicationTest.class); + if (annotation.webEnvironment().isEmbedded()) { + RestTemplate restTemplate = TestRestTemplateFactory + .createRestTemplate(context.getEnvironment()); + context.getBeanFactory().registerSingleton("testRestTemplate", restTemplate); + } } @Override @@ -58,4 +58,15 @@ class WebIntegrationTestContextCustomizer implements ContextCustomizer { return true; } + // Inner class to avoid references to web classes that may not be on the classpath + private static class TestRestTemplateFactory { + + private static TestRestTemplate createRestTemplate(Environment environment) { + TestRestTemplate template = new TestRestTemplate(); + template.setUriTemplateHandler(new LocalHostUriTemplateHandler(environment)); + return template; + } + + } + } diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextCustomizerFactory.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextCustomizerFactory.java similarity index 75% rename from spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextCustomizerFactory.java rename to spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextCustomizerFactory.java index d731d8210c..2607925af0 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextCustomizerFactory.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/context/SpringApplicationTestContextCustomizerFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.test.context.web; +package org.springframework.boot.test.context; import java.util.List; @@ -24,19 +24,19 @@ import org.springframework.test.context.ContextCustomizer; import org.springframework.test.context.ContextCustomizerFactory; /** - * {@link ContextCustomizerFactory} for {@link WebIntegrationTest}. + * {@link ContextCustomizerFactory} for {@link SpringApplicationTest}. * - * @author Phillip Webb - * @see WebIntegrationTestContextCustomizer + * @author Andy Wilkinson + * @see SpringApplicationTestContextCustomizer */ -class WebIntegrationTestContextCustomizerFactory implements ContextCustomizerFactory { +class SpringApplicationTestContextCustomizerFactory implements ContextCustomizerFactory { @Override public ContextCustomizer createContextCustomizer(Class testClass, List configAttributes) { if (AnnotatedElementUtils.findMergedAnnotation(testClass, - WebIntegrationTest.class) != null) { - return new WebIntegrationTestContextCustomizer(); + SpringApplicationTest.class) != null) { + return new SpringApplicationTestContextCustomizer(); } return null; } diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTest.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTest.java deleted file mode 100644 index e00dd00ab7..0000000000 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTest.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.test.context.web; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.beans.factory.annotation.Autowire; -import org.springframework.boot.test.context.IntegrationTest; -import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.SpringApplicationContextLoader; -import org.springframework.boot.test.context.SpringApplicationTest; -import org.springframework.boot.test.web.client.LocalHostUriTemplateHandler; -import org.springframework.boot.test.web.client.TestRestTemplate; -import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; -import org.springframework.test.context.BootstrapWith; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.web.servlet.MockMvc; - -/** - * Test class annotation signifying that the tests are "web integration tests" for a - * {@link org.springframework.boot.SpringApplication Spring Boot Application} and - * therefore require full startup in the same way as a production application (listening - * on normal ports). By default will load nested {@code @Configuration} classes, or - * fallback an {@link SpringApplicationConfiguration @SpringApplicationConfiguration} - * search. Unless otherwise configured, a {@link SpringApplicationContextLoader} will be - * used to load the {@link ApplicationContext}. Use - * {@link SpringApplicationConfiguration @SpringApplicationConfiguration} or - * {@link ContextConfiguration @ContextConfiguration} if custom configuration is required. - *

- * If you are not testing a web application consider using the - * {@link IntegrationTest @IntegrationTest} annotation instead. If you are testing a web - * application and want to mock the servlet environment (for example so that you can use - * {@link MockMvc}) you should switch to the - * {@link SpringApplicationTest @SpringApplicationTest} annotation. - *

- * Tests that need to make REST calls to the started server can additionally - * {@link Autowire @Autowire} a {@link TestRestTemplate} which will be pre-configured with - * a {@link LocalHostUriTemplateHandler}. - * - * @author Phillip Webb - * @since 1.4.0 - * @see SpringApplicationTest - * @see IntegrationTest - */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -@Documented -@Inherited -@BootstrapWith(WebIntegrationTestContextBootstrapper.class) -public @interface WebIntegrationTest { - - /** - * Properties in form {@literal key=value} that should be added to the Spring - * {@link Environment} before the test runs. - * @return properties to add to the context - */ - String[] value() default {}; - - /** - * Convenience attribute that can be used to set a {@code server.port=0} - * {@link Environment} property which usually triggers listening on a random port. - * Often used in conjunction with a @Value("${local.server.port}") - * injected field on the test. - * @return if a random port should be used - */ - boolean randomPort() default false; - -} diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextBootstrapper.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextBootstrapper.java deleted file mode 100644 index 1abdd39218..0000000000 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/WebIntegrationTestContextBootstrapper.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.test.context.web; - -import java.util.Arrays; -import java.util.List; - -import org.springframework.boot.test.context.SpringBootTestContextBootstrapper; -import org.springframework.core.annotation.AnnotatedElementUtils; -import org.springframework.test.context.MergedContextConfiguration; -import org.springframework.test.context.TestContextBootstrapper; -import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.context.web.WebMergedContextConfiguration; - -/** - * {@link TestContextBootstrapper} for Spring Boot web integration tests. - * - * @author Phillip Webb - */ -class WebIntegrationTestContextBootstrapper extends SpringBootTestContextBootstrapper { - - @Override - protected MergedContextConfiguration processMergedContextConfiguration( - MergedContextConfiguration mergedConfig) { - assertValidAnnotations(mergedConfig.getTestClass()); - mergedConfig = super.processMergedContextConfiguration(mergedConfig); - return new WebMergedContextConfiguration(mergedConfig, null); - } - - private void assertValidAnnotations(Class testClass) { - if (AnnotatedElementUtils.findMergedAnnotation(testClass, - WebAppConfiguration.class) != null - && AnnotatedElementUtils.findMergedAnnotation(testClass, - WebIntegrationTest.class) != null) { - throw new IllegalStateException("@WebIntegrationTest and " - + "@WebAppConfiguration cannot be used together"); - } - } - - @Override - protected void processPropertySourceProperties( - MergedContextConfiguration mergedConfig, - List propertySourceProperties) { - WebIntegrationTest annotation = AnnotatedElementUtils.getMergedAnnotation( - mergedConfig.getTestClass(), WebIntegrationTest.class); - propertySourceProperties.addAll(Arrays.asList(annotation.value())); - if (annotation.randomPort()) { - propertySourceProperties.add("server.port=0"); - } - } - -} diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/package-info.java b/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/package-info.java deleted file mode 100644 index 69157a4551..0000000000 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/context/web/package-info.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Classes and annotations related to configuring Spring's {@code WebApplicationContext} - * for tests. - */ -package org.springframework.boot.test.context.web; diff --git a/spring-boot-test/src/main/resources/META-INF/spring.factories b/spring-boot-test/src/main/resources/META-INF/spring.factories index 3a72cef79f..913523eb46 100644 --- a/spring-boot-test/src/main/resources/META-INF/spring.factories +++ b/spring-boot-test/src/main/resources/META-INF/spring.factories @@ -1,8 +1,8 @@ # Spring Test ContextCustomizerFactories org.springframework.test.context.ContextCustomizerFactory=\ org.springframework.boot.test.context.ImportsContextCustomizerFactory,\ +org.springframework.boot.test.context.SpringApplicationTestContextCustomizerFactory,\ org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizerFactory,\ -org.springframework.boot.test.context.web.WebIntegrationTestContextCustomizerFactory,\ org.springframework.boot.test.mock.mockito.MockitoContextCustomizerFactory # Test Execution Listeners diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/SpringApplicationWebIntegrationTestTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/SpringApplicationWebIntegrationTestTests.java index 23851a8abc..0604d3b4c2 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/SpringApplicationWebIntegrationTestTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/SpringApplicationWebIntegrationTestTests.java @@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.boot.context.web.LocalServerPort; +import org.springframework.boot.test.SpringApplicationWebIntegrationTestTests.Config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; @@ -49,8 +50,8 @@ import static org.assertj.core.api.Assertions.assertThat; @SuppressWarnings("deprecation") @RunWith(SpringRunner.class) @DirtiesContext +@SpringApplicationConfiguration(Config.class) @WebIntegrationTest({ "server.port=0", "value=123" }) -@Deprecated public class SpringApplicationWebIntegrationTestTests { @LocalServerPort diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/web/SpringApplicationWebIntegrationTestTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringApplicationTestWebEnvironmentEmbeddedTests.java similarity index 77% rename from spring-boot-test/src/test/java/org/springframework/boot/test/context/web/SpringApplicationWebIntegrationTestTests.java rename to spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringApplicationTestWebEnvironmentEmbeddedTests.java index e72c7f43ca..433add6d3d 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/context/web/SpringApplicationWebIntegrationTestTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringApplicationTestWebEnvironmentEmbeddedTests.java @@ -14,47 +14,36 @@ * limitations under the License. */ -package org.springframework.boot.test.context.web; +package org.springframework.boot.test.context; import javax.servlet.ServletContext; import org.junit.Test; -import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.boot.context.web.LocalServerPort; -import org.springframework.boot.test.context.IntegrationTest; -import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.SpringApplicationWebIntegrationTestTests.Config; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import org.springframework.web.servlet.DispatcherServlet; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; import static org.assertj.core.api.Assertions.assertThat; /** - * Tests for {@link IntegrationTest} + * Base class for {@link SpringApplicationTest} tests configured to start an embedded + * servlet container * * @author Phillip Webb + * @author Andy Wilkinson */ -@RunWith(SpringRunner.class) -@DirtiesContext -@SpringApplicationConfiguration(Config.class) -@WebIntegrationTest({ "server.port=0", "value=123" }) -public class SpringApplicationWebIntegrationTestTests { +public abstract class AbstractSpringApplicationTestWebEnvironmentEmbeddedTests { @LocalServerPort private int port = 0; @@ -96,10 +85,7 @@ public class SpringApplicationWebIntegrationTestTests { WebApplicationContextUtils.getWebApplicationContext(this.servletContext)); } - @Configuration - @EnableWebMvc - @RestController - protected static class Config { + protected static class AbstractConfig { @Value("${server.port:8080}") private int port = 8080; diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationActiveProfileTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationActiveProfileTests.java index 267e20af4f..b16b7167a4 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationActiveProfileTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationActiveProfileTests.java @@ -36,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @DirtiesContext @SpringApplicationConfiguration -@IntegrationTest("spring.config.name=enableother") +@SpringApplicationTest("spring.config.name=enableother") @ActiveProfiles("override") public class SpringApplicationConfigurationActiveProfileTests { diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationJmxTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationJmxTests.java index 919382a0a8..6a1a8607b1 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationJmxTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationJmxTests.java @@ -36,8 +36,8 @@ import static org.assertj.core.api.Assertions.assertThat; */ @RunWith(SpringRunner.class) @DirtiesContext +@SpringApplicationTest @SpringApplicationConfiguration(Config.class) -@IntegrationTest public class SpringApplicationConfigurationJmxTests { @Value("${spring.jmx.enabled}") diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/web/SpringApplicationMockMvcTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationMockMvcTests.java similarity index 93% rename from spring-boot-test/src/test/java/org/springframework/boot/test/context/web/SpringApplicationMockMvcTests.java rename to spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationMockMvcTests.java index fc7cb64370..280163a71c 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/context/web/SpringApplicationMockMvcTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationConfigurationMockMvcTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.test.context.web; +package org.springframework.boot.test.context; import javax.servlet.ServletContext; @@ -23,8 +23,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringApplicationConfiguration; -import org.springframework.boot.test.context.web.SpringApplicationMockMvcTests.Config; +import org.springframework.boot.test.context.SpringApplicationConfigurationMockMvcTests.Config; import org.springframework.context.annotation.Configuration; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; @@ -51,7 +50,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @DirtiesContext @SpringApplicationConfiguration(classes = Config.class) @WebAppConfiguration -public class SpringApplicationMockMvcTests { +public class SpringApplicationConfigurationMockMvcTests { @Autowired private WebApplicationContext context; diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationContextLoaderTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationContextLoaderTests.java index 7a2c389b34..e78b5dd9cd 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationContextLoaderTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationContextLoaderTests.java @@ -45,6 +45,13 @@ public class SpringApplicationContextLoaderTests { assertKey(config, "anotherKey", "anotherValue"); } + @Test + public void environmentPropertiesSimpleNonAlias() throws Exception { + Map config = getEnvironmentProperties(SimpleConfigNonAlias.class); + assertKey(config, "key", "myValue"); + assertKey(config, "anotherKey", "anotherValue"); + } + @Test public void environmentPropertiesOverrideDefaults() throws Exception { Map config = getEnvironmentProperties(OverrideConfig.class); @@ -97,37 +104,43 @@ public class SpringApplicationContextLoaderTests { assertThat(actual.get(key)).isEqualTo(value); } - @IntegrationTest({ "key=myValue", "anotherKey:anotherValue" }) + @SpringApplicationTest({ "key=myValue", "anotherKey:anotherValue" }) @ContextConfiguration(classes = Config.class) static class SimpleConfig { } - @IntegrationTest({ "server.port=2345" }) + @SpringApplicationTest(properties = { "key=myValue", "anotherKey:anotherValue" }) + @ContextConfiguration(classes = Config.class) + static class SimpleConfigNonAlias { + + } + + @SpringApplicationTest("server.port=2345") @ContextConfiguration(classes = Config.class) static class OverrideConfig { } - @IntegrationTest({ "key=myValue", "otherKey=otherValue" }) + @SpringApplicationTest({ "key=myValue", "otherKey=otherValue" }) @ContextConfiguration(classes = Config.class) static class AppendConfig { } - @IntegrationTest({ "key=my=Value", "anotherKey:another:Value" }) + @SpringApplicationTest({ "key=my=Value", "anotherKey:another:Value" }) @ContextConfiguration(classes = Config.class) static class SameSeparatorInValue { } - @IntegrationTest({ "key=my:Value", "anotherKey:another=Value" }) + @SpringApplicationTest({ "key=my:Value", "anotherKey:another=Value" }) @ContextConfiguration(classes = Config.class) static class AnotherSeparatorInValue { } - @IntegrationTest({ "key=myValue", "variables=foo=FOO\n bar=BAR" }) + @SpringApplicationTest({ "key=myValue", "variables=foo=FOO\n bar=BAR" }) @ContextConfiguration(classes = Config.class) static class NewLineInValue { diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationIntegrationTestTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationIntegrationTestTests.java deleted file mode 100644 index 44aec2ba70..0000000000 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationIntegrationTestTests.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.test.context; - -import javax.servlet.ServletContext; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; -import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; -import org.springframework.boot.test.context.SpringApplicationIntegrationTestTests.Config; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; -import org.springframework.web.servlet.DispatcherServlet; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link IntegrationTest} - * - * @author Dave Syer - */ -@RunWith(SpringRunner.class) -@DirtiesContext -@SpringApplicationConfiguration(Config.class) -@WebAppConfiguration -@IntegrationTest({ "server.port=0", "value=123" }) -public class SpringApplicationIntegrationTestTests { - - @Value("${local.server.port}") - private int port = 0; - - @Value("${value}") - private int value = 0; - - @Autowired - private WebApplicationContext context; - - @Autowired - private ServletContext servletContext; - - @Test - public void runAndTestHttpEndpoint() { - assertThat(this.port).isNotEqualTo(8080).isNotEqualTo(0); - String body = new RestTemplate() - .getForObject("http://localhost:" + this.port + "/", String.class); - assertThat(body).isEqualTo("Hello World"); - } - - @Test - public void annotationAttributesOverridePropertiesFile() throws Exception { - assertThat(this.value).isEqualTo(123); - } - - @Test - public void validateWebApplicationContextIsSet() { - assertThat(this.context).isSameAs( - WebApplicationContextUtils.getWebApplicationContext(this.servletContext)); - } - - @Configuration - @EnableWebMvc - @RestController - protected static class Config { - - @Value("${server.port:8080}") - private int port = 8080; - - @Bean - public DispatcherServlet dispatcherServlet() { - return new DispatcherServlet(); - } - - @Bean - public EmbeddedServletContainerFactory embeddedServletContainer() { - TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); - factory.setPort(this.port); - return factory; - } - - @Bean - public static PropertySourcesPlaceholderConfigurer propertyPlaceholder() { - return new PropertySourcesPlaceholderConfigurer(); - } - - @RequestMapping("/") - public String home() { - return "Hello World"; - } - - } - -} diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationIntegrationTestPropertyLocationTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestPropertyLocationTests.java similarity index 74% rename from spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationIntegrationTestPropertyLocationTests.java rename to spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestPropertyLocationTests.java index a43619fcce..7bc67d1a1f 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationIntegrationTestPropertyLocationTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestPropertyLocationTests.java @@ -23,29 +23,29 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringApplicationIntegrationTestPropertyLocationTests.MoreConfig; -import org.springframework.boot.test.context.SpringApplicationIntegrationTestTests.Config; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; +import org.springframework.boot.test.context.SpringApplicationTestPropertyLocationTests.Config; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.env.Environment; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; import static org.assertj.core.api.Assertions.assertThat; /** - * Tests for {@link IntegrationTest} with {@link TestPropertySource} locations. + * Tests for {@link SpringApplicationTest} with {@link TestPropertySource} locations. * * @author Phillip Webb */ @RunWith(SpringRunner.class) @DirtiesContext -@SpringApplicationConfiguration({ Config.class, MoreConfig.class }) -@WebAppConfiguration -@IntegrationTest({ "server.port=0", "value1=123" }) +@SpringApplicationConfiguration(Config.class) +@SpringApplicationTest(webEnvironment = WebEnvironment.NONE, properties = "value1=123") @TestPropertySource(properties = "value2=456", locations = "classpath:/test-property-source-annotation.properties") -public class SpringApplicationIntegrationTestPropertyLocationTests { +public class SpringApplicationTestPropertyLocationTests { @Autowired private Environment environment; @@ -59,7 +59,7 @@ public class SpringApplicationIntegrationTestPropertyLocationTests { } @Configuration - static class MoreConfig { + static class Config { @Value("${value1}") private String value1; @@ -77,6 +77,11 @@ public class SpringApplicationIntegrationTestPropertyLocationTests { assertThat(this.annotationReferenced).isEqualTo("fromfile"); } + @Bean + public static PropertySourcesPlaceholderConfigurer propertyPlaceholder() { + return new PropertySourcesPlaceholderConfigurer(); + } + } } diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentDefinedPortTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentDefinedPortTests.java new file mode 100644 index 0000000000..6102976011 --- /dev/null +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentDefinedPortTests.java @@ -0,0 +1,49 @@ +/* + * Copyright 2012-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.test.context; + +import org.junit.runner.RunWith; + +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; + +/** + * Tests for {@link SpringApplicationTest} configured with + * {@link WebEnvironment#DEFINED_PORT}. + * + * @author Phillip Webb + * @author Andy Wilkinson + */ +@RunWith(SpringRunner.class) +@DirtiesContext +@SpringApplicationTest(webEnvironment = WebEnvironment.DEFINED_PORT, properties = { + "server.port=0", "value=123" }) +public class SpringApplicationTestWebEnvironmentDefinedPortTests + extends AbstractSpringApplicationTestWebEnvironmentEmbeddedTests { + + @Configuration + @EnableWebMvc + @RestController + protected static class Config extends AbstractConfig { + + } + +} diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentMockTests.java similarity index 91% rename from spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestTests.java rename to spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentMockTests.java index 2b65fe5c3c..ba86f09f6d 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentMockTests.java @@ -23,6 +23,7 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; @@ -37,14 +38,15 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc; import static org.assertj.core.api.Assertions.assertThat; /** - * Tests for {@link SpringApplicationTest} + * Tests for {@link SpringApplicationTest} configured with {@link WebEnvironment#MOCK}. * * @author Phillip Webb + * @author Andy Wilkinson */ @RunWith(SpringRunner.class) @SpringApplicationTest("value=123") @DirtiesContext -public class SpringApplicationTestTests { +public class SpringApplicationTestWebEnvironmentMockTests { @Value("${value}") private int value = 0; diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentRandomPortTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentRandomPortTests.java new file mode 100644 index 0000000000..0ea4eec6d5 --- /dev/null +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/context/SpringApplicationTestWebEnvironmentRandomPortTests.java @@ -0,0 +1,49 @@ +/* + * Copyright 2012-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.test.context; + +import org.junit.runner.RunWith; + +import org.springframework.boot.test.context.SpringApplicationTest.WebEnvironment; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; + +/** + * Tests for {@link SpringApplicationTest} configured with + * {@link WebEnvironment#DEFINED_PORT}. + * + * @author Phillip Webb + * @author Andy Wilkinson + */ +@RunWith(SpringRunner.class) +@DirtiesContext +@SpringApplicationTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { + "value=123" }) +public class SpringApplicationTestWebEnvironmentRandomPortTests + extends AbstractSpringApplicationTestWebEnvironmentEmbeddedTests { + + @Configuration + @EnableWebMvc + @RestController + protected static class Config extends AbstractConfig { + + } + +}