package org.springframework.context.support; import java.util.Map; import java.util.Properties; import junit.framework.TestCase; import org.springframework.beans.MutablePropertyValues; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; /** * @author Juergen Hoeller * @since 25.04.2004 */ public class ResourceMapFactoryBeanTests extends TestCase { public void testResourceMapFactoryBeanWithoutContext() { DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); Properties props = new Properties(); props.setProperty("test1", "classpath:org/springframework/context/support/contextA.xml"); props.setProperty("test2", "classpath:org/springframework/context/support/contextB.xml"); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.addPropertyValue("properties", props); RootBeanDefinition bd = new RootBeanDefinition(ResourceMapFactoryBean.class, pvs); beanFactory.registerBeanDefinition("resourceMap", bd); Map result = (Map) beanFactory.getBean("resourceMap"); assertEquals(2, result.size()); assertTrue(result.get("test1") instanceof ClassPathResource); assertTrue(((Resource) result.get("test1")).getDescription().indexOf("contextA.xml") != -1); assertTrue(((Resource) result.get("test2")).getDescription().indexOf("contextB.xml") != -1); } public void testResourceMapFactoryBeanWithContext() { StaticApplicationContext context = new StaticApplicationContext() { public Resource getResource(String location) { return super.getResource("classpath:org/springframework/context/support/context" + location); } }; DefaultListableBeanFactory beanFactory = context.getDefaultListableBeanFactory(); Properties props = new Properties(); props.setProperty("test1", "A.xml"); props.setProperty("test2", "B.xml"); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.addPropertyValue("properties", props); RootBeanDefinition bd = new RootBeanDefinition(ResourceMapFactoryBean.class, pvs); beanFactory.registerBeanDefinition("resourceMap", bd); context.refresh(); Map result = (Map) beanFactory.getBean("resourceMap"); assertEquals(2, result.size()); assertTrue(result.get("test1") instanceof ClassPathResource); assertTrue(((Resource) result.get("test1")).getDescription().indexOf("contextA.xml") != -1); assertTrue(((Resource) result.get("test2")).getDescription().indexOf("contextB.xml") != -1); } public void testResourceMapFactoryBeanWithResourceBasePath() { DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); Properties props = new Properties(); props.setProperty("test1", "A.xml"); props.setProperty("test2", "B.xml"); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.addPropertyValue("properties", props); pvs.addPropertyValue("resourceBasePath", "classpath:org/springframework/context/support/context"); RootBeanDefinition bd = new RootBeanDefinition(ResourceMapFactoryBean.class, pvs); beanFactory.registerBeanDefinition("resourceMap", bd); Map result = (Map) beanFactory.getBean("resourceMap"); assertEquals(2, result.size()); assertTrue(result.get("test1") instanceof ClassPathResource); assertTrue(((Resource) result.get("test1")).getDescription().indexOf("contextA.xml") != -1); assertTrue(((Resource) result.get("test2")).getDescription().indexOf("contextB.xml") != -1); } }