@Test public void testIt() throws Exception { final ZooKeeperPlus zk = getZk(); final String nodePath = ZkPath.append(getRoot(), "watchedNode"); zk.create(nodePath, "1".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); final WatchedInt wi = new WatchedInt(zk, nodePath, true); assertEquals(Integer.valueOf(1), wi.get()); zk.setData(nodePath, "55".getBytes(), -1); WaitUntil.orDie(() -> { Integer v = wi.get(); return v != null && v == 55; }); assertEquals(Integer.valueOf(55), wi.get()); zk.setData(nodePath, null, -1); WaitUntil.orDie(() -> wi.get() == null); assertNull(wi.get()); final WatchedInt wi2 = new WatchedInt(zk, nodePath, true); WaitUntil.orDie(() -> wi2.get() == null); assertNull(wi2.get()); wi2.set(22); WaitUntil.orDie(() -> { Integer v = wi.get(); Integer v2 = wi2.get(); return v2 != null && v2 == 22 && v != null && v == 22; }); assertEquals(Integer.valueOf(22), wi2.get()); assertEquals(Integer.valueOf(22), wi.get()); }