diff options
author | Matti Hosio <mhosio@vaadin.com> | 2013-07-15 15:56:07 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2013-08-09 08:13:00 +0000 |
commit | 9f126db566b14afaa8e025056539a38a5d7b9904 (patch) | |
tree | b25d791c4c8a8ddacaf0d85d12cb796ceeb4a4a6 /server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java | |
parent | 437b6de4eea416317bd79399a5dde9870b306975 (diff) | |
download | vaadin-framework-9f126db566b14afaa8e025056539a38a5d7b9904.tar.gz vaadin-framework-9f126db566b14afaa8e025056539a38a5d7b9904.zip |
Support for null intermediate beans in NestedMethodProperty (#11435)
Allows intermediate beans to return null in the NestedMethodProperty.
The feature is not enabled by default and thus should be fully backwards
compatible.
Change-Id: I438d0f787c5c76f61ab234f3c92dd927a8354a37
Diffstat (limited to 'server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java')
-rw-r--r-- | server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java b/server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java index 640ede8743..d517322010 100644 --- a/server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java +++ b/server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java @@ -273,6 +273,23 @@ public class NestedMethodPropertyTest extends TestCase { Assert.assertEquals("Joonas", managerNameProperty.getValue()); } + public void testNullNestedPropertyWithAllowNullBeans() { + NestedMethodProperty<String> managerNameProperty = new NestedMethodProperty<String>( + vaadin, "manager.name", true); + NestedMethodProperty<String> streetProperty = new NestedMethodProperty<String>( + vaadin, "manager.address.street", true); + + joonas.setAddress(null); + // should return null + Assert.assertNull(streetProperty.getValue()); + + vaadin.setManager(null); + Assert.assertNull(managerNameProperty.getValue()); + vaadin.setManager(joonas); + Assert.assertEquals("Joonas", managerNameProperty.getValue()); + Assert.assertNull(streetProperty.getValue()); + } + public void testMultiLevelNestedPropertySetValue() { NestedMethodProperty<String> managerNameProperty = new NestedMethodProperty<String>( vaadin, "manager.name"); @@ -314,6 +331,20 @@ public class NestedMethodPropertyTest extends TestCase { Assert.assertEquals("Ruukinkatu 2-4", property2.getValue()); } + public void testSerializationWithNullBeansAllowed() throws IOException, + ClassNotFoundException { + vaadin.setManager(null); + NestedMethodProperty<String> streetProperty = new NestedMethodProperty<String>( + vaadin, "manager.address.street", true); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + new ObjectOutputStream(baos).writeObject(streetProperty); + @SuppressWarnings("unchecked") + NestedMethodProperty<String> property2 = (NestedMethodProperty<String>) new ObjectInputStream( + new ByteArrayInputStream(baos.toByteArray())).readObject(); + + Assert.assertNull(property2.getValue()); + } + public void testIsReadOnly() { NestedMethodProperty<String> streetProperty = new NestedMethodProperty<String>( vaadin, "manager.address.street"); |