You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2016/09/12 14:19:06 UTC

svn commit: r1760378 - in /sling: branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/ branches/testing/mocks/sling-mock-1.x/src/test/java/org/apache/sling/testing/mock/sling/builder/ trunk/testing/mocks/slin...

Author: sseifert
Date: Mon Sep 12 14:19:06 2016
New Revision: 1760378

URL: http://svn.apache.org/viewvc?rev=1760378&view=rev
Log:
SLING-6049 sling-mock ContentBuilder: Support creating resources with object vararg parameter

Modified:
    sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java
    sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java
    sling/branches/testing/mocks/sling-mock-1.x/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java
    sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java
    sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java

Modified: sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java
URL: http://svn.apache.org/viewvc/sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java?rev=1760378&r1=1760377&r2=1760378&view=diff
==============================================================================
--- sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java (original)
+++ sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java Mon Sep 12 14:19:06 2016
@@ -27,6 +27,7 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.resourcebuilder.impl.MapArgsConverter;
 
 import com.google.common.collect.ImmutableMap;
 
@@ -75,6 +76,26 @@ public class ContentBuilder {
         }
     }
 
+    /**
+     * Create resource. If parent resource(s) do not exist they are created
+     * automatically using <code>nt:unstructured</code> nodes.
+     * @param path Page path
+     * @param properties Properties for resource.
+     * @return Resource object
+     */
+    @SuppressWarnings("unchecked")
+    public final Resource resource(String path, Object... properties) {
+        if (properties == null || properties.length == 0) {
+            return resource(path);
+        }
+        else if (properties.length == 1 && properties[0] instanceof Map) {
+            return resource(path, (Map<String,Object>)properties[0]);
+        }
+        else {
+            return resource(path, MapArgsConverter.toMap(properties));
+        }
+    }
+
     /**
      * Ensure that a resource exists at the given path. If not, it is created
      * using <code>nt:unstructured</code> node type.

Modified: sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java
URL: http://svn.apache.org/viewvc/sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java?rev=1760378&r1=1760377&r2=1760378&view=diff
==============================================================================
--- sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java (original)
+++ sling/branches/testing/mocks/sling-mock-1.x/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java Mon Sep 12 14:19:06 2016
@@ -19,5 +19,5 @@
 /**
  * Content builder for creating test content.
  */
-@aQute.bnd.annotation.Version("1.0")
+@aQute.bnd.annotation.Version("1.1")
 package org.apache.sling.testing.mock.sling.builder;

Modified: sling/branches/testing/mocks/sling-mock-1.x/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java
URL: http://svn.apache.org/viewvc/sling/branches/testing/mocks/sling-mock-1.x/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java?rev=1760378&r1=1760377&r2=1760378&view=diff
==============================================================================
--- sling/branches/testing/mocks/sling-mock-1.x/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java (original)
+++ sling/branches/testing/mocks/sling-mock-1.x/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java Mon Sep 12 14:19:06 2016
@@ -46,11 +46,23 @@ public class ContentBuilderTest {
     }
 
     @Test
-    public void testResourceWithProperties() {
-        Resource resource = context.create().resource(
-                "/content/test1/resource2",
-                ImmutableMap.<String, Object> builder().put("jcr:title", "Test Title").put("stringProp", "value1")
-                        .build());
+    public void testResourceWithProperties_Map() {
+        Resource resource = context.create().resource("/content/test1/resource2", ImmutableMap.<String,Object>builder()
+                .put("jcr:title", "Test Title")
+                .put("stringProp", "value1")
+                .build());
+        assertNotNull(resource);
+        assertEquals("resource2", resource.getName());
+        ValueMap props = ResourceUtil.getValueMap(resource);
+        assertEquals("Test Title", props.get("jcr:title", String.class));
+        assertEquals("value1", props.get("stringProp", String.class));
+    }
+
+    @Test
+    public void testResourceWithProperties_ObjectArray() {
+        Resource resource = context.create().resource("/content/test1/resource2",
+                "jcr:title", "Test Title",
+                "stringProp", "value1");
         assertNotNull(resource);
         assertEquals("resource2", resource.getName());
         ValueMap props = ResourceUtil.getValueMap(resource);

Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java?rev=1760378&r1=1760377&r2=1760378&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/ContentBuilder.java Mon Sep 12 14:19:06 2016
@@ -27,6 +27,7 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.resourcebuilder.impl.MapArgsConverter;
 
 import com.google.common.collect.ImmutableMap;
 
@@ -75,6 +76,26 @@ public class ContentBuilder {
         }
     }
 
+    /**
+     * Create resource. If parent resource(s) do not exist they are created
+     * automatically using <code>nt:unstructured</code> nodes.
+     * @param path Page path
+     * @param properties Properties for resource.
+     * @return Resource object
+     */
+    @SuppressWarnings("unchecked")
+    public final Resource resource(String path, Object... properties) {
+        if (properties == null || properties.length == 0) {
+            return resource(path);
+        }
+        else if (properties.length == 1 && properties[0] instanceof Map) {
+            return resource(path, (Map<String,Object>)properties[0]);
+        }
+        else {
+            return resource(path, MapArgsConverter.toMap(properties));
+        }
+    }
+
     /**
      * Ensure that a resource exists at the given path. If not, it is created
      * using <code>nt:unstructured</code> node type.

Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java?rev=1760378&r1=1760377&r2=1760378&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/builder/package-info.java Mon Sep 12 14:19:06 2016
@@ -19,5 +19,5 @@
 /**
  * Content builder for creating test content.
  */
-@org.osgi.annotation.versioning.Version("1.0")
+@org.osgi.annotation.versioning.Version("1.1")
 package org.apache.sling.testing.mock.sling.builder;

Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java?rev=1760378&r1=1760377&r2=1760378&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/builder/ContentBuilderTest.java Mon Sep 12 14:19:06 2016
@@ -46,11 +46,23 @@ public class ContentBuilderTest {
     }
 
     @Test
-    public void testResourceWithProperties() {
-        Resource resource = context.create().resource(
-                "/content/test1/resource2",
-                ImmutableMap.<String, Object> builder().put("jcr:title", "Test Title").put("stringProp", "value1")
-                        .build());
+    public void testResourceWithProperties_Map() {
+        Resource resource = context.create().resource("/content/test1/resource2", ImmutableMap.<String,Object>builder()
+                .put("jcr:title", "Test Title")
+                .put("stringProp", "value1")
+                .build());
+        assertNotNull(resource);
+        assertEquals("resource2", resource.getName());
+        ValueMap props = ResourceUtil.getValueMap(resource);
+        assertEquals("Test Title", props.get("jcr:title", String.class));
+        assertEquals("value1", props.get("stringProp", String.class));
+    }
+
+    @Test
+    public void testResourceWithProperties_ObjectArray() {
+        Resource resource = context.create().resource("/content/test1/resource2",
+                "jcr:title", "Test Title",
+                "stringProp", "value1");
         assertNotNull(resource);
         assertEquals("resource2", resource.getName());
         ValueMap props = ResourceUtil.getValueMap(resource);