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/08/03 16:08:55 UTC

svn commit: r428408 - /jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/query/DerefQueryLevel1Test.java

Author: mreutegg
Date: Thu Aug  3 07:08:54 2006
New Revision: 428408

URL: http://svn.apache.org/viewvc?rev=428408&view=rev
Log:
JCR-527: TCK: DerefQueryLevel1Test requires support for optional jcr:deref function

Modified:
    jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/query/DerefQueryLevel1Test.java

Modified: jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/query/DerefQueryLevel1Test.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/query/DerefQueryLevel1Test.java?rev=428408&r1=428407&r2=428408&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/query/DerefQueryLevel1Test.java (original)
+++ jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/test/api/query/DerefQueryLevel1Test.java Thu Aug  3 07:08:54 2006
@@ -74,7 +74,7 @@
         }
         Node target = refProp.getNode();
         String xpath = createStatement(refProp, target.getName());
-        executeXPathQuery(session, xpath, new Node[]{target});
+        executeDerefQuery(session, xpath, new Node[]{target});
     }
 
     /**
@@ -91,7 +91,7 @@
         }
         Node target = refProp.getNode();
         String xpath = createStatement(refProp, "*");
-        executeXPathQuery(session, xpath, new Node[]{target});
+        executeDerefQuery(session, xpath, new Node[]{target});
     }
 
     /**
@@ -122,7 +122,7 @@
         }
         targetNodes = (Node[]) resultNodes.toArray(new Node[resultNodes.size()]);
         String xpath = createStatement(refProp, nodeName);
-        executeXPathQuery(session, xpath, targetNodes);
+        executeDerefQuery(session, xpath, targetNodes);
     }
 
     /**
@@ -145,7 +145,7 @@
             throw new NotExecutableException("Reference property does not contain a value");
         }
         String xpath = createStatement(refProp, "*");
-        executeXPathQuery(session, xpath, targetNodes);
+        executeDerefQuery(session, xpath, targetNodes);
     }
 
     //----------------------------< internal >----------------------------------
@@ -164,5 +164,26 @@
         stmt.append(refProperty.getName()).append(", '");
         stmt.append(nameTest).append("')");
         return stmt.toString();
+    }
+
+    /**
+     * Executes the <code>xpath</code> query and checks the results against the
+     * specified <code>nodes</code>.
+     *
+     * @param session the session to use for the query.
+     * @param xpath   the xpath query.
+     * @param nodes   the expected result nodes.
+     * @throws NotExecutableException if this repository does not support the
+     *                                jcr:deref() function.
+     */
+    private void executeDerefQuery(Session session,
+                                   String xpath,
+                                   Node[] nodes) throws NotExecutableException {
+        try {
+            executeXPathQuery(session, xpath, nodes);
+        } catch (RepositoryException e) {
+            // assume jcr:deref() is not supported
+            throw new NotExecutableException(e.getMessage());
+        }
     }
 }