📄 beanwrappertestsuite.java
字号:
TestBean tb5 = ((TestBean) bean.getMap().get("key2"));
tb0.setNestedIndexedBean(new IndexedTestBean());
tb1.setNestedIndexedBean(new IndexedTestBean());
tb2.setNestedIndexedBean(new IndexedTestBean());
tb3.setNestedIndexedBean(new IndexedTestBean());
tb4.setNestedIndexedBean(new IndexedTestBean());
tb5.setNestedIndexedBean(new IndexedTestBean());
BeanWrapper bw = new BeanWrapperImpl(bean);
bw.registerCustomEditor(String.class, "array.nestedIndexedBean.array.name", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue("array" + text);
}
});
bw.registerCustomEditor(String.class, "list.nestedIndexedBean.list.name", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue("list" + text);
}
});
bw.registerCustomEditor(String.class, "map.nestedIndexedBean.map.name", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue("map" + text);
}
});
assertEquals("name0", tb0.getName());
assertEquals("name1", tb1.getName());
assertEquals("name2", tb2.getName());
assertEquals("name3", tb3.getName());
assertEquals("name4", tb4.getName());
assertEquals("name5", tb5.getName());
assertEquals("name0", bw.getPropertyValue("array[0].nestedIndexedBean.array[0].name"));
assertEquals("name1", bw.getPropertyValue("array[1].nestedIndexedBean.array[1].name"));
assertEquals("name2", bw.getPropertyValue("list[0].nestedIndexedBean.list[0].name"));
assertEquals("name3", bw.getPropertyValue("list[1].nestedIndexedBean.list[1].name"));
assertEquals("name4", bw.getPropertyValue("map[key1].nestedIndexedBean.map[key1].name"));
assertEquals("name5", bw.getPropertyValue("map['key2'].nestedIndexedBean.map[\"key2\"].name"));
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.addPropertyValue("array[0].nestedIndexedBean.array[0].name", "name5");
pvs.addPropertyValue("array[1].nestedIndexedBean.array[1].name", "name4");
pvs.addPropertyValue("list[0].nestedIndexedBean.list[0].name", "name3");
pvs.addPropertyValue("list[1].nestedIndexedBean.list[1].name", "name2");
pvs.addPropertyValue("map[key1].nestedIndexedBean.map[\"key1\"].name", "name1");
pvs.addPropertyValue("map['key2'].nestedIndexedBean.map[key2].name", "name0");
bw.setPropertyValues(pvs);
assertEquals("arrayname5", tb0.getNestedIndexedBean().getArray()[0].getName());
assertEquals("arrayname4", tb1.getNestedIndexedBean().getArray()[1].getName());
assertEquals("listname3", ((TestBean) tb2.getNestedIndexedBean().getList().get(0)).getName());
assertEquals("listname2", ((TestBean) tb3.getNestedIndexedBean().getList().get(1)).getName());
assertEquals("mapname1", ((TestBean) tb4.getNestedIndexedBean().getMap().get("key1")).getName());
assertEquals("mapname0", ((TestBean) tb5.getNestedIndexedBean().getMap().get("key2")).getName());
assertEquals("arrayname5", bw.getPropertyValue("array[0].nestedIndexedBean.array[0].name"));
assertEquals("arrayname4", bw.getPropertyValue("array[1].nestedIndexedBean.array[1].name"));
assertEquals("listname3", bw.getPropertyValue("list[0].nestedIndexedBean.list[0].name"));
assertEquals("listname2", bw.getPropertyValue("list[1].nestedIndexedBean.list[1].name"));
assertEquals("mapname1", bw.getPropertyValue("map['key1'].nestedIndexedBean.map[key1].name"));
assertEquals("mapname0", bw.getPropertyValue("map[key2].nestedIndexedBean.map[\"key2\"].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 testIndexedPropertiesWithDirectAccessAndPropertyEditors() {
IndexedTestBean bean = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(bean);
bw.registerCustomEditor(String.class, "array", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("array" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
bw.registerCustomEditor(String.class, "list", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("list" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
bw.registerCustomEditor(String.class, "map", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("map" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.addPropertyValue("array[0]", "a");
pvs.addPropertyValue("array[1]", "b");
pvs.addPropertyValue("list[0]", "c");
pvs.addPropertyValue("list[1]", "d");
pvs.addPropertyValue("map[key1]", "e");
pvs.addPropertyValue("map['key2']", "f");
bw.setPropertyValues(pvs);
assertEquals("arraya", bean.getArray()[0].getName());
assertEquals("arrayb", bean.getArray()[1].getName());
assertEquals("listc", ((TestBean) bean.getList().get(0)).getName());
assertEquals("listd", ((TestBean) bean.getList().get(1)).getName());
assertEquals("mape", ((TestBean) bean.getMap().get("key1")).getName());
assertEquals("mapf", ((TestBean) bean.getMap().get("key2")).getName());
}
public void testIndexedPropertiesWithDirectAccessAndSpecificPropertyEditors() {
IndexedTestBean bean = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(bean);
bw.registerCustomEditor(String.class, "array[0]", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("array0" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
bw.registerCustomEditor(String.class, "array[1]", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("array1" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
bw.registerCustomEditor(String.class, "list[0]", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("list0" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
bw.registerCustomEditor(String.class, "list[1]", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("list1" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
bw.registerCustomEditor(String.class, "map[key1]", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("mapkey1" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
bw.registerCustomEditor(String.class, "map[key2]", new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean("mapkey2" + text, 99));
}
public String getAsText() {
return ((TestBean) getValue()).getName();
}
});
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.addPropertyValue("array[0]", "a");
pvs.addPropertyValue("array[1]", "b");
pvs.addPropertyValue("list[0]", "c");
pvs.addPropertyValue("list[1]", "d");
pvs.addPropertyValue("map[key1]", "e");
pvs.addPropertyValue("map['key2']", "f");
bw.setPropertyValues(pvs);
assertEquals("array0a", bean.getArray()[0].getName());
assertEquals("array1b", bean.getArray()[1].getName());
assertEquals("list0c", ((TestBean) bean.getList().get(0)).getName());
assertEquals("list1d", ((TestBean) bean.getList().get(1)).getName());
assertEquals("mapkey1e", ((TestBean) bean.getMap().get("key1")).getName());
assertEquals("mapkey2f", ((TestBean) bean.getMap().get("key2")).getName());
}
public void testArrayToArrayConversion() throws PropertyVetoException {
IndexedTestBean tb = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
bw.registerCustomEditor(TestBean.class, new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue(new TestBean(text, 99));
}
});
bw.setPropertyValue("array", new String[] {"a", "b"});
assertEquals(2, tb.getArray().length);
assertEquals("a", tb.getArray()[0].getName());
assertEquals("b", tb.getArray()[1].getName());
}
public void testArrayToStringConversion() throws PropertyVetoException {
TestBean tb = new TestBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
bw.registerCustomEditor(String.class, new PropertyEditorSupport() {
public void setAsText(String text) throws IllegalArgumentException {
setValue("-" + text + "-");
}
});
bw.setPropertyValue("name", new String[] {"a", "b"});
assertEquals("-a,b-", tb.getName());
}
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 testByteArrayPropertyEditor() {
ByteArrayBean bean = new ByteArrayBean();
BeanWrapper bw = new BeanWrapperImpl(bean);
bw.setPropertyValue("array", "myvalue");
assertEquals("myvalue", new String(bean.getArray()));
}
private static class NoRead {
public void setAge(int age) {
}
}
private static class PropsTest {
private Properties props;
private String name;
private String[] stringArray;
private int[] intArray;
public void setProperties(Properties p) {
props = p;
}
public void setName(String name) {
this.name = name;
}
public void setStringArray(String[] sa) {
this.stringArray = sa;
}
public void setIntArray(int[] intArray) {
this.intArray = intArray;
}
}
private static class GetterBean {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
if (this.name == null) {
throw new RuntimeException("name property must be set");
}
return name;
}
}
private static class ThrowsException {
public void doSomething(Throwable t) throws Throwable {
throw t;
}
}
private static class PrimitiveArrayBean {
private int[] array;
public int[] getArray() {
return array;
}
public void setArray(int[] array) {
this.array = array;
}
}
private static class ByteArrayBean {
private byte[] array;
public byte[] getArray() {
return array;
}
public void setArray(byte[] array) {
this.array = array;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -