Author: sseifert
Date: Mon Sep 19 14:48:57 2016
New Revision: 1761462

URL: http://svn.apache.org/viewvc?rev=1761462&view=rev
Log:
add ResourceBuilder usage

Modified:
    sling/site/trunk/content/documentation/development/sling-mock.mdtext

Modified: sling/site/trunk/content/documentation/development/sling-mock.mdtext
URL: 
http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/development/sling-mock.mdtext?rev=1761462&r1=1761461&r2=1761462&view=diff
==============================================================================
--- sling/site/trunk/content/documentation/development/sling-mock.mdtext 
(original)
+++ sling/site/trunk/content/documentation/development/sling-mock.mdtext Mon 
Sep 19 14:48:57 2016
@@ -53,7 +53,7 @@ Additional features provided:
 * `ContentLoader` supports importing JSON data and binary data into the mock 
resource hierarchy to easily 
   prepare a test fixture consisting of a hierarchy of resources and properties.
     * The same JSON format can be used that is provided by the Sling GET 
servlet for output
-* `ContentBuilder` makes it easier to create resources and properties as test 
fixture
+* `ContentBuilder` and `ResourceBuilder` make it easier to create resources 
and properties as test fixture
 
 
 ## Usage
@@ -96,7 +96,7 @@ Additionally it supports:
 
 * Registering OSGi services
 * Registering adapter factories
-* Accessing Content Loader and Content Builder
+* Accessing ContentLoader, and ContentBuilder and ResourceBuilder
 
 
 ### Choosing Resource Resolver Mock Type
@@ -348,14 +348,11 @@ Example JSON data:
 Example code to import the JSON data:
 
     #!java
-    ContentLoader contentLoader = new ContentLoader(resolver);
-    contentLoader.json("/sample-data.json", "/content/sample/en");
+    context.load().json("/sample-data.json", "/content/sample/en");
 
 This codes creates a new resource at `/content/sample/en` (and - if not 
existent - the parent resources) and
 imports the JSON data to this node. It can be accessed using the Sling 
Resource or JCR API afterwards.
 
-If you use the `SlingContext` JUnit rule you case just use `context.load()`.
-
 
 ### Import binary data from file in classpath
 
@@ -365,31 +362,60 @@ The data is stored using a nt:file/nt:re
 Example code to import a binary file:
 
     #!java
-    ContentLoader contentLoader = new ContentLoader(resolver);
-    contentLoader.binaryFile("/sample-file.gif", 
"/content/binary/sample-file.gif");
+    context.load().binaryFile("/sample-file.gif", 
"/content/binary/sample-file.gif");
 
 This codes creates a new resource at `/content/binary/sample-file.gif` (and - 
if not existent - the parent 
 resources) and imports the binary data to a jcr:content subnode.
 
-If you use the `SlingContext` JUnit rule you case just use `context.load()`.
-
 
 ### Building content
 
-For easily building resources a `ContentBuilder` provides convenience methods.
+Sling Mocks provides two alterantives for quickly building test content in the 
repository with as few code as possible. Sling Mocks provides two alternatives. 
Both are quite similar in their results, but follow different API concepts. You 
can choose whatever matches your needs and mix them as well.
+
+* `ContentBuilder`: Part of Sling Mocks since its first release. If you need a 
references to each created resource this is the easiest way.
+* `ResourceBuilder`: Separate bundle that can also be used in integration 
tests or live instances. Supports a "fluent" API to create a bunch of resources 
in hierarchy at once.
+
+
+### Building content using `ContentBuilder`
+
+The entry point for the `ContentBuilder` is the `create()` method on the Sling 
context.
 
 Example:
 
     #!java
-    ContentBuilder contentBuilder = new ContentBuilder(resolver);
-    contentBuilder.resource("/content/test1", ImmutableMap.<String, 
Object>builder()
+    context.create().resource("/content/test1", ImmutableMap.<String, 
Object>builder()
             .put("prop1", "value1")
             .put("prop2", "value2")
             .build());
 
+Simplified syntax without using a map:
+
+    #!java
+    context.create().resource("/content/test1",
+            "prop1", "value1",
+            "prop2", "value2");
+
+
 If you use the `SlingContext` JUnit rule you case just use `context.create()`.
 
 
+### Building content using `ResourceBuilder`
+
+The entry point for the `ResourceBuilder` is the `build()` method on the Sling 
context.
+
+Example:
+
+    #!java
+    context.build().resource("/content/test1")
+            .siblingsMode()
+            .resource("test1.1", "stringParam", "configValue1.1")
+            .resource("test1.2", "stringParam", "configValue1.2")
+            .resource("test1.2", "stringParam", "configValue1.3");
+
+See JavaDocs of the class 
`org.apache.sling.resourcebuilder.api.ResourceBuilder` for a detailed 
documentation.
+
+
+
 [osgi-mock]: {{ refs.osgi-mock.path }}
 [jcr-mock]: {{ refs.jcr-mock.path }}
 [resourceresolver-mock]: {{ refs.resourceresolver-mock.path }}


Reply via email to