예제 #1
0
  @Test
  public void contextTest() {
    final CloudModel model =
        new CloudModel(DataManagerBuilder.create().withScheduler(new DirectScheduler()).build());
    model.connect(
        new KCallback<Throwable>() {
          @Override
          public void on(Throwable throwable) {
            if (throwable != null) {
              throwable.printStackTrace();
            } else {
              CloudUniverse universe = model.newUniverse();
              CloudView time0 = universe.time(0l);
              Node root = time0.createNode();

              // time0.setRoot(root, null);
              root.setName("root");
              Assert.assertEquals("root", root.getName());
              Node n1 = time0.createNode();
              n1.setName("n1");
              Node n2 = time0.createNode();
              n2.setName("n2");
              root.addChildren(n1);
              root.addChildren(n2);

              final int[] counter = {0};
              KModelContext context = model.createModelContext();
              context.listen(
                  new KCallback<long[]>() {
                    @Override
                    public void on(long[] o) {
                      counter[0]++;
                    }
                  });
              context.set(0, 0, 0, 0);
              Assert.assertEquals(counter[0], 1);
            }
          }
        });
  }
예제 #2
0
  @Test
  public void badLookupTest() {
    final CloudModel model =
        new CloudModel(DataManagerBuilder.create().withScheduler(new DirectScheduler()).build());
    model.connect(
        new KCallback<Throwable>() {
          @Override
          public void on(Throwable throwable) {
            if (throwable != null) {
              throwable.printStackTrace();
            } else {
              CloudUniverse universe = model.newUniverse();
              CloudView time0 = universe.time(0l);
              Node root = time0.createNode();

              //   time0.setRoot(root, null);
              root.setName("root");
              Assert.assertEquals("root", root.getName());
              Node n1 = time0.createNode();
              n1.setName("n1");
              Node n2 = time0.createNode();
              n2.setName("n2");
              root.addChildren(n1);
              root.addChildren(n2);

              time0.lookup(
                  42,
                  new KCallback<KObject>() {
                    @Override
                    public void on(KObject kObject) {
                      Assert.assertNull(kObject);
                    }
                  });
            }
          }
        });
  }
예제 #3
0
  @Test
  public void helloTest() {
    CloudModel universe =
        new CloudModel(DataManagerBuilder.create().withScheduler(new DirectScheduler()).build());
    universe.connect(
        new KCallback() {
          @Override
          public void on(Object o) {

            CloudUniverse dimension0 = universe.newUniverse();

            Assert.assertNotNull(dimension0);
            CloudView t0 = dimension0.time(0l);

            Assert.assertNotNull(t0);
            Assert.assertEquals(t0.now(), 0l);
            Node nodeT0 = t0.createNode();
            Assert.assertNotNull(nodeT0);
            Assert.assertNotNull(nodeT0.uuid());
            // assertNotNull(nodeT0.path());
            Assert.assertNull(nodeT0.getName());
            // Assert.assertEquals("name=", nodeT0.domainKey());
            nodeT0.setName("node0");
            Assert.assertEquals("node0", nodeT0.getName());
            // Assert.assertEquals("name=node0", nodeT0.domainKey());
            Assert.assertEquals(0l, nodeT0.now());
            //        assertNull(nodeT0.parentPath());
            Element child0 = t0.createElement();
            // TODO reInsert following test
            // Assert.assertNotNull(child0.timeTree());
            // Assert.assertTrue(child0.timeTree().last().equals(0l));
            // Assert.assertTrue(child0.timeTree().first().equals(0l));

            Node nodeT1 = t0.createNode();
            nodeT1.setName("n1");

            nodeT0.addChildren(nodeT1);

            //        assertTrue(nodeT1.path().endsWith("/children[name=n1]"));

            final int[] i = {0};
            final int[] j = {0};
            nodeT0.getChildren(
                new KCallback<Node[]>() {
                  @Override
                  public void on(Node[] n) {
                    for (int k = 0; k < n.length; k++) {
                      i[0]++;
                    }
                  }
                });

            //        Assert.assertEquals(1, i[0]);
            Node nodeT3 = t0.createNode();
            nodeT3.setName("n3");
            nodeT1.addChildren(nodeT3);

            i[0] = 0;
            j[0] = 0;
            nodeT0.visit(
                new KModelVisitor() {
                  @Override
                  public KVisitResult visit(KObject elem) {
                    i[0]++;
                    return KVisitResult.CONTINUE;
                  }
                },
                new KCallback<Throwable>() {
                  @Override
                  public void on(Throwable t) {
                    j[0]++;
                  }
                });
            //      Assert.assertEquals(2, i[0]);
            //      Assert.assertEquals(1, j[0]);

            Assert.assertEquals(
                "{\"universe\":1,\"time\":0,\"uuid\":1,\"data\":{\"name\":\"node0\",\"children\":[4]}}",
                nodeT0.toJSON());
            Assert.assertEquals(
                "{\"universe\":1,\"time\":0,\"uuid\":1,\"data\":{\"name\":\"node0\",\"children\":[4]}}",
                nodeT0.toString());
          }
        });
  }