Browse Source
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2030 50f2f4bb-b051-0410-bef5-90022cba6387pull/1/head
2 changed files with 330 additions and 6 deletions
@ -0,0 +1,205 @@ |
|||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals; |
||||||
|
import static org.junit.Assert.assertNotNull; |
||||||
|
import static org.junit.Assert.assertNull; |
||||||
|
import static org.junit.Assert.assertTrue; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import org.junit.Before; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
public class BeanWrapperAutoGrowingTests { |
||||||
|
|
||||||
|
Bean bean = new Bean(); |
||||||
|
|
||||||
|
BeanWrapperImpl wrapper = new BeanWrapperImpl(bean); |
||||||
|
|
||||||
|
@Before |
||||||
|
public void setUp() { |
||||||
|
wrapper.setAutoGrowNestedPaths(true); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void getPropertyValueNullValueInNestedPath() { |
||||||
|
assertNull(wrapper.getPropertyValue("nested.prop")); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setPropertyValueNullValueInNestedPath() { |
||||||
|
wrapper.setPropertyValue("nested.prop", "test"); |
||||||
|
assertEquals("test", bean.getNested().getProp()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected=NullValueInNestedPathException.class) |
||||||
|
public void getPropertyValueNullValueInNestedPathNoDefaultConstructor() { |
||||||
|
wrapper.getPropertyValue("nestedNoConstructor.prop"); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void getPropertyValueAutoGrowArray() { |
||||||
|
assertNotNull(wrapper.getPropertyValue("array[0]")); |
||||||
|
assertEquals(1, bean.getArray().length); |
||||||
|
assertTrue(bean.getArray()[0] instanceof Bean); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setPropertyValueAutoGrowArray() { |
||||||
|
wrapper.setPropertyValue("array[0].prop", "test"); |
||||||
|
assertEquals("test", bean.getArray()[0].getProp()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void getPropertyValueAutoGrowArrayBySeveralElements() { |
||||||
|
assertNotNull(wrapper.getPropertyValue("array[4]")); |
||||||
|
assertEquals(5, bean.getArray().length); |
||||||
|
assertTrue(bean.getArray()[0] instanceof Bean); |
||||||
|
assertTrue(bean.getArray()[1] instanceof Bean); |
||||||
|
assertTrue(bean.getArray()[2] instanceof Bean); |
||||||
|
assertTrue(bean.getArray()[3] instanceof Bean); |
||||||
|
assertTrue(bean.getArray()[4] instanceof Bean); |
||||||
|
assertNotNull(wrapper.getPropertyValue("array[0]")); |
||||||
|
assertNotNull(wrapper.getPropertyValue("array[1]")); |
||||||
|
assertNotNull(wrapper.getPropertyValue("array[2]")); |
||||||
|
assertNotNull(wrapper.getPropertyValue("array[3]")); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void getPropertyValueAutoGrowMultiDimensionalArray() { |
||||||
|
assertNotNull(wrapper.getPropertyValue("multiArray[0][0]")); |
||||||
|
assertEquals(1, bean.getMultiArray()[0].length); |
||||||
|
assertTrue(bean.getMultiArray()[0][0] instanceof Bean); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void getPropertyValueAutoGrowList() { |
||||||
|
assertNotNull(wrapper.getPropertyValue("list[0]")); |
||||||
|
assertEquals(1, bean.getList().size()); |
||||||
|
assertTrue(bean.getList().get(0) instanceof Bean); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setPropertyValueAutoGrowList() { |
||||||
|
wrapper.setPropertyValue("list[0].prop", "test"); |
||||||
|
assertEquals("test", bean.getList().get(0).getProp()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void getPropertyValueAutoGrowListBySeveralElements() { |
||||||
|
assertNotNull(wrapper.getPropertyValue("list[4]")); |
||||||
|
assertEquals(5, bean.getList().size()); |
||||||
|
assertTrue(bean.getList().get(0) instanceof Bean); |
||||||
|
assertTrue(bean.getList().get(1) instanceof Bean); |
||||||
|
assertTrue(bean.getList().get(2) instanceof Bean); |
||||||
|
assertTrue(bean.getList().get(3) instanceof Bean); |
||||||
|
assertTrue(bean.getList().get(4) instanceof Bean); |
||||||
|
assertNotNull(wrapper.getPropertyValue("list[0]")); |
||||||
|
assertNotNull(wrapper.getPropertyValue("list[1]")); |
||||||
|
assertNotNull(wrapper.getPropertyValue("list[2]")); |
||||||
|
assertNotNull(wrapper.getPropertyValue("list[3]")); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void getPropertyValueAutoGrowMultiDimensionalList() { |
||||||
|
assertNotNull(wrapper.getPropertyValue("multiList[0][0]")); |
||||||
|
assertEquals(1, bean.getMultiList().get(0).size()); |
||||||
|
assertTrue(bean.getMultiList().get(0).get(0) instanceof Bean); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected=InvalidPropertyException.class) |
||||||
|
public void getPropertyValueAutoGrowListNotParameterized() { |
||||||
|
wrapper.getPropertyValue("listNotParameterized[0]"); |
||||||
|
} |
||||||
|
|
||||||
|
public static class Bean { |
||||||
|
|
||||||
|
private String prop; |
||||||
|
|
||||||
|
private Bean nested; |
||||||
|
|
||||||
|
private NestedNoDefaultConstructor nestedNoConstructor; |
||||||
|
|
||||||
|
private Bean[] array; |
||||||
|
|
||||||
|
private Bean[][] multiArray; |
||||||
|
|
||||||
|
private List<Bean> list; |
||||||
|
|
||||||
|
private List<List<Bean>> multiList; |
||||||
|
|
||||||
|
private List listNotParameterized; |
||||||
|
|
||||||
|
public String getProp() { |
||||||
|
return prop; |
||||||
|
} |
||||||
|
|
||||||
|
public void setProp(String prop) { |
||||||
|
this.prop = prop; |
||||||
|
} |
||||||
|
|
||||||
|
public Bean getNested() { |
||||||
|
return nested; |
||||||
|
} |
||||||
|
|
||||||
|
public void setNested(Bean nested) { |
||||||
|
this.nested = nested; |
||||||
|
} |
||||||
|
|
||||||
|
public Bean[] getArray() { |
||||||
|
return array; |
||||||
|
} |
||||||
|
|
||||||
|
public void setArray(Bean[] array) { |
||||||
|
this.array = array; |
||||||
|
} |
||||||
|
|
||||||
|
public Bean[][] getMultiArray() { |
||||||
|
return multiArray; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMultiArray(Bean[][] multiArray) { |
||||||
|
this.multiArray = multiArray; |
||||||
|
} |
||||||
|
|
||||||
|
public List<Bean> getList() { |
||||||
|
return list; |
||||||
|
} |
||||||
|
|
||||||
|
public void setList(List<Bean> list) { |
||||||
|
this.list = list; |
||||||
|
} |
||||||
|
|
||||||
|
public List<List<Bean>> getMultiList() { |
||||||
|
return multiList; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMultiList(List<List<Bean>> multiList) { |
||||||
|
this.multiList = multiList; |
||||||
|
} |
||||||
|
|
||||||
|
public NestedNoDefaultConstructor getNestedNoConstructor() { |
||||||
|
return nestedNoConstructor; |
||||||
|
} |
||||||
|
|
||||||
|
public void setNestedNoConstructor( |
||||||
|
NestedNoDefaultConstructor nestedNoConstructor) { |
||||||
|
this.nestedNoConstructor = nestedNoConstructor; |
||||||
|
} |
||||||
|
|
||||||
|
public List getListNotParameterized() { |
||||||
|
return listNotParameterized; |
||||||
|
} |
||||||
|
|
||||||
|
public void setListNotParameterized(List listNotParameterized) { |
||||||
|
this.listNotParameterized = listNotParameterized; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public static class NestedNoDefaultConstructor { |
||||||
|
private NestedNoDefaultConstructor() { |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue