@Test public void testUpdate() throws InterruptedException, KeeperException { final ZooKeeperPlus zk = getZk(); final String nodePath = ZkPath.append(getRoot(), "watchedNode"); zk.create(nodePath, "0".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); final WatchedInt wi = new WatchedInt(zk, nodePath, true); assertEquals(Integer.valueOf(0), wi.get()); WatchedNodeUpdater<Integer> incrementer = current -> { if (current == null) { return 0; } else { return current + 1; } }; final int finalValue = 64; for (int i = 0; i < finalValue; ++i) { wi.update(incrementer); } WaitUntil.orDie(() -> Integer.valueOf(finalValue).equals(wi.get())); assertEquals(Integer.valueOf(finalValue), wi.get()); }