diff options
author | Denis Anisimov <denis@vaadin.com> | 2016-10-25 17:15:35 +0300 |
---|---|---|
committer | Denis Anisimov <denis@vaadin.com> | 2016-10-26 12:32:16 +0300 |
commit | f981521a52d4ee386b6d2ba5133fd1c1cd0c5450 (patch) | |
tree | 27f420472e762ccd468d413a4435a57ed3e49517 /server/src/test | |
parent | 3d2c66fe402ac109ef121b8517860c6dcb770d3d (diff) | |
download | vaadin-framework-f981521a52d4ee386b6d2ba5133fd1c1cd0c5450.tar.gz vaadin-framework-f981521a52d4ee386b6d2ba5133fd1c1cd0c5450.zip |
Disable default null representation one way converter.
Fixes vaadin/framework8-issues/#404
Change-Id: I9e07a7de5f67bbd7a5a59cf10cc1a8579cdfbbad
Diffstat (limited to 'server/src/test')
-rw-r--r-- | server/src/test/java/com/vaadin/data/BinderTest.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/server/src/test/java/com/vaadin/data/BinderTest.java b/server/src/test/java/com/vaadin/data/BinderTest.java index eb686acf9b..9d8e05feb1 100644 --- a/server/src/test/java/com/vaadin/data/BinderTest.java +++ b/server/src/test/java/com/vaadin/data/BinderTest.java @@ -10,6 +10,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import com.vaadin.data.util.converter.StringToIntegerConverter; +import com.vaadin.data.validator.NotNullValidator; import com.vaadin.tests.data.bean.Person; import com.vaadin.tests.data.bean.Sex; import com.vaadin.ui.TextField; @@ -253,4 +255,65 @@ public class BinderTest extends BinderTestBase<Binder<Person>, Person> { Assert.assertEquals("Field value was not set correctly", item.getFirstName(), nameField.getValue()); } + + @Test + public void withConverter_disablesDefaulNullRepresentation() { + Integer customNullConverter = 0; + binder.forField(ageField).withNullRepresentation("foo") + .withConverter(new StringToIntegerConverter("")) + .withConverter(age -> age, + age -> age == null ? customNullConverter : age) + .bind(Person::getSalary, Person::setSalary); + binder.bind(item); + + Assert.assertEquals(customNullConverter.toString(), + ageField.getValue()); + + Integer salary = 11; + ageField.setValue(salary.toString()); + Assert.assertEquals(11, salary.intValue()); + } + + @Test + public void beanBinder_nullRepresentationIsNotDisabled() { + BeanBinder<Person> binder = new BeanBinder<>(Person.class); + binder.forField(nameField).bind("firstName"); + + Person person = new Person(); + binder.bind(person); + + Assert.assertEquals("", nameField.getValue()); + } + + @Test + public void beanBinder_withConverter_nullRepresentationIsNotDisabled() { + String customNullPointerRepresentation = "foo"; + BeanBinder<Person> binder = new BeanBinder<>(Person.class); + binder.forField(nameField) + .withConverter(value -> value, value -> value == null + ? customNullPointerRepresentation : value) + .bind("firstName"); + + Person person = new Person(); + binder.bind(person); + + Assert.assertEquals(customNullPointerRepresentation, + nameField.getValue()); + } + + @Test + public void withValidator_doesNotDisablesDefaulNullRepresentation() { + String nullRepresentation = "foo"; + binder.forField(nameField).withNullRepresentation(nullRepresentation) + .withValidator(new NotNullValidator("")) + .bind(Person::getFirstName, Person::setFirstName); + item.setFirstName(null); + binder.bind(item); + + Assert.assertEquals(nullRepresentation, nameField.getValue()); + + String newValue = "bar"; + nameField.setValue(newValue); + Assert.assertEquals(newValue, item.getFirstName()); + } }
\ No newline at end of file |