|
|
|
@ -23,6 +23,7 @@ import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
|
|
|
|
import org.springframework.boot.test.context.SpringBootTestContextBootstrapper;
|
|
|
|
|
import org.springframework.test.context.BootstrapContext;
|
|
|
|
|
import org.springframework.test.context.CacheAwareContextLoaderDelegate;
|
|
|
|
|
import org.springframework.test.context.MergedContextConfiguration;
|
|
|
|
|
import org.springframework.test.context.TestContext;
|
|
|
|
|
import org.springframework.test.context.web.WebAppConfiguration;
|
|
|
|
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
|
|
@ -56,39 +57,47 @@ class SpringBootTestContextBootstrapperTests {
|
|
|
|
|
@Test
|
|
|
|
|
void mergedContextConfigurationWhenArgsDifferentShouldNotBeConsideredEqual() {
|
|
|
|
|
TestContext context = buildTestContext(SpringBootTestArgsConfiguration.class);
|
|
|
|
|
Object contextConfiguration = ReflectionTestUtils.getField(context, "mergedContextConfiguration");
|
|
|
|
|
MergedContextConfiguration contextConfiguration = getMergedContextConfiguration(context);
|
|
|
|
|
TestContext otherContext2 = buildTestContext(SpringBootTestOtherArgsConfiguration.class);
|
|
|
|
|
Object otherContextConfiguration = ReflectionTestUtils.getField(otherContext2, "mergedContextConfiguration");
|
|
|
|
|
MergedContextConfiguration otherContextConfiguration = getMergedContextConfiguration(otherContext2);
|
|
|
|
|
assertThat(contextConfiguration).isNotEqualTo(otherContextConfiguration);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void mergedContextConfigurationWhenArgsSameShouldBeConsideredEqual() {
|
|
|
|
|
TestContext context = buildTestContext(SpringBootTestArgsConfiguration.class);
|
|
|
|
|
Object contextConfiguration = ReflectionTestUtils.getField(context, "mergedContextConfiguration");
|
|
|
|
|
MergedContextConfiguration contextConfiguration = getMergedContextConfiguration(context);
|
|
|
|
|
TestContext otherContext2 = buildTestContext(SpringBootTestSameArgsConfiguration.class);
|
|
|
|
|
Object otherContextConfiguration = ReflectionTestUtils.getField(otherContext2, "mergedContextConfiguration");
|
|
|
|
|
MergedContextConfiguration otherContextConfiguration = getMergedContextConfiguration(otherContext2);
|
|
|
|
|
assertThat(contextConfiguration).isEqualTo(otherContextConfiguration);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void mergedContextConfigurationWhenWebEnvironmentsDifferentShouldNotBeConsideredEqual() {
|
|
|
|
|
TestContext context = buildTestContext(SpringBootTestMockWebEnvironmentConfiguration.class);
|
|
|
|
|
Object contextConfiguration = ReflectionTestUtils.getField(context, "mergedContextConfiguration");
|
|
|
|
|
MergedContextConfiguration contextConfiguration = getMergedContextConfiguration(context);
|
|
|
|
|
TestContext otherContext = buildTestContext(SpringBootTestDefinedPortWebEnvironmentConfiguration.class);
|
|
|
|
|
Object otherContextConfiguration = ReflectionTestUtils.getField(otherContext, "mergedContextConfiguration");
|
|
|
|
|
MergedContextConfiguration otherContextConfiguration = getMergedContextConfiguration(otherContext);
|
|
|
|
|
assertThat(contextConfiguration).isNotEqualTo(otherContextConfiguration);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void mergedContextConfigurationWhenWebEnvironmentsSameShouldtBeConsideredEqual() {
|
|
|
|
|
void mergedContextConfigurationWhenWebEnvironmentsSameShouldBeConsideredEqual() {
|
|
|
|
|
TestContext context = buildTestContext(SpringBootTestMockWebEnvironmentConfiguration.class);
|
|
|
|
|
Object contextConfiguration = ReflectionTestUtils.getField(context, "mergedContextConfiguration");
|
|
|
|
|
MergedContextConfiguration contextConfiguration = getMergedContextConfiguration(context);
|
|
|
|
|
TestContext otherContext = buildTestContext(SpringBootTestAnotherMockWebEnvironmentConfiguration.class);
|
|
|
|
|
Object otherContextConfiguration = ReflectionTestUtils.getField(otherContext, "mergedContextConfiguration");
|
|
|
|
|
MergedContextConfiguration otherContextConfiguration = getMergedContextConfiguration(otherContext);
|
|
|
|
|
assertThat(contextConfiguration).isEqualTo(otherContextConfiguration);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
void mergedContextConfigurationClassesShouldNotContainDuplicates() {
|
|
|
|
|
TestContext context = buildTestContext(SpringBootTestClassesConfiguration.class);
|
|
|
|
|
MergedContextConfiguration contextConfiguration = getMergedContextConfiguration(context);
|
|
|
|
|
Class<?>[] classes = contextConfiguration.getClasses();
|
|
|
|
|
assertThat(classes).containsExactly(SpringBootTestContextBootstrapperExampleConfig.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("rawtypes")
|
|
|
|
|
private TestContext buildTestContext(Class<?> testClass) {
|
|
|
|
|
SpringBootTestContextBootstrapper bootstrapper = new SpringBootTestContextBootstrapper();
|
|
|
|
@ -100,6 +109,10 @@ class SpringBootTestContextBootstrapperTests {
|
|
|
|
|
return bootstrapper.buildTestContext();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MergedContextConfiguration getMergedContextConfiguration(TestContext context) {
|
|
|
|
|
return (MergedContextConfiguration) ReflectionTestUtils.getField(context, "mergedContextConfiguration");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
|
|
|
|
|
@WebAppConfiguration
|
|
|
|
|
static class SpringBootTestNonMockWebEnvironmentAndWebAppConfiguration {
|
|
|
|
@ -142,4 +155,9 @@ class SpringBootTestContextBootstrapperTests {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SpringBootTest(classes = SpringBootTestContextBootstrapperExampleConfig.class)
|
|
|
|
|
static class SpringBootTestClassesConfiguration {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|