private CuratorTransactionResult makeCuratorResult(OpResult opResult, CuratorMultiTransactionRecord.TypeAndPath metadata) { String resultPath = null; Stat resultStat = null; if (opResult is OpResult.CreateResult) { OpResult.CreateResult createResult = (OpResult.CreateResult)opResult; resultPath = client.unfixForNamespace(createResult.getPath()); } else if (opResult is OpResult.SetDataResult) { OpResult.SetDataResult setDataResult = (OpResult.SetDataResult)opResult; resultStat = setDataResult.getStat(); } return(new CuratorTransactionResult(metadata.type, metadata.forPath, resultPath, resultStat)); }
public void testTransactionBuilder() { IList <OpResult> results = zk.transaction().create("/t1", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT).create("/t1/child", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT).create("/t2", null, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL).commit(); Assert.assertEquals(3, results.Count); foreach (OpResult r in results) { OpResult.CreateResult c = (OpResult.CreateResult)r; Assert.assertTrue(c.getPath().Contains("/t")); Assert.assertNotNull(c.ToString()); } Assert.assertNotNull(zk.exists("/t1", false)); Assert.assertNotNull(zk.exists("/t1/child", false)); Assert.assertNotNull(zk.exists("/t2", false)); results = zk.transaction().check("/t1", 0).check("/t1/child", 0).check("/t2", 0).commit(); Assert.assertEquals(3, results.Count); foreach (OpResult r in results) { OpResult.CheckResult c = (OpResult.CheckResult)r; Assert.assertNotNull(c.ToString()); } try { results = zk.transaction().check("/t1", 0).check("/t1/child", 0).check("/t2", 1).commit(); Assert.fail(); } catch (KeeperException.BadVersionException) { // expected } results = zk.transaction().check("/t1", 0).setData("/t1", new byte[0], 0).commit(); Assert.assertEquals(2, results.Count); foreach (OpResult r in results) { Assert.assertNotNull(r.ToString()); } try { results = zk.transaction().check("/t1", 1).setData("/t1", new byte[0], 2).commit(); Assert.fail(); } catch (KeeperException.BadVersionException) { // expected } results = zk.transaction().check("/t1", 1).check("/t1/child", 0).check("/t2", 0).commit(); Assert.assertEquals(3, results.Count); results = zk.transaction().delete("/t2", -1).delete("/t1/child", -1).commit(); Assert.assertEquals(2, results.Count); foreach (OpResult r in results) { OpResult.DeleteResult d = (OpResult.DeleteResult)r; Assert.assertNotNull(d.ToString()); } Assert.assertNotNull(zk.exists("/t1", false)); Assert.assertNull(zk.exists("/t1/child", false)); Assert.assertNull(zk.exists("/t2", false)); }