package org.springframework.beans.factory.xml; import junit.framework.TestCase; import org.springframework.core.io.ClassPathResource; import org.springframework.beans.TestBean; import java.util.List; import java.util.Set; import java.util.Iterator; import java.util.Map; /** * @author Rob Harrop */ public class CollectionsWithDefaultTypesTests extends TestCase { private XmlBeanFactory beanFactory; protected void setUp() throws Exception { this.beanFactory = new XmlBeanFactory(new ClassPathResource("collectionsWithDefaultTypes.xml", getClass())); } public void testListHasDefaultType() throws Exception { TestBean bean = (TestBean) this.beanFactory.getBean("testBean"); List list = bean.getSomeList(); for (int i = 0; i < list.size(); i++) { Object o = list.get(i); assertEquals("Value type is incorrect", Integer.class, o.getClass()); } } public void testSetHasDefaultType() throws Exception { TestBean bean = (TestBean) this.beanFactory.getBean("testBean"); Set set = bean.getSomeSet(); Iterator iterator = set.iterator(); while (iterator.hasNext()) { Object o = iterator.next(); assertEquals("Value type is incorrect", Integer.class, o.getClass()); } } public void testMapHasDefaultKeyAndValueType() throws Exception { TestBean bean = (TestBean) this.beanFactory.getBean("testBean"); assertMap(bean.getSomeMap()); } public void testMapWithNestedElementsHasDefaultKeyAndValueType() throws Exception { TestBean bean = (TestBean) this.beanFactory.getBean("testBean2"); assertMap(bean.getSomeMap()); } private void assertMap(Map map) { for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = (Map.Entry) iterator.next(); assertEquals("Key type is incorrect", Integer.class, entry.getKey().getClass()); assertEquals("Value type is incorrect", Boolean.class, entry.getValue().getClass()); } } }