public void testRefSubelement() throws Exception { InputStream is = getClass().getResourceAsStream("collections.xml"); XmlBeanFactory xbf = new XmlBeanFactory(is); // assertTrue("5 beans in reftypes, not " + xbf.getBeanDefinitionCount(), // xbf.getBeanDefinitionCount() == 5); TestBean jen = (TestBean) xbf.getBean("jenny"); TestBean dave = (TestBean) xbf.getBean("david"); assertTrue(jen.getSpouse() == dave); }
public void testRefSubelementsBuildCollectionFromSingleElement() throws Exception { InputStream is = getClass().getResourceAsStream("collections.xml"); XmlBeanFactory xbf = new XmlBeanFactory(is); // assertTrue("5 beans in reftypes, not " + xbf.getBeanDefinitionCount(), // xbf.getBeanDefinitionCount() == 5); TestBean loner = (TestBean) xbf.getBean("loner"); TestBean dave = (TestBean) xbf.getBean("david"); assertTrue(loner.getFriends().size() == 1); assertTrue(loner.getFriends().contains(dave)); }
public void testRefToSingleton() throws Exception { InputStream is = getClass().getResourceAsStream("reftypes.xml"); XmlBeanFactory xbf = new XmlBeanFactory(is); assertTrue( "6 beans in reftypes, not " + xbf.getBeanDefinitionCount(), xbf.getBeanDefinitionCount() == 6); TestBean jen = (TestBean) xbf.getBean("jenny"); TestBean dave = (TestBean) xbf.getBean("david"); TestBean jenks = (TestBean) xbf.getBean("jenks"); ITestBean davesJen = dave.getSpouse(); ITestBean jenksJen = jenks.getSpouse(); assertTrue("1 jen instances", davesJen == jenksJen); }
/** * Note that prototype/singleton distinction is <b>not</b> inherited. It's possible for a subclass * singleton not to return independent instances even if derived from a prototype * * @throws Exception */ public void testSingletonInheritsFromParentFactoryPrototype() throws Exception { InputStream pis = getClass().getResourceAsStream("parent.xml"); XmlBeanFactory parent = new XmlBeanFactory(pis); InputStream is = getClass().getResourceAsStream("child.xml"); XmlBeanFactory child = new XmlBeanFactory(is, parent); TestBean inherits = (TestBean) child.getBean("singletonInheritsFromParentFactoryPrototype"); // Name property value is overriden assertTrue(inherits.getName().equals("prototype-override")); // Age property is inherited from bean in parent factory assertTrue(inherits.getAge() == 2); TestBean inherits2 = (TestBean) child.getBean("singletonInheritsFromParentFactoryPrototype"); assertTrue(inherits2 == inherits); }
/** Uses a separate factory */ public void testRefToSeparatePrototypeInstances() throws Exception { InputStream is = getClass().getResourceAsStream("reftypes.xml"); XmlBeanFactory xbf = new XmlBeanFactory(is); assertTrue( "6 beans in reftypes, not " + xbf.getBeanDefinitionCount(), xbf.getBeanDefinitionCount() == 6); TestBean emma = (TestBean) xbf.getBean("emma"); TestBean georgia = (TestBean) xbf.getBean("georgia"); ITestBean emmasJenks = emma.getSpouse(); ITestBean georgiasJenks = georgia.getSpouse(); assertTrue( "Emma and georgia think they have a different boyfriend", emmasJenks != georgiasJenks); assertTrue("Emmas jenks has right name", emmasJenks.getName().equals("Andrew")); assertTrue("Emmas doesn't equal new ref", emmasJenks != xbf.getBean("jenks")); assertTrue("Georgias jenks has right name", emmasJenks.getName().equals("Andrew")); assertTrue("They are object equal", emmasJenks.equals(georgiasJenks)); assertTrue("They object equal direct ref", emmasJenks.equals(xbf.getBean("jenks"))); }
public void testRefSubelementsBuildCollection() throws Exception { InputStream is = getClass().getResourceAsStream("collections.xml"); XmlBeanFactory xbf = new XmlBeanFactory(is); // assertTrue("5 beans in reftypes, not " + xbf.getBeanDefinitionCount(), // xbf.getBeanDefinitionCount() == 5); TestBean jen = (TestBean) xbf.getBean("jenny"); TestBean dave = (TestBean) xbf.getBean("david"); TestBean rod = (TestBean) xbf.getBean("rod"); // Must be a list to support ordering // Our bean doesn't modify the collection: // of course it could be a different copy in a real object List friends = (List) rod.getFriends(); assertTrue(friends.size() == 2); assertTrue("First friend must be jen, not " + friends.get(0), friends.get(0).equals(jen)); assertTrue(friends.get(1).equals(dave)); // Should be ordered }
public void testCircularReferences() { InputStream is = getClass().getResourceAsStream("reftypes.xml"); XmlBeanFactory xbf = new XmlBeanFactory(is); TestBean jenny = (TestBean) xbf.getBean("jenny"); TestBean david = (TestBean) xbf.getBean("david"); TestBean ego = (TestBean) xbf.getBean("ego"); assertTrue("Correct circular reference", jenny.getSpouse() == david); assertTrue("Correct circular reference", david.getSpouse() == jenny); assertTrue("Correct circular reference", ego.getSpouse() == ego); }
public void testPrototypeInheritanceFromParentFactorySingleton() throws Exception { InputStream pis = getClass().getResourceAsStream("parent.xml"); XmlBeanFactory parent = new XmlBeanFactory(pis); InputStream is = getClass().getResourceAsStream("child.xml"); XmlBeanFactory child = new XmlBeanFactory(is, parent); TestBean inherits = (TestBean) child.getBean("protoypeInheritsFromParentFactorySingleton"); // Name property value is overriden assertTrue(inherits.getName().equals("prototypeOverridesInheritedSingleton")); // Age property is inherited from bean in parent factory assertTrue(inherits.getAge() == 1); TestBean inherits2 = (TestBean) child.getBean("protoypeInheritsFromParentFactorySingleton"); assertFalse(inherits2 == inherits); inherits2.setAge(13); assertTrue(inherits2.getAge() == 13); // Shouldn't have changed first instance assertTrue(inherits.getAge() == 1); }
public void testPropertyWithLiteralValueSubelement() throws Exception { InputStream is = getClass().getResourceAsStream("collections.xml"); XmlBeanFactory xbf = new XmlBeanFactory(is); TestBean verbose = (TestBean) xbf.getBean("verbose"); assertTrue(verbose.getName().equals("verbose")); }