use of javax.jcr.query.QueryResult in project jackrabbit by apache.
the class OrderByTest method testOrderByLowerCase.
public void testOrderByLowerCase() throws RepositoryException {
Node n1 = testRootNode.addNode("node1");
Node n2 = testRootNode.addNode("node2");
Node n3 = testRootNode.addNode("node3");
n1.setProperty("text", "Amundsen");
n2.setProperty("text", "barents");
n3.setProperty("text", "Wegener");
testRootNode.save();
String xpath = "/" + testRoot + "/*[@jcr:primaryType='nt:unstructured'] order by fn:lower-case(@text)";
Query q = qm.createQuery(xpath, Query.XPATH);
QueryResult result = q.execute();
checkResult(result, new Node[] { n1, n2, n3 });
}
use of javax.jcr.query.QueryResult in project jackrabbit by apache.
the class SkipDeletedNodesTest method testRemoveLastNode.
/**
* Executes a query with one session and removes a node from that query
* result with another session.
*/
public void testRemoveLastNode() throws RepositoryException {
testRootNode.addNode("node1");
testRootNode.addNode("node2");
Node n3 = testRootNode.addNode("node3");
testRootNode.save();
// query the workspace for all three nodes
String stmt = testPath + "/*";
QueryResult res = qm.createQuery(stmt, Query.XPATH).execute();
// now remove the last node
n3.remove();
testRootNode.save();
// iterate over nodes
int count = 0;
log.println("Result nodes:");
for (NodeIterator it = res.getNodes(); it.hasNext(); ) {
assertEquals("Wrong value for getPosition().", count++, it.getPosition());
try {
log.println(it.nextNode().getPath());
} catch (InvalidItemStateException e) {
// this is allowed
log.println("Invalid: <deleted>");
}
}
}
use of javax.jcr.query.QueryResult in project jackrabbit by apache.
the class SkipDeletedNodesTest method testRemoveFirstNodeAfterHasNext.
/**
* Executes a query with one session and removes a node from that query
* result with another session.
* </p>This test is different from the other tests that it removes the
* node after another session has called hasNext() to retrieve the node
* that gets deleted.
*/
public void testRemoveFirstNodeAfterHasNext() throws RepositoryException {
Node n1 = testRootNode.addNode("node1");
testRootNode.addNode("node2");
testRootNode.addNode("node3");
testRootNode.save();
// query the workspace for all three nodes
String stmt = testPath + "/*";
QueryResult res = qm.createQuery(stmt, Query.XPATH).execute();
NodeIterator it = res.getNodes();
it.hasNext();
// now remove the first node
n1.remove();
testRootNode.save();
// iterate over nodes
int count = 0;
log.println("Result nodes:");
while (it.hasNext()) {
assertEquals("Wrong value for getPosition().", count++, it.getPosition());
try {
log.println(it.nextNode().getPath());
} catch (InvalidItemStateException e) {
// this is allowed
log.println("Invalid: <deleted>");
}
}
}
use of javax.jcr.query.QueryResult in project jackrabbit by apache.
the class SimpleQueryTest method testNegativeNumber.
public void testNegativeNumber() throws Exception {
Node foo = testRootNode.addNode("foo");
foo.setProperty("number", -10);
Node bar = testRootNode.addNode("bar");
bar.setProperty("number", -20);
testRootNode.save();
String sql = "SELECT * FROM nt:unstructured WHERE number = -10";
Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
QueryResult result = q.execute();
checkResult(result, 1);
String xpath = "//*[@jcr:primaryType='nt:unstructured' and @number = -10]";
q = superuser.getWorkspace().getQueryManager().createQuery(xpath, Query.XPATH);
result = q.execute();
checkResult(result, 1);
sql = "SELECT * FROM nt:unstructured WHERE number <= -10";
q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
result = q.execute();
checkResult(result, 2);
xpath = "//*[@jcr:primaryType='nt:unstructured' and @number <= -10]";
q = superuser.getWorkspace().getQueryManager().createQuery(xpath, Query.XPATH);
result = q.execute();
checkResult(result, 2);
}
use of javax.jcr.query.QueryResult in project jackrabbit by apache.
the class SkipDeletedNodesTest method testRemoveSomeNode.
/**
* Executes a query with one session and removes a node from that query
* result with another session.
*/
public void testRemoveSomeNode() throws RepositoryException {
testRootNode.addNode("node1");
Node n2 = testRootNode.addNode("node2");
testRootNode.addNode("node3");
testRootNode.save();
// query the workspace for all three nodes
String stmt = testPath + "/*";
QueryResult res = qm.createQuery(stmt, Query.XPATH).execute();
// now remove the second node
n2.remove();
testRootNode.save();
// iterate over nodes
int count = 0;
log.println("Result nodes:");
for (NodeIterator it = res.getNodes(); it.hasNext(); ) {
assertEquals("Wrong value for getPosition().", count++, it.getPosition());
try {
log.println(it.nextNode().getPath());
} catch (InvalidItemStateException e) {
// this is allowed
log.println("Invalid: <deleted>");
}
}
}
Aggregations