提交 c2908399 编写于 作者: S Sam Brannen

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).
上级 48fea0ba
......@@ -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 {
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 {
......
......@@ -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
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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册