You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:17:52 UTC

[sling-org-apache-sling-testing-jcr-mock] 14/17: SLING-4230 Add support for mocking queries and query results

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.testing.jcr-mock-1.1.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-jcr-mock.git

commit 5f388165251c1e21d7a34c51b2c54a940017c184
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Tue Dec 9 15:48:31 2014 +0000

    SLING-4230 Add support for mocking queries and query results
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/jcr-mock@1644092 13f79535-47bb-0310-9956-ffa450edef68
---
 .../org/apache/sling/testing/mock/jcr/MockJcr.java | 37 ++++++++++++++++++++++
 .../testing/mock/jcr/MockQueryManagerTest.java     |  4 +--
 2 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java b/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
index 08d54aa..221dd1d 100644
--- a/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
+++ b/src/main/java/org/apache/sling/testing/mock/jcr/MockJcr.java
@@ -91,6 +91,15 @@ public final class MockJcr {
     
     /**
      * Sets the expected result list for all queries executed with the given query manager.
+     * @param session JCR session
+     * @param resultList Result list
+     */
+    public static void setQueryResult(final Session session, final List<Node> resultList) {
+        setQueryResult(getQueryManager(session), resultList);
+    }
+    
+    /**
+     * Sets the expected result list for all queries executed with the given query manager.
      * @param queryManager Mocked query manager
      * @param resultList Result list
      */
@@ -105,6 +114,16 @@ public final class MockJcr {
 
     /**
      * Sets the expected result list for all queries with the given statement executed with the given query manager.
+     * @param session JCR session
+     * @param statement Query statement
+     * @param resultList Result list
+     */
+    public static void setQueryResult(final Session session, final String statement, final List<Node> resultList) {
+        setQueryResult(getQueryManager(session), statement, resultList);
+    }
+    
+    /**
+     * Sets the expected result list for all queries with the given statement executed with the given query manager.
      * @param queryManager Mocked query manager
      * @param statement Query statement
      * @param resultList Result list
@@ -125,11 +144,29 @@ public final class MockJcr {
 
     /**
      * Adds a query result handler for the given query manager which may return query results for certain queries that are executed.
+     * @param session JCR session
+     * @param resultHandler Mock query result handler
+     */
+    public static void addQueryResultHandler(final Session session, final MockQueryResultHandler resultHandler) {
+        addQueryResultHandler(getQueryManager(session), resultHandler);
+    }
+    
+    /**
+     * Adds a query result handler for the given query manager which may return query results for certain queries that are executed.
      * @param queryManager Mocked query manager
      * @param resultHandler Mock query result handler
      */
     public static void addQueryResultHandler(final QueryManager queryManager, final MockQueryResultHandler resultHandler) {
         ((MockQueryManager)queryManager).addResultHandler(resultHandler);
     }
+    
+    private static QueryManager getQueryManager(Session session) {
+        try {
+            return session.getWorkspace().getQueryManager();
+        }
+        catch (RepositoryException ex) {
+            throw new RuntimeException("Unable to access query manager.", ex);
+        }
+    }
 
 }
diff --git a/src/test/java/org/apache/sling/testing/mock/jcr/MockQueryManagerTest.java b/src/test/java/org/apache/sling/testing/mock/jcr/MockQueryManagerTest.java
index 413c55e..6903e41 100644
--- a/src/test/java/org/apache/sling/testing/mock/jcr/MockQueryManagerTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/jcr/MockQueryManagerTest.java
@@ -132,7 +132,7 @@ public class MockQueryManagerTest {
     @Test
     public void testQueryResults_MultipleResultHandlers() throws RepositoryException {
         final List<Node> sampleNodes2 = ImmutableList.of(sampleNodes.get(0));
-        MockJcr.addQueryResultHandler(queryManager, new MockQueryResultHandler() {
+        MockJcr.addQueryResultHandler(session, new MockQueryResultHandler() {
             @Override
             public MockQueryResult executeQuery(MockQuery query) {
                 if (StringUtils.equals(query.getStatement(), "query2")) {
@@ -142,7 +142,7 @@ public class MockQueryManagerTest {
             }
         });
         
-        MockJcr.addQueryResultHandler(queryManager, new MockQueryResultHandler() {
+        MockJcr.addQueryResultHandler(session, new MockQueryResultHandler() {
             @Override
             public MockQueryResult executeQuery(MockQuery query) {
                 if (StringUtils.equals(query.getStatement(), "query1")) {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.