aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/test
diff options
context:
space:
mode:
authorDenis Anisimov <denis@vaadin.com>2016-10-25 17:15:35 +0300
committerDenis Anisimov <denis@vaadin.com>2016-10-26 12:32:16 +0300
commitf981521a52d4ee386b6d2ba5133fd1c1cd0c5450 (patch)
tree27f420472e762ccd468d413a4435a57ed3e49517 /server/src/test
parent3d2c66fe402ac109ef121b8517860c6dcb770d3d (diff)
downloadvaadin-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.java63
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