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 <[email protected]> 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 "[email protected]" <[email protected]>.
