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>.