Author: thomasm
Date: Thu Feb 12 14:15:00 2015
New Revision: 1659269
URL: http://svn.apache.org/r1659269
Log:
OAK-28 Query implementation (additional tests)
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java?rev=1659269&r1=1659268&r2=1659269&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/query/QueryTest.java
Thu Feb 12 14:15:00 2015
@@ -69,6 +69,62 @@ public class QueryTest extends AbstractR
}
@Test
+ public void twoSelectors() throws Exception {
+ Session session = getAdminSession();
+ Node root = session.getRootNode();
+
+ Node test = root.addNode("test");
+ test.addNode("testNode", "oak:Unstructured");
+ session.save();
+
+ assertEquals("/test/testNode",
+ getNodeList(session,
+ "select b.[jcr:path] as [jcr:path], b.[jcr:score] as
[jcr:score], b.* " +
+ "from [nt:base] as a " +
+ "inner join [nt:base] as b " +
+ "on ischildnode(b, a) " +
+ "where issamenode(a, '/test')", Query.JCR_SQL2));
+
+ assertEquals("/test/testNode",
+ getNodeList(session,
+ "select b.[jcr:path] as [jcr:path], b.[jcr:score] as
[jcr:score], b.* " +
+ "from [nt:base] as b " +
+ "inner join [nt:base] as a " +
+ "on ischildnode(b, a) " +
+ "where issamenode(b, '/test/testNode')", Query.JCR_SQL2));
+
+ assertEquals("/test",
+ getNodeList(session,
+ "select a.[jcr:path] as [jcr:path], a.[jcr:score] as
[jcr:score], a.* " +
+ "from [nt:base] as a " +
+ "inner join [nt:base] as b " +
+ "on ischildnode(b, a) " +
+ "where issamenode(a, '/test')", Query.JCR_SQL2));
+
+ assertEquals("/test",
+ getNodeList(session,
+ "select a.[jcr:path] as [jcr:path], a.[jcr:score] as
[jcr:score], a.* " +
+ "from [nt:base] as b " +
+ "inner join [nt:base] as a " +
+ "on ischildnode(b, a) " +
+ "where issamenode(b, '/test/testNode')", Query.JCR_SQL2));
+ }
+
+ private static String getNodeList(Session session, String query, String
language) throws RepositoryException {
+ QueryResult r = session.getWorkspace().getQueryManager()
+ .createQuery(query, language).execute();
+ NodeIterator it = r.getNodes();
+ StringBuilder buff = new StringBuilder();
+ while (it.hasNext()) {
+ if (buff.length() > 0) {
+ buff.append(", ");
+ }
+ buff.append(it.nextNode().getPath());
+ }
+ return buff.toString();
+ }
+
+ @Test
public void noDeclaringNodeTypesIndex() throws Exception {
Session session = getAdminSession();
Node root = session.getRootNode();