📄 beanwrappertests.java
字号:
assertTrue("it was the spouse.spouse property that was null, not " + ex.getPropertyName(),
ex.getPropertyName().equals("spouse.spouse"));
}
}
public void testSetNestedProperty() throws Exception {
ITestBean rod = new TestBean("rod", 31);
ITestBean kerry = new TestBean("kerry", 0);
BeanWrapper bw = new BeanWrapperImpl(rod);
bw.setPropertyValue("spouse", kerry);
assertTrue("nested set worked", rod.getSpouse() == kerry);
assertTrue("no back relation", kerry.getSpouse() == null);
bw.setPropertyValue(new PropertyValue("spouse.spouse", rod));
assertTrue("nested set worked", kerry.getSpouse() == rod);
assertTrue("kerry age not set", kerry.getAge() == 0);
bw.setPropertyValue(new PropertyValue("spouse.age", new Integer(35)));
assertTrue("Set primitive on spouse", kerry.getAge() == 35);
}
public void testSetNestedPropertyNullValue() throws Exception {
ITestBean rod = new TestBean("rod", 31);
BeanWrapper bw = new BeanWrapperImpl(rod);
try {
bw.setPropertyValue("spouse.age", new Integer(31));
fail("Shouldn't have succeeded with null path");
}
catch (NullValueInNestedPathException ex) {
// expected
assertTrue("it was the spouse property that was null, not " + ex.getPropertyName(),
ex.getPropertyName().equals("spouse"));
}
}
public void testSetNestedPropertyPolymorphic() throws Exception {
ITestBean rod = new TestBean("rod", 31);
ITestBean kerry = new Employee();
BeanWrapper bw = new BeanWrapperImpl(rod);
bw.setPropertyValue("spouse", kerry);
bw.setPropertyValue("spouse.age", new Integer(35));
bw.setPropertyValue("spouse.name", "Kerry");
bw.setPropertyValue("spouse.company", "Lewisham");
assertTrue("kerry name is Kerry", kerry.getName().equals("Kerry"));
assertTrue("nested set worked", rod.getSpouse() == kerry);
assertTrue("no back relation", kerry.getSpouse() == null);
bw.setPropertyValue(new PropertyValue("spouse.spouse", rod));
assertTrue("nested set worked", kerry.getSpouse() == rod);
BeanWrapper kbw = new BeanWrapperImpl(kerry);
assertTrue("spouse.spouse.spouse.spouse.company=Lewisham",
"Lewisham".equals(kbw.getPropertyValue("spouse.spouse.spouse.spouse.company")));
}
public void testNewWrappedInstancePropertyValuesGet() {
BeanWrapper bw = new BeanWrapperImpl();
TestBean t = new TestBean("Tony", 50);
bw.setWrappedInstance(t);
assertEquals("Bean wrapper returns wrong property value",
new Integer(t.getAge()), bw.getPropertyValue("age"));
TestBean u = new TestBean("Udo", 30);
bw.setWrappedInstance(u);
assertEquals("Bean wrapper returns cached property value",
new Integer(u.getAge()), bw.getPropertyValue("age"));
}
public void testNewWrappedInstanceNestedPropertyValuesGet() {
BeanWrapper bw = new BeanWrapperImpl();
TestBean t = new TestBean("Tony", 50);
t.setSpouse(new TestBean("Sue", 40));
bw.setWrappedInstance(t);
assertEquals("Bean wrapper returns wrong nested property value",
new Integer(t.getSpouse().getAge()), bw.getPropertyValue("spouse.age"));
TestBean u = new TestBean("Udo", 30);
u.setSpouse(new TestBean("Vera", 20));
bw.setWrappedInstance(u);
assertEquals("Bean wrapper returns cached nested property value",
new Integer(u.getSpouse().getAge()), bw.getPropertyValue("spouse.age"));
}
public void testNullObject() {
try {
BeanWrapper bw = new BeanWrapperImpl((Object) null);
fail("Must throw an exception when constructed with null object");
}
catch (IllegalArgumentException ex) {
// expected
}
}
public void testNestedProperties() {
String doctorCompany = "";
String lawyerCompany = "Dr. Sueem";
TestBean tb = new TestBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
bw.setPropertyValue("doctor.company", doctorCompany);
bw.setPropertyValue("lawyer.company", lawyerCompany);
assertEquals(doctorCompany, tb.getDoctor().getCompany());
assertEquals(lawyerCompany, tb.getLawyer().getCompany());
}
public void testIndexedProperties() {
IndexedTestBean bean = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(bean);
TestBean tb0 = bean.getArray()[0];
TestBean tb1 = bean.getArray()[1];
TestBean tb2 = ((TestBean) bean.getList().get(0));
TestBean tb3 = ((TestBean) bean.getList().get(1));
TestBean tb6 = ((TestBean) bean.getSet().toArray()[0]);
TestBean tb7 = ((TestBean) bean.getSet().toArray()[1]);
TestBean tb4 = ((TestBean) bean.getMap().get("key1"));
TestBean tb5 = ((TestBean) bean.getMap().get("key.3"));
assertEquals("name0", tb0.getName());
assertEquals("name1", tb1.getName());
assertEquals("name2", tb2.getName());
assertEquals("name3", tb3.getName());
assertEquals("name6", tb6.getName());
assertEquals("name7", tb7.getName());
assertEquals("name4", tb4.getName());
assertEquals("name5", tb5.getName());
assertEquals("name0", bw.getPropertyValue("array[0].name"));
assertEquals("name1", bw.getPropertyValue("array[1].name"));
assertEquals("name2", bw.getPropertyValue("list[0].name"));
assertEquals("name3", bw.getPropertyValue("list[1].name"));
assertEquals("name6", bw.getPropertyValue("set[0].name"));
assertEquals("name7", bw.getPropertyValue("set[1].name"));
assertEquals("name4", bw.getPropertyValue("map[key1].name"));
assertEquals("name5", bw.getPropertyValue("map[key.3].name"));
assertEquals("name4", bw.getPropertyValue("map['key1'].name"));
assertEquals("name5", bw.getPropertyValue("map[\"key.3\"].name"));
assertEquals("nameX", bw.getPropertyValue("map[key4][0].name"));
assertEquals("nameY", bw.getPropertyValue("map[key4][1].name"));
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.addPropertyValue("array[0].name", "name5");
pvs.addPropertyValue("array[1].name", "name4");
pvs.addPropertyValue("list[0].name", "name3");
pvs.addPropertyValue("list[1].name", "name2");
pvs.addPropertyValue("set[0].name", "name8");
pvs.addPropertyValue("set[1].name", "name9");
pvs.addPropertyValue("map[key1].name", "name1");
pvs.addPropertyValue("map['key.3'].name", "name0");
pvs.addPropertyValue("map[key4][0].name", "nameA");
pvs.addPropertyValue("map[key4][1].name", "nameB");
bw.setPropertyValues(pvs);
assertEquals("name5", tb0.getName());
assertEquals("name4", tb1.getName());
assertEquals("name3", tb2.getName());
assertEquals("name2", tb3.getName());
assertEquals("name1", tb4.getName());
assertEquals("name0", tb5.getName());
assertEquals("name5", bw.getPropertyValue("array[0].name"));
assertEquals("name4", bw.getPropertyValue("array[1].name"));
assertEquals("name3", bw.getPropertyValue("list[0].name"));
assertEquals("name2", bw.getPropertyValue("list[1].name"));
assertEquals("name8", bw.getPropertyValue("set[0].name"));
assertEquals("name9", bw.getPropertyValue("set[1].name"));
assertEquals("name1", bw.getPropertyValue("map[\"key1\"].name"));
assertEquals("name0", bw.getPropertyValue("map['key.3'].name"));
assertEquals("nameA", bw.getPropertyValue("map[key4][0].name"));
assertEquals("nameB", bw.getPropertyValue("map[key4][1].name"));
}
public void testIndexedPropertiesWithDirectAccess() {
IndexedTestBean bean = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(bean);
TestBean tb0 = bean.getArray()[0];
TestBean tb1 = bean.getArray()[1];
TestBean tb2 = ((TestBean) bean.getList().get(0));
TestBean tb3 = ((TestBean) bean.getList().get(1));
TestBean tb6 = ((TestBean) bean.getSet().toArray()[0]);
TestBean tb7 = ((TestBean) bean.getSet().toArray()[1]);
TestBean tb4 = ((TestBean) bean.getMap().get("key1"));
TestBean tb5 = ((TestBean) bean.getMap().get("key2"));
assertEquals(tb0, bw.getPropertyValue("array[0]"));
assertEquals(tb1, bw.getPropertyValue("array[1]"));
assertEquals(tb2, bw.getPropertyValue("list[0]"));
assertEquals(tb3, bw.getPropertyValue("list[1]"));
assertEquals(tb6, bw.getPropertyValue("set[0]"));
assertEquals(tb7, bw.getPropertyValue("set[1]"));
assertEquals(tb4, bw.getPropertyValue("map[key1]"));
assertEquals(tb5, bw.getPropertyValue("map[key2]"));
assertEquals(tb4, bw.getPropertyValue("map['key1']"));
assertEquals(tb5, bw.getPropertyValue("map[\"key2\"]"));
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.addPropertyValue("array[0]", tb5);
pvs.addPropertyValue("array[1]", tb4);
pvs.addPropertyValue("list[0]", tb3);
pvs.addPropertyValue("list[1]", tb2);
pvs.addPropertyValue("list[2]", tb0);
pvs.addPropertyValue("list[4]", tb1);
pvs.addPropertyValue("map[key1]", tb1);
pvs.addPropertyValue("map['key2']", tb0);
pvs.addPropertyValue("map[key5]", tb4);
pvs.addPropertyValue("map['key9']", tb5);
bw.setPropertyValues(pvs);
assertEquals(tb5, bean.getArray()[0]);
assertEquals(tb4, bean.getArray()[1]);
assertEquals(tb3, ((TestBean) bean.getList().get(0)));
assertEquals(tb2, ((TestBean) bean.getList().get(1)));
assertEquals(tb0, ((TestBean) bean.getList().get(2)));
assertEquals(null, ((TestBean) bean.getList().get(3)));
assertEquals(tb1, ((TestBean) bean.getList().get(4)));
assertEquals(tb1, ((TestBean) bean.getMap().get("key1")));
assertEquals(tb0, ((TestBean) bean.getMap().get("key2")));
assertEquals(tb4, ((TestBean) bean.getMap().get("key5")));
assertEquals(tb5, ((TestBean) bean.getMap().get("key9")));
assertEquals(tb5, bw.getPropertyValue("array[0]"));
assertEquals(tb4, bw.getPropertyValue("array[1]"));
assertEquals(tb3, bw.getPropertyValue("list[0]"));
assertEquals(tb2, bw.getPropertyValue("list[1]"));
assertEquals(tb0, bw.getPropertyValue("list[2]"));
assertEquals(null, bw.getPropertyValue("list[3]"));
assertEquals(tb1, bw.getPropertyValue("list[4]"));
assertEquals(tb1, bw.getPropertyValue("map[\"key1\"]"));
assertEquals(tb0, bw.getPropertyValue("map['key2']"));
assertEquals(tb4, bw.getPropertyValue("map[\"key5\"]"));
assertEquals(tb5, bw.getPropertyValue("map['key9']"));
}
public void testPrimitiveArray() {
PrimitiveArrayBean tb = new PrimitiveArrayBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
bw.setPropertyValue("array", new String[] {"1", "2"});
assertEquals(2, tb.getArray().length);
assertEquals(1, tb.getArray()[0]);
assertEquals(2, tb.getArray()[1]);
}
public void testPropertiesInProtectedBaseBean() {
DerivedFromProtectedBaseBean bean = new DerivedFromProtectedBaseBean();
BeanWrapper bw = new BeanWrapperImpl(bean);
bw.setPropertyValue("someProperty", "someValue");
assertEquals("someValue", bw.getPropertyValue("someProperty"));
assertEquals("someValue", bean.getSomeProperty());
}
public void testErrorMessageOfNestedProperty() {
ITestBean parent = new TestBean();
ITestBean child = new DifferentTestBean();
child.setName("test");
parent.setSpouse(child);
BeanWrapper bw = new BeanWrapperImpl(parent);
try {
bw.getPropertyValue("spouse.bla");
}
catch (NotReadablePropertyException ex) {
assertTrue(ex.getMessage().indexOf(TestBean.class.getName()) != -1);
}
}
public void testMatchingCollections() {
IndexedTestBean tb = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
Collection coll = new HashSet();
coll.add("coll1");
bw.setPropertyValue("collection", coll);
Set set = new HashSet();
set.add("set1");
bw.setPropertyValue("set", set);
SortedSet sortedSet = new TreeSet();
sortedSet.add("sortedSet1");
bw.setPropertyValue("sortedSet", sortedSet);
List list = new LinkedList();
list.add("list1");
bw.setPropertyValue("list", list);
assertEquals(coll, tb.getCollection());
assertEquals(set, tb.getSet());
assertEquals(sortedSet, tb.getSortedSet());
assertEquals(list, tb.getList());
}
public void testNonMatchingCollections() {
IndexedTestBean tb = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
Collection coll = new ArrayList();
coll.add("coll1");
bw.setPropertyValue("collection", coll);
List set = new LinkedList();
set.add("set1");
bw.setPropertyValue("set", set);
List sortedSet = new ArrayList();
sortedSet.add("sortedSet1");
bw.setPropertyValue("sortedSet", sortedSet);
Set list = new HashSet();
list.add("list1");
bw.setPropertyValue("list", list);
assertEquals(1, tb.getCollection().size());
assertTrue(tb.getCollection().containsAll(coll));
assertEquals(1, tb.getSet().size());
assertTrue(tb.getSet().containsAll(set));
assertEquals(1, tb.getSortedSet().size());
assertTrue(tb.getSortedSet().containsAll(sortedSet));
assertEquals(1, tb.getList().size());
assertTrue(tb.getList().containsAll(list));
}
public void testCollectionsWithArrayValues() {
IndexedTestBean tb = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
Collection coll = new HashSet();
coll.add("coll1");
bw.setPropertyValue("collection", coll.toArray());
List set = new LinkedList();
set.add("set1");
bw.setPropertyValue("set", set.toArray());
List sortedSet = new ArrayList();
sortedSet.add("sortedSet1");
bw.setPropertyValue("sortedSet", sortedSet.toArray());
Set list = new HashSet();
list.add("list1");
bw.setPropertyValue("list", list.toArray());
assertEquals(1, tb.getCollection().size());
assertTrue(tb.getCollection().containsAll(coll));
assertEquals(1, tb.getSet().size());
assertTrue(tb.getSet().containsAll(set));
assertEquals(1, tb.getSortedSet().size());
assertTrue(tb.getSortedSet().containsAll(sortedSet));
assertEquals(1, tb.getList().size());
assertTrue(tb.getList().containsAll(list));
}
public void testCollectionsWithIntArrayValues() {
IndexedTestBean tb = new IndexedTestBean();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -