Browse Source

Investigate claim on SO regarding ctx cache in TCF

This commit introduces a test that investigates a claim made on Stack
Overflow regarding context caching in the TestContext Framework (TCF).
pull/595/head
Sam Brannen 11 years ago
parent
commit
c290839914
  1. 5
      spring-test/src/test/java/org/springframework/test/context/support/AbstractContextLoaderUtilsTests.java
  2. 26
      spring-test/src/test/java/org/springframework/test/context/support/ContextLoaderUtilsMergedConfigTests.java

5
spring-test/src/test/java/org/springframework/test/context/support/AbstractContextLoaderUtilsTests.java

@ -36,6 +36,7 @@ import org.springframework.test.context.ContextConfigurationAttributes; @@ -36,6 +36,7 @@ import org.springframework.test.context.ContextConfigurationAttributes;
import org.springframework.test.context.ContextLoader;
import org.springframework.test.context.MergedContextConfiguration;
import org.springframework.test.context.TestContextBootstrapper;
import org.springframework.test.context.web.WebAppConfiguration;
import static org.junit.Assert.*;
@ -170,6 +171,10 @@ abstract class AbstractContextLoaderUtilsTests { @@ -170,6 +171,10 @@ abstract class AbstractContextLoaderUtilsTests {
static class ClassesFoo {
}
@WebAppConfiguration
static class WebClassesFoo extends ClassesFoo {
}
@ContextConfiguration(locations = "/bar.xml", inheritLocations = true, loader = AnnotationConfigContextLoader.class)
@ActiveProfiles("bar")
static class LocationsBar extends LocationsFoo {

26
spring-test/src/test/java/org/springframework/test/context/support/ContextLoaderUtilsMergedConfigTests.java

@ -25,6 +25,10 @@ import org.junit.Test; @@ -25,6 +25,10 @@ import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.ContextLoader;
import org.springframework.test.context.MergedContextConfiguration;
import org.springframework.test.context.web.WebDelegatingSmartContextLoader;
import org.springframework.test.context.web.WebMergedContextConfiguration;
import static org.junit.Assert.*;
/**
* Unit tests for {@link ContextLoaderUtils} involving {@link MergedContextConfiguration}.
@ -94,6 +98,28 @@ public class ContextLoaderUtilsMergedConfigTests extends AbstractContextLoaderUt @@ -94,6 +98,28 @@ public class ContextLoaderUtilsMergedConfigTests extends AbstractContextLoaderUt
DelegatingSmartContextLoader.class);
}
/**
* Introduced to investigate claims made in a discussion on
* <a href="http://stackoverflow.com/questions/24725438/what-could-cause-a-class-implementing-applicationlistenercontextrefreshedevent">Stack Overflow</a>.
*/
@Test
public void buildMergedConfigWithAtWebAppConfigurationWithAnnotationAndClassesOnSuperclass() {
Class<?> webTestClass = WebClassesFoo.class;
Class<?> standardTestClass = ClassesFoo.class;
WebMergedContextConfiguration webMergedConfig = (WebMergedContextConfiguration) buildMergedContextConfiguration(webTestClass);
MergedContextConfiguration standardMergedConfig = buildMergedContextConfiguration(standardTestClass);
assertEquals(webMergedConfig, webMergedConfig);
assertEquals(standardMergedConfig, standardMergedConfig);
assertNotEquals(standardMergedConfig, webMergedConfig);
assertNotEquals(webMergedConfig, standardMergedConfig);
assertMergedConfig(webMergedConfig, webTestClass, EMPTY_STRING_ARRAY, new Class<?>[] { FooConfig.class },
WebDelegatingSmartContextLoader.class);
assertMergedConfig(standardMergedConfig, standardTestClass, EMPTY_STRING_ARRAY,
new Class<?>[] { FooConfig.class }, DelegatingSmartContextLoader.class);
}
@Test
public void buildMergedConfigWithLocalAnnotationAndOverriddenContextLoaderAndLocations() {
Class<?> testClass = PropertiesLocationsFoo.class;

Loading…
Cancel
Save