package org.springside.modules.unit.utils.spring;
import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springside.modules.utils.reflection.ReflectionUtils;
import org.springside.modules.utils.spring.SpringContextHolder;
public class SpringContextHolderTest {
@Test
public void testGetBean() {
SpringContextHolder.clear();
try {
SpringContextHolder.getBean("foo");
fail("No exception throw for applicationContxt hadn't been init.");
} catch (IllegalStateException e) {
}
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
"classpath:/applicationContext-core-test.xml");
assertNotNull(SpringContextHolder.getApplicationContext());
SpringContextHolder holderByName = SpringContextHolder.getBean("springContextHolder");
assertEquals(SpringContextHolder.class, holderByName.getClass());
SpringContextHolder holderByClass = SpringContextHolder.getBean(SpringContextHolder.class);
assertEquals(SpringContextHolder.class, holderByClass.getClass());
context.close();
assertNull(ReflectionUtils.getFieldValue(holderByName, "applicationContext"));
}
}