diff -r 28aae214c202 -r 1e2b0dcc8326 javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/JSONTest.java --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/JSONTest.java Sun Apr 07 19:29:55 2013 +0200 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/JSONTest.java Sun Apr 07 21:41:57 2013 +0200 @@ -127,14 +127,12 @@ @OnReceive(url="/{url}") static void fetch(Person p, JSONik model) { model.setFetched(p); - throw new IllegalStateException("Got him: " + p); } @OnReceive(url="/{url}") static void fetchArray(Person[] p, JSONik model) { model.setFetchedCount(p.length); model.setFetched(p[0]); - throw new IllegalStateException("Got in array him: " + Arrays.asList(p)); } @OnReceive(url="/{url}") @@ -142,6 +140,15 @@ model.setFetchedCount(p.getInfo().size()); model.setFetched(p.getInfo().get(0)); } + + @OnReceive(url="/{url}") + static void fetchPeopleAge(People p, JSONik model) { + int sum = 0; + for (int a : p.getAge()) { + sum += a; + } + model.setFetchedCount(sum); + } @Http(@Http.Resource( content = "{'firstName': 'Sitar', 'sex': 'MALE'}", @@ -161,7 +168,6 @@ throw new InterruptedException(); } - assert p != null : "We should get our person back: " + p; assert "Sitar".equals(p.getFirstName()) : "Expecting Sitar: " + p.getFirstName(); // assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex(); } @@ -239,6 +245,26 @@ } @Http(@Http.Resource( + content = "{'age':[1, 2, 3]}", + path="/people.json", + mimeType = "application/json" + )) + @BrwsrTest public void loadAndParseArrayOfIntegers() throws InterruptedException { + if (js == null) { + js = new JSONik(); + js.applyBindings(); + + js.fetchPeopleAge("people.json"); + } + + if (0 == js.getFetchedCount()) { + throw new InterruptedException(); + } + + assert js.getFetchedCount() == 6 : "1 + 2 + 3 is " + js.getFetchedCount(); + } + + @Http(@Http.Resource( content = "[{'firstName': 'Gitar', 'sex': 'FEMALE'}," + "{'firstName': 'Peter', 'sex': 'MALE'}" + "]",