From 9cf3566409ab957139fd6cff2d9b3ea850dab7d1 Mon Sep 17 00:00:00 2001 From: apanizo Date: Tue, 26 May 2015 14:03:20 +0200 Subject: When doing data binding over a list attribute, return an empty list or null accordingly. --- .../query/client/dbinding/DataBindingTestJre.java | 42 ++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) (limited to 'gwtquery-core/src/test') diff --git a/gwtquery-core/src/test/java/com/google/gwt/query/client/dbinding/DataBindingTestJre.java b/gwtquery-core/src/test/java/com/google/gwt/query/client/dbinding/DataBindingTestJre.java index 50123b80..f276f034 100644 --- a/gwtquery-core/src/test/java/com/google/gwt/query/client/dbinding/DataBindingTestJre.java +++ b/gwtquery-core/src/test/java/com/google/gwt/query/client/dbinding/DataBindingTestJre.java @@ -26,6 +26,7 @@ import com.google.gwt.query.client.builders.JsonBuilder; import com.google.gwt.query.client.builders.Name; import java.util.Arrays; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -165,6 +166,7 @@ public class DataBindingTestJre extends GWTTestCase { int getAge(); String getName(); + List getPhones(); GAddress address(); } @@ -173,9 +175,13 @@ public class DataBindingTestJre extends GWTTestCase { + " 'email': 'foo@bar.com', " + " 'age': 27, " + " 'name': 'Foo Bar', " + + " 'phones': [ " + + " '9166566'," + + " '65443333'" + + " ]," + " 'address': {" + " 'street': 'Street Foo N6', " - + " 'phone': '670'" + + " 'number': '670'" + " }" + "}"; @@ -189,7 +195,7 @@ public class DataBindingTestJre extends GWTTestCase { assertEquals("Foo Bar", entity.getName()); assertNotNull(entity.address()); assertEquals("Street Foo N6", entity.address().street()); - assertNotNull(entity.address().get("phone")); + assertNotNull(entity.address().get("number")); } // Nested strict not implemented in JS @@ -211,4 +217,36 @@ public class DataBindingTestJre extends GWTTestCase { assertNull(entity.address().get("phone")); } } + + public void test_return_empty_list_when_array_isEmpty() { + //GIVEN a JSON representation of a user without phones + GUser user = GQ.create(GUser.class); + user.set("email", "a@b.com"); + user.set("name", "Random Name"); + user.set("phones", Collections.emptyList()); + String json = user.toJson(); + + //WHEN fetching that user + GUser retrievedUser = GQ.create(GUser.class); + retrievedUser.parse(json, true); + + //THEN + assertEquals(0, retrievedUser.getPhones().size()); + } + + public void test_return_null_when_list_is_not_specified() { + //GIVEN a JSON representation of a user + GUser user = GQ.create(GUser.class); + user.set("email", "a@b.com"); + user.set("name", "Random Name"); + String json = user.toJson(); + + //WHEN fetching that user + GUser retrievedUser = GQ.create(GUser.class); + retrievedUser.parse(json, true); + + //THEN + List phones = retrievedUser.getPhones(); + assertNull(phones); + } } \ No newline at end of file -- cgit v1.2.3