for (int i = 0; i < watchers.length; i++) {
zk.setData("/foo-" + i, ("foodata2-" + i).getBytes(), -1);
zk.setData("/foo-" + i, ("foodata3-" + i).getBytes(), -1);
}
for (int i = 0; i < watchers.length; i++) {
WatchedEvent event =
watchers[i].events.poll(10, TimeUnit.SECONDS);
Assert.assertEquals("/foo-" + i, event.getPath());
Assert.assertEquals(EventType.NodeDataChanged, event.getType());
Assert.assertEquals(KeeperState.SyncConnected, event.getState());
// small chance that an unexpected message was delivered
// after this check, but we would catch that next time
// we check events
Assert.assertEquals(0, watchers[i].events.size());
}
//
// test get/exists with single set of watchers
// get/exists together
//
for (int i = 0; i < watchers.length; i++) {
Assert.assertNotNull(zk.getData("/foo-" + i, watchers[i], stat));
Assert.assertNotNull(zk.exists("/foo-" + i, watchers[i]));
}
// trigger the watches
for (int i = 0; i < watchers.length; i++) {
zk.setData("/foo-" + i, ("foodata4-" + i).getBytes(), -1);
zk.setData("/foo-" + i, ("foodata5-" + i).getBytes(), -1);
}
for (int i = 0; i < watchers.length; i++) {
WatchedEvent event =
watchers[i].events.poll(10, TimeUnit.SECONDS);
Assert.assertEquals("/foo-" + i, event.getPath());
Assert.assertEquals(EventType.NodeDataChanged, event.getType());
Assert.assertEquals(KeeperState.SyncConnected, event.getState());
// small chance that an unexpected message was delivered
// after this check, but we would catch that next time
// we check events
Assert.assertEquals(0, watchers[i].events.size());
}
//
// test get/exists with two sets of watchers
//
for (int i = 0; i < watchers.length; i++) {
Assert.assertNotNull(zk.getData("/foo-" + i, watchers[i], stat));
Assert.assertNotNull(zk.exists("/foo-" + i, watchers2[i]));
}
// trigger the watches
for (int i = 0; i < watchers.length; i++) {
zk.setData("/foo-" + i, ("foodata6-" + i).getBytes(), -1);
zk.setData("/foo-" + i, ("foodata7-" + i).getBytes(), -1);
}
for (int i = 0; i < watchers.length; i++) {
WatchedEvent event =
watchers[i].events.poll(10, TimeUnit.SECONDS);
Assert.assertEquals("/foo-" + i, event.getPath());
Assert.assertEquals(EventType.NodeDataChanged, event.getType());
Assert.assertEquals(KeeperState.SyncConnected, event.getState());
// small chance that an unexpected message was delivered
// after this check, but we would catch that next time
// we check events
Assert.assertEquals(0, watchers[i].events.size());
// watchers2
WatchedEvent event2 =
watchers2[i].events.poll(10, TimeUnit.SECONDS);
Assert.assertEquals("/foo-" + i, event2.getPath());
Assert.assertEquals(EventType.NodeDataChanged, event2.getType());
Assert.assertEquals(KeeperState.SyncConnected, event2.getState());
// small chance that an unexpected message was delivered
// after this check, but we would catch that next time
// we check events
Assert.assertEquals(0, watchers2[i].events.size());