BeanWrapperImpl.getPropertyDescriptor allows for nested paths again
Issue: SPR-13403
This commit is contained in:
@@ -214,7 +214,6 @@ public abstract class AbstractPropertyAccessorTests {
|
||||
public void getNestedDeepProperty() {
|
||||
Person target = createPerson("John", "London", "UK");
|
||||
AbstractPropertyAccessor accessor = createAccessor(target);
|
||||
|
||||
assertThat(accessor.getPropertyValue("address.country.name"), is("UK"));
|
||||
}
|
||||
|
||||
|
||||
@@ -36,15 +36,16 @@ import static org.junit.Assert.*;
|
||||
* @author Chris Beams
|
||||
* @author Dave Syer
|
||||
*/
|
||||
public final class BeanWrapperTests extends AbstractPropertyAccessorTests {
|
||||
public class BeanWrapperTests extends AbstractPropertyAccessorTests {
|
||||
|
||||
@Override
|
||||
protected BeanWrapperImpl createAccessor(Object target) {
|
||||
return new BeanWrapperImpl(target);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void setterDoestNotCallGetter() {
|
||||
public void setterDoesNotCallGetter() {
|
||||
GetterBean target = new GetterBean();
|
||||
BeanWrapper accessor = createAccessor(target);
|
||||
accessor.setPropertyValue("name", "tom");
|
||||
@@ -133,7 +134,7 @@ public final class BeanWrapperTests extends AbstractPropertyAccessorTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test // Can't be shared: no type mismatch with a field")
|
||||
@Test // Can't be shared: no type mismatch with a field
|
||||
public void setPropertyTypeMismatch() {
|
||||
PropertyTypeMismatch target = new PropertyTypeMismatch();
|
||||
BeanWrapper accessor = createAccessor(target);
|
||||
@@ -143,6 +144,21 @@ public final class BeanWrapperTests extends AbstractPropertyAccessorTests {
|
||||
assertEquals(8, accessor.getPropertyValue("object"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void propertyDescriptors() {
|
||||
TestBean target = new TestBean();
|
||||
target.setSpouse(new TestBean());
|
||||
BeanWrapper accessor = createAccessor(target);
|
||||
accessor.setPropertyValue("name", "a");
|
||||
accessor.setPropertyValue("spouse.name", "b");
|
||||
assertEquals("a", target.getName());
|
||||
assertEquals("b", target.getSpouse().getName());
|
||||
assertEquals("a", accessor.getPropertyValue("name"));
|
||||
assertEquals("b", accessor.getPropertyValue("spouse.name"));
|
||||
assertEquals(String.class, accessor.getPropertyDescriptor("name").getPropertyType());
|
||||
assertEquals(String.class, accessor.getPropertyDescriptor("spouse.name").getPropertyType());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPropertyWithOptional() {
|
||||
GetterWithOptional target = new GetterWithOptional();
|
||||
|
||||
@@ -27,7 +27,7 @@ import static org.junit.Assert.*;
|
||||
*
|
||||
* @author Jose Luis Martin
|
||||
* @author Chris Beams
|
||||
* @@author Stephane Nicoll
|
||||
* @author Stephane Nicoll
|
||||
*/
|
||||
public class DirectFieldAccessorTests extends AbstractPropertyAccessorTests {
|
||||
|
||||
@@ -39,14 +39,17 @@ public class DirectFieldAccessorTests extends AbstractPropertyAccessorTests {
|
||||
|
||||
@Test
|
||||
public void withShadowedField() throws Exception {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
TestBean target = new TestBean() {
|
||||
@SuppressWarnings("unused")
|
||||
StringBuilder name = new StringBuilder();
|
||||
StringBuilder name = sb;
|
||||
};
|
||||
|
||||
DirectFieldAccessor dfa = createAccessor(target);
|
||||
assertEquals(StringBuilder.class, dfa.getPropertyType("name"));
|
||||
assertEquals(sb, dfa.getPropertyValue("name"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user