You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ca...@apache.org on 2015/08/25 06:08:29 UTC

[09/50] curator git commit: Refactoring and more tests

Refactoring and more tests


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/12baea34
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/12baea34
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/12baea34

Branch: refs/heads/CURATOR-167
Commit: 12baea342d2b35c48bfb17327b0736a179d04d32
Parents: 35ec01c
Author: randgalt <ra...@apache.org>
Authored: Tue May 19 15:26:06 2015 -0700
Committer: randgalt <ra...@apache.org>
Committed: Tue May 19 15:26:06 2015 -0700

----------------------------------------------------------------------
 .../java/org/apache/curator/utils/ZKPaths.java  | 13 ++-
 .../curator/framework/imps/TestFramework.java   | 89 +++++++++++++++++++-
 2 files changed, 93 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/12baea34/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java b/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java
index 242e4b7..13b0cba 100644
--- a/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java
+++ b/curator-client/src/main/java/org/apache/curator/utils/ZKPaths.java
@@ -53,17 +53,14 @@ public class ZKPaths
 
         static
         {
-            CreateMode localCreateMode = CreateMode.PERSISTENT;
-            for ( CreateMode createMode : CreateMode.class.getEnumConstants() )
+            CreateMode localCreateMode;
+            try
             {
-                if ( createMode.name().equals("CONTAINER") )
-                {
-                    localCreateMode = createMode;
-                    break;
-                }
+                localCreateMode = CreateMode.valueOf("CONTAINER");
             }
-            if ( localCreateMode == CreateMode.PERSISTENT )
+            catch ( IllegalArgumentException ignore )
             {
+                localCreateMode = CreateMode.PERSISTENT;
                 log.warn("The version of ZooKeeper being used doesn't support Container nodes. CreateMode.PERSISTENT will be used instead");
             }
             containerCreateMode = localCreateMode;

http://git-wip-us.apache.org/repos/asf/curator/blob/12baea34/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java
index ac21172..15db5de 100644
--- a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java
+++ b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFramework.java
@@ -419,13 +419,100 @@ public class TestFramework extends BaseClassForTests
     }
 
     @Test
+    public void testOverrideCreateParentContainers() throws Exception
+    {
+        CuratorFramework client = CuratorFrameworkFactory.builder()
+            .connectString(server.getConnectString())
+            .retryPolicy(new RetryOneTime(1))
+            .dontUseContainerParents()
+            .build();
+        try
+        {
+            client.start();
+            client.create().creatingParentContainersIfNeeded().forPath("/one/two/three", "foo".getBytes());
+            byte[] data = client.getData().forPath("/one/two/three");
+            Assert.assertEquals(data, "foo".getBytes());
+
+            client.delete().forPath("/one/two/three");
+            new Timing().sleepABit();
+
+            Assert.assertNotNull(client.checkExists().forPath("/one/two"));
+            new Timing().sleepABit();
+            Assert.assertNotNull(client.checkExists().forPath("/one"));
+        }
+        finally
+        {
+            client.close();
+        }
+    }
+
+    @Test
+    public void testOverrideEnsureParentContainers() throws Exception
+    {
+        CuratorFramework client = CuratorFrameworkFactory.builder()
+            .connectString(server.getConnectString())
+            .retryPolicy(new RetryOneTime(1))
+            .dontUseContainerParents()
+            .build();
+        try
+        {
+            client.start();
+            EnsurePath ensurePath = client.newNamespaceAwareEnsurePathContainers("/one/two");
+            ensurePath.ensure(client.getZookeeperClient());
+            client.create().creatingParentContainersIfNeeded().forPath("/one/two/three", "foo".getBytes());
+            byte[] data = client.getData().forPath("/one/two/three");
+            Assert.assertEquals(data, "foo".getBytes());
+
+            client.delete().forPath("/one/two/three");
+            new Timing().sleepABit();
+
+            Assert.assertNotNull(client.checkExists().forPath("/one/two"));
+            new Timing().sleepABit();
+            Assert.assertNotNull(client.checkExists().forPath("/one"));
+        }
+        finally
+        {
+            client.close();
+        }
+    }
+
+    @Test
+    public void testEnsureParentContainers() throws Exception
+    {
+        CuratorFramework client = CuratorFrameworkFactory.builder()
+            .connectString(server.getConnectString())
+            .retryPolicy(new RetryOneTime(1))
+            .build();
+        try
+        {
+            client.start();
+            EnsurePath ensurePath = client.newNamespaceAwareEnsurePathContainers("/one/two");
+            ensurePath.ensure(client.getZookeeperClient());
+            client.create().creatingParentContainersIfNeeded().forPath("/one/two/three", "foo".getBytes());
+            byte[] data = client.getData().forPath("/one/two/three");
+            Assert.assertEquals(data, "foo".getBytes());
+
+            client.delete().forPath("/one/two/three");
+            new Timing().sleepABit();
+
+            Assert.assertNull(client.checkExists().forPath("/one/two"));
+            new Timing().sleepABit();
+            Assert.assertNull(client.checkExists().forPath("/one"));
+        }
+        finally
+        {
+            client.close();
+        }
+    }
+
+    @Test
     public void testCreateParentContainers() throws Exception
     {
         CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder();
         CuratorFramework client = builder.connectString(server.getConnectString()).retryPolicy(new RetryOneTime(1)).build();
-        client.start();
         try
         {
+            client.start();
             client.create().creatingParentContainersIfNeeded().forPath("/one/two/three", "foo".getBytes());
             byte[] data = client.getData().forPath("/one/two/three");
             Assert.assertEquals(data, "foo".getBytes());