From dd1b81a2c25cc4413eab462c3724e2dba6b87f84 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 23 Aug 2016 12:06:16 +0300 Subject: Make binder set null values correctly Change-Id: I5edf6136f155a9ee5dc5fd6286004f4e8cd8c3db --- .../src/test/java/com/vaadin/data/BinderTest.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'server/src/test/java') diff --git a/server/src/test/java/com/vaadin/data/BinderTest.java b/server/src/test/java/com/vaadin/data/BinderTest.java index a93916f729..331d4d30de 100644 --- a/server/src/test/java/com/vaadin/data/BinderTest.java +++ b/server/src/test/java/com/vaadin/data/BinderTest.java @@ -179,6 +179,29 @@ public class BinderTest { Assert.assertEquals(fieldValue, person.getFirstName()); } + @Test + public void save_null_beanIsUpdated() { + Binder binder = new Binder<>(); + binder.forField(nameField).withConverter(fieldValue -> { + if ("null".equals(fieldValue)) { + return null; + } else { + return fieldValue; + } + }, model -> { + return model; + }).bind(Person::getFirstName, Person::setFirstName); + + Person person = new Person(); + person.setFirstName("foo"); + + nameField.setValue("null"); + + binder.save(person); + + Assert.assertNull(person.getFirstName()); + } + @Test public void load_bound_fieldValueIsUpdated() { Binder binder = new Binder<>(); -- cgit v1.2.3