aboutsummaryrefslogtreecommitdiffstats
path: root/server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java
diff options
context:
space:
mode:
authorMatti Hosio <mhosio@vaadin.com>2013-07-15 15:56:07 +0300
committerVaadin Code Review <review@vaadin.com>2013-08-09 08:13:00 +0000
commit9f126db566b14afaa8e025056539a38a5d7b9904 (patch)
treeb25d791c4c8a8ddacaf0d85d12cb796ceeb4a4a6 /server/tests/src/com/vaadin/data/util/NestedMethodPropertyTest.java
parent437b6de4eea416317bd79399a5dde9870b306975 (diff)
downloadvaadin-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.java31
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");