Update ...DirtiesContextTests to get beans early

Change ContextHierarchyDirtiesContextTests to obtain beans whilst the
ApplicationContext is still open, rather than trying to obtain them
after the context has been closed.
This commit is contained in:
Phillip Webb
2013-05-09 14:57:16 -07:00
parent 3126a4cf46
commit 8b904102ff

View File

@@ -49,10 +49,19 @@ public class ContextHierarchyDirtiesContextTests {
private static ApplicationContext context;
private static String foo;
private static String bar;
private static String baz;
@After
public void cleanUp() {
ContextHierarchyDirtiesContextTests.context = null;
ContextHierarchyDirtiesContextTests.foo = null;
ContextHierarchyDirtiesContextTests.bar = null;
ContextHierarchyDirtiesContextTests.baz = null;
}
@Test
@@ -85,17 +94,17 @@ public class ContextHierarchyDirtiesContextTests {
assertThat(ContextHierarchyDirtiesContextTests.context, notNullValue());
ConfigurableApplicationContext bazContext = (ConfigurableApplicationContext) ContextHierarchyDirtiesContextTests.context;
assertEquals("baz", bazContext.getBean("bean", String.class));
assertEquals("baz", ContextHierarchyDirtiesContextTests.baz);
assertThat("bazContext#isActive()", bazContext.isActive(), is(isBazContextActive));
ConfigurableApplicationContext barContext = (ConfigurableApplicationContext) bazContext.getParent();
assertThat(barContext, notNullValue());
assertEquals("bar", barContext.getBean("bean", String.class));
assertEquals("bar", ContextHierarchyDirtiesContextTests.bar);
assertThat("barContext#isActive()", barContext.isActive(), is(isBarContextActive));
ConfigurableApplicationContext fooContext = (ConfigurableApplicationContext) barContext.getParent();
assertThat(fooContext, notNullValue());
assertEquals("foo", fooContext.getBean("bean", String.class));
assertEquals("foo", ContextHierarchyDirtiesContextTests.foo);
assertThat("fooContext#isActive()", fooContext.isActive(), is(isFooContextActive));
}
@@ -115,9 +124,11 @@ public class ContextHierarchyDirtiesContextTests {
}
}
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ContextHierarchyDirtiesContextTests.context = applicationContext;
ContextHierarchyDirtiesContextTests.baz = applicationContext.getBean("bean", String.class);
ContextHierarchyDirtiesContextTests.bar = applicationContext.getParent().getBean("bean", String.class);
ContextHierarchyDirtiesContextTests.foo = applicationContext.getParent().getParent().getBean("bean", String.class);
}
}