javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/JSONTest.java
branchmodel
changeset 960 4887e22cb810
parent 954 6448c284fe21
child 963 62d77cc38117
     1.1 --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/JSONTest.java	Mon Apr 08 16:51:30 2013 +0200
     1.2 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/JSONTest.java	Tue Apr 09 10:06:19 2013 +0200
     1.3 @@ -17,9 +17,7 @@
     1.4   */
     1.5  package org.apidesign.bck2brwsr.htmlpage;
     1.6  
     1.7 -import java.util.Arrays;
     1.8  import java.util.Iterator;
     1.9 -import java.util.List;
    1.10  import org.apidesign.bck2brwsr.htmlpage.api.OnReceive;
    1.11  import org.apidesign.bck2brwsr.htmlpage.api.Page;
    1.12  import org.apidesign.bck2brwsr.htmlpage.api.Property;
    1.13 @@ -39,7 +37,8 @@
    1.14   */
    1.15  @Page(xhtml = "Empty.html", className = "JSONik", properties = {
    1.16      @Property(name = "fetched", type = PersonImpl.class),
    1.17 -    @Property(name = "fetchedCount", type = int.class)
    1.18 +    @Property(name = "fetchedCount", type = int.class),
    1.19 +    @Property(name = "fetchedSex", type = Sex.class, array = true)
    1.20  })
    1.21  public class JSONTest {
    1.22      private JSONik js;
    1.23 @@ -169,7 +168,7 @@
    1.24          }
    1.25          
    1.26          assert "Sitar".equals(p.getFirstName()) : "Expecting Sitar: " + p.getFirstName();
    1.27 -      //  assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
    1.28 +        assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
    1.29      }
    1.30      
    1.31      @OnReceive(url="/{url}?callme={me}", jsonp = "me")
    1.32 @@ -197,7 +196,7 @@
    1.33          }
    1.34          
    1.35          assert "Mitar".equals(p.getFirstName()) : "Unexpected: " + p.getFirstName();
    1.36 -      //  assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
    1.37 +        assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
    1.38      }
    1.39  
    1.40      @Http(@Http.Resource(
    1.41 @@ -220,7 +219,7 @@
    1.42          
    1.43          assert p != null : "We should get our person back: " + p;
    1.44          assert "Sitar".equals(p.getFirstName()) : "Expecting Sitar: " + p.getFirstName();
    1.45 -//        assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
    1.46 +        assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
    1.47      }
    1.48      
    1.49      @Http(@Http.Resource(
    1.50 @@ -243,7 +242,7 @@
    1.51          
    1.52          assert p != null : "We should get our person back: " + p;
    1.53          assert "Gitar".equals(p.getFirstName()) : "Expecting Gitar: " + p.getFirstName();
    1.54 -//        assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
    1.55 +        assert Sex.FEMALE.equals(p.getSex()) : "Expecting FEMALE: " + p.getSex();
    1.56      }
    1.57      
    1.58      @Http(@Http.Resource(
    1.59 @@ -269,7 +268,7 @@
    1.60          
    1.61          assert p != null : "We should get our person back: " + p;
    1.62          assert "Gitar".equals(p.getFirstName()) : "Expecting Gitar: " + p.getFirstName();
    1.63 -//        assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
    1.64 +        assert Sex.FEMALE.equals(p.getSex()) : "Expecting FEMALE: " + p.getSex();
    1.65      }
    1.66      
    1.67      @Http(@Http.Resource(
    1.68 @@ -292,6 +291,38 @@
    1.69          assert js.getFetchedCount() == 6 : "1 + 2 + 3 is " + js.getFetchedCount();
    1.70      }
    1.71      
    1.72 +    @OnReceive(url="/{url}")
    1.73 +    static void fetchPeopleSex(People p, JSONik model) {
    1.74 +        model.setFetchedCount(1);
    1.75 +        model.getFetchedSex().addAll(p.getSex());
    1.76 +    }
    1.77 +    
    1.78 +    
    1.79 +    @Http(@Http.Resource(
    1.80 +        content = "{'sex':['FEMALE', 'MALE', 'MALE']}", 
    1.81 +        path="/people.json", 
    1.82 +        mimeType = "application/json"
    1.83 +    ))
    1.84 +    @BrwsrTest public void loadAndParseArrayOfEnums() throws InterruptedException {
    1.85 +        if (js == null) {
    1.86 +            js = new JSONik();
    1.87 +            js.applyBindings();
    1.88 +        
    1.89 +            js.fetchPeopleSex("people.json");
    1.90 +        }
    1.91 +        
    1.92 +        if (0 == js.getFetchedCount()) {
    1.93 +            throw new InterruptedException();
    1.94 +        }
    1.95 +
    1.96 +        assert js.getFetchedCount() == 1 : "Loaded";
    1.97 +        
    1.98 +        assert js.getFetchedSex().size() == 3 : "Three values " + js.getFetchedSex();
    1.99 +        assert js.getFetchedSex().get(0) == Sex.FEMALE : "Female first " + js.getFetchedSex();
   1.100 +        assert js.getFetchedSex().get(1) == Sex.MALE : "male 2nd " + js.getFetchedSex();
   1.101 +        assert js.getFetchedSex().get(2) == Sex.MALE : "male 3rd " + js.getFetchedSex();
   1.102 +    }
   1.103 +    
   1.104      @Http(@Http.Resource(
   1.105          content = "[{'firstName': 'Gitar', 'sex': 'FEMALE'},"
   1.106          + "{'firstName': 'Peter', 'sex': 'MALE'}"
   1.107 @@ -315,7 +346,7 @@
   1.108          assert js.getFetchedCount() == 2 : "We got two values: " + js.getFetchedCount();
   1.109          assert p != null : "We should get our person back: " + p;
   1.110          assert "Gitar".equals(p.getFirstName()) : "Expecting Gitar: " + p.getFirstName();
   1.111 -//        assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
   1.112 +        assert Sex.FEMALE.equals(p.getSex()) : "Expecting FEMALE: " + p.getSex();
   1.113      }
   1.114  
   1.115      @Factory public static Object[] create() {