@Test(timeout = 30000)
public void testMultiWithContainer()
throws KeeperException, InterruptedException {
Op createContainer = Op.create("/foo", new byte[0],
ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.CONTAINER);
Op createChild = Op.create("/foo/bar", new byte[0],
ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
zk.multi(Arrays.asList(createContainer, createChild));
DataTree dataTree = serverFactory.getZooKeeperServer().getZKDatabase().getDataTree();
Assert.assertEquals(dataTree.getContainers().size(), 1);
zk.delete("/foo/bar", -1);
ContainerManager containerManager = new ContainerManager(serverFactory.getZooKeeperServer()
.getZKDatabase(), serverFactory.getZooKeeperServer().firstProcessor, 1, 100);
containerManager.checkContainers();
Thread.sleep(1000);
Assert.assertNull("Container should have been deleted", zk.exists("/foo", false));
createContainer = Op.create("/foo", new byte[0],
ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.CONTAINER);
createChild = Op.create("/foo/bar", new byte[0],
ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
Op deleteChild = Op.delete("/foo/bar", -1);
zk.multi(Arrays.asList(createContainer, createChild, deleteChild));
containerManager.checkContainers();
Thread.sleep(1000);
Assert.assertNull("Container should have been deleted", zk.exists("/foo", false));
}