📄 xmlbeanfactorytestsuite.java
字号:
public void testFactoryReferenceCircle() {
InputStream is = getClass().getResourceAsStream("factoryCircle.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
TestBean tb = (TestBean) xbf.getBean("singletonFactory");
DummyFactory db = (DummyFactory) xbf.getBean("&singletonFactory");
assertTrue(tb == db.getOtherTestBean());
}
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 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"));
}
public void testPropertyWithIdRefLocalAttrSubelement() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
TestBean verbose = (TestBean) xbf.getBean("verbose2");
assertTrue(verbose.getName().equals("verbose"));
}
public void testPropertyWithIdRefBeanAttrSubelement() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
TestBean verbose = (TestBean) xbf.getBean("verbose3");
assertTrue(verbose.getName().equals("verbose"));
}
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) == jen);
assertTrue(friends.get(1) == dave);
// Should be ordered
}
public void testRefSubelementsBuildCollectionWithPrototypes() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
TestBean jen = (TestBean) xbf.getBean("pJenny");
TestBean dave = (TestBean) xbf.getBean("pDavid");
TestBean rod = (TestBean) xbf.getBean("pRod");
List friends = (List) rod.getFriends();
assertTrue(friends.size() == 2);
assertTrue("First friend must be jen, not " + friends.get(0),
friends.get(0).toString().equals(jen.toString()));
assertTrue("Jen not same instance", friends.get(0) != jen);
assertTrue(friends.get(1).toString().equals(dave.toString()));
assertTrue("Dave not same instance", friends.get(1) != dave);
TestBean rod2 = (TestBean) xbf.getBean("pRod");
List friends2 = (List) rod2.getFriends();
assertTrue(friends2.size() == 2);
assertTrue("First friend must be jen, not " + friends2.get(0),
friends2.get(0).toString().equals(jen.toString()));
assertTrue("Jen not same instance", friends2.get(0) != friends.get(0));
assertTrue(friends2.get(1).toString().equals(dave.toString()));
assertTrue("Dave not same instance", friends2.get(1) != friends.get(1));
}
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 testBuildCollectionFromMixtureOfReferencesAndValues() throws Exception {
// Ensure that a test runner like Eclipse, that keeps the same JVM up,
// will get fresh static values
MixedCollectionBean.resetStaticState();
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
//assertTrue("5 beans in reftypes, not " + xbf.getBeanDefinitionCount(), xbf.getBeanDefinitionCount() == 5);
MixedCollectionBean jumble = (MixedCollectionBean) xbf.getBean("jumble");
assertEquals(1, MixedCollectionBean.nrOfInstances);
assertTrue("Expected 3 elements, not " + jumble.getJumble().size(),
jumble.getJumble().size() == 4);
List l = (List) jumble.getJumble();
assertTrue(l.get(0).equals(xbf.getBean("david")));
assertTrue(l.get(1).equals("literal"));
assertTrue(l.get(2).equals(xbf.getBean("jenny")));
assertTrue(l.get(3).equals("rod"));
}
/**
* Test that properties with name as well as id creating an alias up front.
*/
public void testAutoAliasing() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
List beanNames = Arrays.asList(xbf.getBeanDefinitionNames());
TestBean tb1 = (TestBean) xbf.getBean("aliased");
TestBean alias1 = (TestBean) xbf.getBean("myalias");
assertTrue(tb1 == alias1);
List tb1Aliases = Arrays.asList(xbf.getAliases("aliased"));
assertEquals(1, tb1Aliases.size());
assertTrue(tb1Aliases.contains("myalias"));
assertTrue(beanNames.contains("aliased"));
assertFalse(beanNames.contains("myalias"));
TestBean tb2 = (TestBean) xbf.getBean("multiAliased");
TestBean alias2 = (TestBean) xbf.getBean("alias1");
TestBean alias3 = (TestBean) xbf.getBean("alias2");
assertTrue(tb2 == alias2);
assertTrue(tb2 == alias3);
List tb2Aliases = Arrays.asList(xbf.getAliases("multiAliased"));
assertEquals(2, tb2Aliases.size());
assertTrue(tb2Aliases.contains("alias1"));
assertTrue(tb2Aliases.contains("alias2"));
assertTrue(beanNames.contains("multiAliased"));
assertFalse(beanNames.contains("alias1"));
assertFalse(beanNames.contains("alias2"));
TestBean tb3 = (TestBean) xbf.getBean("aliasWithoutId1");
TestBean alias4 = (TestBean) xbf.getBean("aliasWithoutId2");
TestBean alias5 = (TestBean) xbf.getBean("aliasWithoutId3");
assertTrue(tb3 == alias4);
assertTrue(tb3 == alias5);
List tb3Aliases = Arrays.asList(xbf.getAliases("aliasWithoutId1"));
assertEquals(2, tb2Aliases.size());
assertTrue(tb3Aliases.contains("aliasWithoutId2"));
assertTrue(tb3Aliases.contains("aliasWithoutId3"));
assertTrue(beanNames.contains("aliasWithoutId1"));
assertFalse(beanNames.contains("aliasWithoutId2"));
assertFalse(beanNames.contains("aliasWithoutId3"));
TestBean tb4 = (TestBean) xbf.getBean(TestBean.class.getName());
assertEquals(null, tb4.getName());
Map drs = xbf.getBeansOfType(DummyReferencer.class, false, false);
assertEquals(3, drs.size());
assertTrue(drs.containsKey(DummyReferencer.class.getName()));
assertTrue(drs.containsKey(DummyReferencer.class.getName() + "#2"));
assertTrue(drs.containsKey(DummyReferencer.class.getName() + "#3"));
}
public void testEmptyMap() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("emptyMap");
assertTrue(hasMap.getMap().size() == 0);
}
public void testMapWithLiteralsOnly() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("literalMap");
assertTrue(hasMap.getMap().size() == 3);
assertTrue(hasMap.getMap().get("foo").equals("bar"));
assertTrue(hasMap.getMap().get("fi").equals("fum"));
assertTrue(hasMap.getMap().get("fa") == null);
}
public void testMapWithLiteralsAndReferences() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("mixedMap");
assertTrue(hasMap.getMap().size() == 3);
assertTrue(hasMap.getMap().get("foo").equals("bar"));
TestBean jenny = (TestBean) xbf.getBean("jenny");
assertTrue(hasMap.getMap().get("jenny") == jenny);
assertTrue(hasMap.getMap().get("david").equals("david"));
}
public void testMapWithLiteralsAndPrototypeReferences() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
TestBean jenny = (TestBean) xbf.getBean("pJenny");
HasMap hasMap = (HasMap) xbf.getBean("pMixedMap");
assertTrue(hasMap.getMap().size() == 2);
assertTrue(hasMap.getMap().get("foo").equals("bar"));
assertTrue(hasMap.getMap().get("jenny").toString().equals(jenny.toString()));
assertTrue("Not same instance", hasMap.getMap().get("jenny") != jenny);
HasMap hasMap2 = (HasMap) xbf.getBean("pMixedMap");
assertTrue(hasMap2.getMap().size() == 2);
assertTrue(hasMap2.getMap().get("foo").equals("bar"));
assertTrue(hasMap2.getMap().get("jenny").toString().equals(jenny.toString()));
assertTrue("Not same instance", hasMap2.getMap().get("jenny") != hasMap.getMap().get("jenny"));
}
public void testMapWithLiteralsReferencesAndList() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("mixedMapWithList");
assertTrue(hasMap.getMap().size() == 4);
assertTrue(hasMap.getMap().get("foo").equals("bar"));
TestBean jenny = (TestBean) xbf.getBean("jenny");
assertTrue(hasMap.getMap().get("jenny").equals(jenny));
// Check list
List l = (List) hasMap.getMap().get("list");
assertNotNull(l);
assertTrue(l.size() == 4);
assertTrue(l.get(0).equals("zero"));
assertTrue(l.get(3) == null);
// Check nested map in list
Map m = (Map) l.get(1);
assertNotNull(m);
assertTrue(m.size() == 2);
assertTrue(m.get("fo").equals("bar"));
assertTrue("Map element 'jenny' should be equal to jenny bean, not " + m.get("jen"),
m.get("jen").equals(jenny));
// Check nested list in list
l = (List) l.get(2);
assertNotNull(l);
assertTrue(l.size() == 2);
assertTrue(l.get(0).equals(jenny));
assertTrue(l.get(1).equals("ba"));
// Check nested map
m = (Map) hasMap.getMap().get("map");
assertNotNull(m);
assertTrue(m.size() == 2);
assertTrue(m.get("foo").equals("bar"));
assertTrue("Map element 'jenny' should be equal to jenny bean, not " + m.get("jenny"),
m.get("jenny").equals(jenny));
}
public void testEmptySet() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("emptySet");
assertTrue(hasMap.getSet().size() == 0);
}
public void testPopulatedSet() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("set");
assertTrue(hasMap.getSet().size() == 3);
assertTrue(hasMap.getSet().contains("bar"));
TestBean jenny = (TestBean) xbf.getBean("jenny");
assertTrue(hasMap.getSet().contains(jenny));
assertTrue(hasMap.getSet().contains(null));
}
public void testEmptyProps() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("emptyProps");
assertTrue(hasMap.getProps().size() == 0);
}
public void testPopulatedProps() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("props");
assertTrue(hasMap.getProps().size() == 2);
assertTrue(hasMap.getProps().get("foo").equals("bar"));
assertTrue(hasMap.getProps().get("2").equals("TWO"));
}
public void testObjectArray() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("objectArray");
assertTrue(hasMap.getObjectArray().length ==2);
assertTrue(hasMap.getObjectArray()[0].equals("one"));
assertTrue(hasMap.getObjectArray()[1].equals(xbf.getBean("jenny")));
}
public void testClassArray() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
HasMap hasMap = (HasMap) xbf.getBean("classArray");
assertTrue(hasMap.getClassArray().length ==2);
assertTrue(hasMap.getClassArray()[0].equals(String.class));
assertTrue(hasMap.getClassArray()[1].equals(Exception.class));
}
/*
* TODO address this failure
*
public void testIntegerArray() throws Exception {
InputStream is = getClass().getResourceAsStream("collections.xml");
XmlBeanFactory xbf = new XmlBeanFactory(is);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -