You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by GitBox <gi...@apache.org> on 2021/01/11 22:14:13 UTC

[GitHub] [sling-org-apache-sling-testing-resourceresolver-mock] kwin commented on a change in pull request #2: SLING-10003 allow to provide mocked search results for findResources and queryResources

kwin commented on a change in pull request #2:
URL: https://github.com/apache/sling-org-apache-sling-testing-resourceresolver-mock/pull/2#discussion_r555373728



##########
File path: src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
##########
@@ -447,22 +451,46 @@ public Resource getParent(@NotNull Resource child) {
         return this.getResource(parentPath);
     }
 
+    @Override
+    @SuppressWarnings("null")
+    public @NotNull Iterator<Resource> findResources(final @NotNull String query, final String language) {
+        return findResourcesHandlers.stream()
+            .map(handler -> handler.findResources(query, language))
+            .filter(Objects::nonNull)
+            .findFirst()
+            .orElse(Collections.emptyIterator());
+    }
 
-    // --- unsupported operations ---
+    /**
+     * @param handler Handler that can provide a mocked find resources result.
+     */
+    public void addFindResourceHandler(@NotNull MockFindResourcesHandler handler) {
+        findResourcesHandlers.add(handler);
+    }
 
     @Override
-    @Deprecated
-    public @NotNull Resource resolve(final @NotNull HttpServletRequest request) {
-        throw new UnsupportedOperationException();
+    @SuppressWarnings("null")
+    public @NotNull Iterator<Map<String, Object>> queryResources(@NotNull String query, String language) {
+        return queryResourcesHandlers.stream()
+                .map(handler -> handler.queryResources(query, language))
+                .filter(Objects::nonNull)
+                .findFirst()
+                .orElse(Collections.emptyIterator());
     }
 
-    @Override
-    public @NotNull Iterator<Resource> findResources(final @NotNull String query, final String language) {
-        throw new UnsupportedOperationException();
+    /**
+     * @param handler Handler that can provide a mocked query resources result.
+     */
+    public void addQueryResourceHandler(@NotNull MockQueryResourceHandler handler) {

Review comment:
       It would be useful to add to javadoc that all handlers are queried until the first one returns a non-null value. And also that all registered handlers form a FIFO queue.

##########
File path: src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
##########
@@ -447,22 +451,46 @@ public Resource getParent(@NotNull Resource child) {
         return this.getResource(parentPath);
     }
 
+    @Override
+    @SuppressWarnings("null")
+    public @NotNull Iterator<Resource> findResources(final @NotNull String query, final String language) {
+        return findResourcesHandlers.stream()
+            .map(handler -> handler.findResources(query, language))
+            .filter(Objects::nonNull)
+            .findFirst()
+            .orElse(Collections.emptyIterator());
+    }
 
-    // --- unsupported operations ---
+    /**
+     * @param handler Handler that can provide a mocked find resources result.
+     */

Review comment:
       It would be useful to add to javadoc that all handlers are queried until the first one returns a non-null value. And also that all registered handlers form a FIFO queue. 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org