You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2006/03/31 14:15:22 UTC
svn commit: r390402 -
/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/core/query/DerefTest.java
Author: mreutegg
Date: Fri Mar 31 04:15:17 2006
New Revision: 390402
URL: http://svn.apache.org/viewcvs?rev=390402&view=rev
Log:
Add jcr:deref test case that checks dereferencing into version storage
Modified:
jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/core/query/DerefTest.java
Modified: jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/core/query/DerefTest.java
URL: http://svn.apache.org/viewcvs/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/core/query/DerefTest.java?rev=390402&r1=390401&r2=390402&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/core/query/DerefTest.java (original)
+++ jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/core/query/DerefTest.java Fri Mar 31 04:15:17 2006
@@ -17,6 +17,11 @@
import javax.jcr.Node;
import javax.jcr.RepositoryException;
+import javax.jcr.NodeIterator;
+import javax.jcr.query.QueryManager;
+import javax.jcr.query.Query;
+import javax.jcr.query.QueryResult;
+import javax.jcr.version.Version;
/**
* Tests the jcr:deref() function.
@@ -108,5 +113,32 @@
executeXPathQuery(testPath + "/people/*/jcr:deref(@worksfor, '*')[jcr:contains(.,'ballmer')]",
new Node[]{microsoft});
+ }
+
+ /**
+ * Checks if jcr:deref works when dereferencing into the version storage.
+ */
+ public void testDerefToVersionNode() throws RepositoryException {
+ Node referenced = testRootNode.addNode(nodeName1);
+ referenced.addMixin(mixVersionable);
+ testRootNode.save();
+
+ Version version = referenced.checkin();
+ Node referencedVersionNode = version.getNode(jcrFrozenNode);
+ Node referencer = testRootNode.addNode(nodeName2);
+ referencer.setProperty(propertyName1, referencedVersionNode);
+ testRootNode.save();
+
+ String query = "/" + testRoot + "/*[@" + propertyName1 +
+ "]/jcr:deref(@" + propertyName1 + ",'*')";
+ QueryManager qm = superuser.getWorkspace().getQueryManager();
+ Query q = qm.createQuery(query, Query.XPATH);
+ QueryResult qr = q.execute();
+ NodeIterator ni = qr.getNodes();
+ assertEquals("Must find one result in query", 1, ni.getSize());
+ while (ni.hasNext()) {
+ Node node = (Node) ni.next();
+ assertTrue(node.getProperty("jcr:frozenUuid").getString().equals(referenced.getUUID()));
+ }
}
}