refined TypeConverterDelegate's ConversionService exception handling

Issue: SPR-9498
This commit is contained in:
Juergen Hoeller
2012-09-05 00:59:46 +02:00
parent 15e384dfd3
commit 6bce098310
2 changed files with 62 additions and 61 deletions

View File

@@ -72,6 +72,28 @@ import test.beans.TestBean;
*/
public final class BeanWrapperTests {
@Test
public void testNullNestedTypeDescriptor() {
Foo foo = new Foo();
BeanWrapperImpl wrapper = new BeanWrapperImpl(foo);
wrapper.setConversionService(new DefaultConversionService());
wrapper.setAutoGrowNestedPaths(true);
wrapper.setPropertyValue("listOfMaps[0]['luckyNumber']", "9");
assertEquals("9", foo.listOfMaps.get(0).get("luckyNumber"));
}
@Test
public void testNullNestedTypeDescriptor2() {
Foo foo = new Foo();
BeanWrapperImpl wrapper = new BeanWrapperImpl(foo);
wrapper.setConversionService(new DefaultConversionService());
wrapper.setAutoGrowNestedPaths(true);
Map<String, String> map = new HashMap<String, String>();
map.put("favoriteNumber", "9");
wrapper.setPropertyValue("list[0]", map);
assertEquals(map, foo.list.get(0));
}
@Test
public void testNullNestedTypeDescriptorWithNoConversionService() {
Foo foo = new Foo();
@@ -96,52 +118,6 @@ public final class BeanWrapperTests {
assertEquals("9", foo.listOfMaps.get(0).get("luckyNumber"));
}
@Test
public void testNullNestedTypeDescriptor() {
Foo foo = new Foo();
BeanWrapperImpl wrapper = new BeanWrapperImpl(foo);
wrapper.setConversionService(new DefaultConversionService());
wrapper.setAutoGrowNestedPaths(true);
wrapper.setPropertyValue("listOfMaps[0]['luckyNumber']", "9");
assertEquals("9", foo.listOfMaps.get(0).get("luckyNumber"));
}
@Test
public void testNullNestedTypeDescriptor2() {
Foo foo = new Foo();
BeanWrapperImpl wrapper = new BeanWrapperImpl(foo);
wrapper.setConversionService(new DefaultConversionService());
wrapper.setAutoGrowNestedPaths(true);
Map<String, String> map = new HashMap<String, String>();
map.put("favoriteNumber", "9");
wrapper.setPropertyValue("list[0]", map);
assertEquals(map, foo.list.get(0));
}
static class Foo {
private List list;
private List<Map> listOfMaps;
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public List<Map> getListOfMaps() {
return listOfMaps;
}
public void setListOfMaps(List<Map> listOfMaps) {
this.listOfMaps = listOfMaps;
}
}
@Test
public void testIsReadablePropertyNotReadable() {
NoRead nr = new NoRead();
@@ -1565,6 +1541,31 @@ public final class BeanWrapperTests {
assertEquals(TestEnum.TEST_VALUE, consumer.getEnumValue());
}
private static class Foo {
private List list;
private List<Map> listOfMaps;
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public List<Map> getListOfMaps() {
return listOfMaps;
}
public void setListOfMaps(List<Map> listOfMaps) {
this.listOfMaps = listOfMaps;
}
}
private static class DifferentTestBean extends TestBean {
// class to test naming of beans in a BeanWrapper error message
}