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

sseifert pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git


The following commit(s) were added to refs/heads/master by this push:
     new 1d270d4  SLING-8325 sling-mock: Overlay ContentBuilder.resource 
methods with variants to create child resources
1d270d4 is described below

commit 1d270d41c924ac057d776223ffc5ba155aa0dd83
Author: sseifert <[email protected]>
AuthorDate: Fri Mar 22 14:17:29 2019 +0100

    SLING-8325 sling-mock: Overlay ContentBuilder.resource methods with 
variants to create child resources
---
 .../testing/mock/sling/builder/ContentBuilder.java | 33 ++++++++++++++++++++++
 .../testing/mock/sling/builder/package-info.java   |  2 +-
 .../mock/sling/builder/ContentBuilderTest.java     | 17 +++++++++++
 3 files changed, 51 insertions(+), 1 deletion(-)

diff --git 
a/core/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java
 
b/core/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java
index 7f8e985..7502513 100644
--- 
a/core/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java
+++ 
b/core/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java
@@ -92,6 +92,39 @@ public class ContentBuilder {
     }
 
     /**
+     * Create child resource below the given parent resource.
+     * @param resource Parent resource
+     * @param name Child resource name
+     * @return Resource object
+     */
+    public final @NotNull Resource resource(@NotNull Resource resource, 
@NotNull String name) {
+        return resource(resource, name, ValueMap.EMPTY);
+    }
+
+    /**
+     * Create child resource below the given parent resource.
+     * @param resource Parent resource
+     * @param name Child resource name
+     * @param properties Properties for resource.
+     * @return Resource object
+     */
+    public final @NotNull Resource resource(@NotNull Resource resource, 
@NotNull String name, @NotNull Map<String, Object> properties) {
+        String path = resource.getPath() + "/" + StringUtils.stripStart(name, 
"/");
+        return resource(path, properties);
+    }
+
+    /**
+     * Create child resource below the given parent resource.
+     * @param resource Parent resource
+     * @param name Child resource name
+     * @param properties Properties for resource.
+     * @return Resource object
+     */
+    public final @NotNull Resource resource(@NotNull Resource resource, 
@NotNull String name, @NotNull Object @NotNull ... properties) {
+        return resource(resource, name, MapUtil.toMap(properties));
+    }
+
+    /**
      * Ensure that a resource exists at the given path. If not, it is created
      * using <code>nt:unstructured</code> node type.
      * @param path Resource path
diff --git 
a/core/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java
 
b/core/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java
index ed6acd2..efa0a0d 100644
--- 
a/core/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java
+++ 
b/core/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java
@@ -19,5 +19,5 @@
 /**
  * Content builder for creating test content.
  */
[email protected]("1.1.1")
[email protected]("1.2")
 package org.apache.sling.testing.mock.sling.builder;
diff --git 
a/core/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java
 
b/core/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java
index 7e8ecb5..d92d374 100644
--- 
a/core/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java
+++ 
b/core/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java
@@ -70,4 +70,21 @@ public class ContentBuilderTest {
         assertEquals("value1", props.get("stringProp", String.class));
     }
 
+    @Test
+    public void testChildResource() {
+        Resource resource = 
context.create().resource("/content/test1/resource1");
+        
+        Resource child1 = context.create().resource(resource, "child1");
+        assertNotNull(child1);
+        assertEquals("child1", child1.getName());
+        assertTrue(ResourceUtil.getValueMap(child1).isEmpty());
+        
+        Resource child2 = context.create().resource(resource, "/child2",
+                "prop1", "value1");
+        assertNotNull(child2);
+        assertEquals("child2", child2.getName());
+        ValueMap props = ResourceUtil.getValueMap(child2);
+        assertEquals("value1", props.get("prop1", String.class));
+    }
+
 }

Reply via email to