Notification of changes may be delivered asynchronously by knockout
authorJaroslav Tulach <jtulach@netbeans.org>
Mon, 08 Feb 2016 20:42:23 +0100
changeset 10478ac11c0b7767
parent 1046 7c129f8897a0
child 1048 acc9ba4af659
Notification of changes may be delivered asynchronously by knockout
json-tck/src/main/java/net/java/html/json/tests/KnockoutTest.java
     1.1 --- a/json-tck/src/main/java/net/java/html/json/tests/KnockoutTest.java	Thu Jan 21 18:54:29 2016 +0100
     1.2 +++ b/json-tck/src/main/java/net/java/html/json/tests/KnockoutTest.java	Mon Feb 08 20:42:23 2016 +0100
     1.3 @@ -168,23 +168,45 @@
     1.4          }
     1.5      }
     1.6      
     1.7 -    @KOTest public void rawObject() {
     1.8 -        final BrwsrCtx ctx = newContext();
     1.9 -        Person p1 = Models.bind(new Person(), ctx);
    1.10 -        p1.setFirstName("Jarda");
    1.11 -        p1.setLastName("Tulach");
    1.12 -        Object raw = Models.toRaw(p1);
    1.13 -        Person p2 = Models.fromRaw(ctx, Person.class, raw);
    1.14 -        
    1.15 -        assertEquals(p2.getFirstName(), "Jarda", "First name");
    1.16 -        assertEquals(p2.getLastName(), "Tulach", "Last name");
    1.17 +    @KOTest public void rawObject() throws Exception {
    1.18 +        if (js == null) {
    1.19 +            final BrwsrCtx ctx = newContext();
    1.20 +            Person p1 = Models.bind(new Person(), ctx);
    1.21 +            p1.setFirstName("Jarda");
    1.22 +            p1.setLastName("Tulach");
    1.23 +            Object raw = Models.toRaw(p1);
    1.24 +            Person p2 = Models.fromRaw(ctx, Person.class, raw);
    1.25  
    1.26 -        p2.setFirstName("Jirka");
    1.27 -        assertEquals(p2.getFirstName(), "Jirka", "First name updated");
    1.28 -        assertEquals(p1.getFirstName(), "Jirka", "First name updated in original object");
    1.29 +            assertEquals(p2.getFirstName(), "Jarda", "First name");
    1.30 +            assertEquals(p2.getLastName(), "Tulach", "Last name");
    1.31  
    1.32 -        p1.setFirstName("Ondra");
    1.33 -        assertEquals(p1.getFirstName(), "Ondra", "1st name updated in original object");
    1.34 +            p2.setFirstName("Jirka");
    1.35 +            assertEquals(p2.getFirstName(), "Jirka", "First name updated");
    1.36 +
    1.37 +            js = new KnockoutModel();
    1.38 +            js.getPeople().add(p1);
    1.39 +            js.getPeople().add(p2);
    1.40 +        }
    1.41 +
    1.42 +        Person p1 = js.getPeople().get(0);
    1.43 +        Person p2 = js.getPeople().get(1);
    1.44 +
    1.45 +        if (js.getPeople().size() == 2) {
    1.46 +            if (!"Jirka".equals(p1.getFirstName())) {
    1.47 +                throw new InterruptedException();
    1.48 +            }
    1.49 +
    1.50 +            assertEquals(p1.getFirstName(), "Jirka", "First name updated in original object");
    1.51 +
    1.52 +            p1.setFirstName("Ondra");
    1.53 +            assertEquals(p1.getFirstName(), "Ondra", "1st name updated in original object");
    1.54 +            
    1.55 +            js.getPeople().add(p1);
    1.56 +        }
    1.57 +
    1.58 +        if (!"Ondra".equals(p2.getFirstName())) {
    1.59 +            throw new InterruptedException();
    1.60 +        }
    1.61          assertEquals(p2.getFirstName(), "Ondra", "1st name updated in copied object");
    1.62      }
    1.63