Don't replace Strings with nulls
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 22 Apr 2013 21:36:07 +0200
changeset 19744b2ae904f8
parent 18 e4fc249046cf
child 20 21b5d931f4c1
Don't replace Strings with nulls
json/src/main/java/org/apidesign/html/json/impl/JSONList.java
json/src/test/java/org/apidesign/html/json/impl/JSONListTest.java
     1.1 --- a/json/src/main/java/org/apidesign/html/json/impl/JSONList.java	Mon Apr 22 21:19:58 2013 +0200
     1.2 +++ b/json/src/main/java/org/apidesign/html/json/impl/JSONList.java	Mon Apr 22 21:36:07 2013 +0200
     1.3 @@ -162,10 +162,13 @@
     1.4          return ko;
     1.5      }
     1.6  
     1.7 -    public Object koData() {
     1.8 +    final Object koData() {
     1.9          Object[] arr = toArray();
    1.10          for (int i = 0; i < arr.length; i++) {
    1.11 -            arr[i] = WrapperObject.find(arr[i]);
    1.12 +            Object r = WrapperObject.find(arr[i]);
    1.13 +            if (r != null) {
    1.14 +                arr[i] = r;
    1.15 +            }
    1.16          }
    1.17          return model.wrapArray(arr);
    1.18      }
     2.1 --- a/json/src/test/java/org/apidesign/html/json/impl/JSONListTest.java	Mon Apr 22 21:19:58 2013 +0200
     2.2 +++ b/json/src/test/java/org/apidesign/html/json/impl/JSONListTest.java	Mon Apr 22 21:36:07 2013 +0200
     2.3 @@ -83,6 +83,24 @@
     2.4          assertEquals(this, arr[0], "I am the right model");
     2.5      }
     2.6      
     2.7 +    @Test public void testNicknames() {
     2.8 +        Context c = ContextBuilder.create().withTechnology(this).build();
     2.9 +        
    2.10 +        People people = new People(c);
    2.11 +        people.getNicknames().add("One");
    2.12 +        people.getNicknames().add("Two");
    2.13 +        
    2.14 +        PropertyBinding pb = bindings.get("nicknames");
    2.15 +        assertNotNull(pb, "Binding for info found");
    2.16 +        
    2.17 +        Object real = pb.getValue();
    2.18 +        assertTrue(real instanceof Object[], "It is an array: " + real);
    2.19 +        Object[] arr = (Object[])real;
    2.20 +        assertEquals(arr.length, 2, "Length two");
    2.21 +        assertEquals(arr[0], "One", "Text should be in the model");
    2.22 +        assertEquals(arr[1], "Two", "2nd text in the model");
    2.23 +    }
    2.24 +    
    2.25      @Test public void testConvertorOnAnArrayWithWrapper() {
    2.26          this.replaceArray = true;
    2.27          Context c = ContextBuilder.create().withTechnology(this).build();