You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2009/08/03 19:07:22 UTC

svn commit: r800466 - /jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/NodeImplTest.java

Author: jukka
Date: Mon Aug  3 17:07:22 2009
New Revision: 800466

URL: http://svn.apache.org/viewvc?rev=800466&view=rev
Log:
JCR-1972: Preserving UUID and document version history on repository migration

Added the Node.addNodeWithUuid() tests contributed by Paco Avila.

Modified:
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/NodeImplTest.java

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/NodeImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/NodeImplTest.java?rev=800466&r1=800465&r2=800466&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/NodeImplTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/NodeImplTest.java Mon Aug  3 17:07:22 2009
@@ -22,9 +22,11 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.jcr.ItemExistsException;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.nodetype.NodeType;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.AccessControlPolicy;
 import javax.jcr.security.AccessControlPolicyIterator;
@@ -125,4 +127,30 @@
             changeReadPermission(principal, n, true);
         }
     }
-}
\ No newline at end of file
+
+    public void testAddNodeUuid() throws RepositoryException, NotExecutableException {
+        String uuid = "f81d4fae-7dec-11d0-a765-00a0c91e6bf6";
+        Node n = testRootNode.addNode(nodeName1);
+        Node testNode = ((NodeImpl) n).addNodeWithUuid(nodeName2, uuid);
+        testNode.addMixin(NodeType.MIX_REFERENCEABLE);
+        testRootNode.getSession().save();
+        assertEquals(
+                "Node identifier should be: " + uuid,
+                uuid, testNode.getIdentifier());
+    }
+
+    public void testAddNodeUuidCollision() throws RepositoryException, NotExecutableException {
+        String uuid = "f81d4fae-7dec-11d0-a765-00a0c91e6bf6";
+        Node n = testRootNode.addNode(nodeName1);
+        Node testNode1 = ((NodeImpl) n).addNodeWithUuid(nodeName2, uuid);
+        testNode1.addMixin(NodeType.MIX_REFERENCEABLE);
+        testRootNode.getSession().save();
+
+        try {
+            ((NodeImpl) n).addNodeWithUuid(nodeName2, uuid);
+            fail("UUID collision not detected by addNodeWithUuid");
+        } catch (ItemExistsException e) {
+        }
+    }
+
+}