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 2019/08/09 11:10:26 UTC

[sling-org-apache-sling-testing-sling-mock] branch master updated: SLING-8628 sling-mock: Ensure consistent order of nested resources created with ContentBuilder

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 548d3a6  SLING-8628 sling-mock: Ensure consistent order of nested resources created with ContentBuilder
548d3a6 is described below

commit 548d3a694fe2b42400824a6fb52d7f7dad42a576
Author: sseifert <ss...@pro-vision.de>
AuthorDate: Fri Aug 9 13:10:09 2019 +0200

    SLING-8628 sling-mock: Ensure consistent order of nested resources created with ContentBuilder
---
 .../testing/mock/sling/builder/ContentBuilder.java |  3 +-
 .../AbstractSlingCrudResourceResolverTest.java     | 36 ++++++++++++++++------
 2 files changed, 29 insertions(+), 10 deletions(-)

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 f4f907f..a812270 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
@@ -19,6 +19,7 @@
 package org.apache.sling.testing.mock.sling.builder;
 
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
@@ -108,7 +109,7 @@ public class ContentBuilder {
     
     @SuppressWarnings("unchecked")
     private Map<String,Map<String,Object>> getChildMaps(Map<String,Object> properties) {
-        Map<String,Map<String,Object>> result = new HashMap<>();
+        Map<String,Map<String,Object>> result = new LinkedHashMap<>();
         for (Map.Entry<String, Object> entry : properties.entrySet()) {
             if (entry.getValue() instanceof Map) {
                 result.put(entry.getKey(), (Map)entry.getValue());
diff --git a/core/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java b/core/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
index c8a8c01..74a9951 100644
--- a/core/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
+++ b/core/src/test/java/org/apache/sling/testing/mock/sling/resource/AbstractSlingCrudResourceResolverTest.java
@@ -299,21 +299,39 @@ public abstract class AbstractSlingCrudResourceResolverTest {
                         "prop1", "value1",
                         "child1", ImmutableMap.<String,Object>of(
                             "prop2","value2",
-                            "child2", ImmutableMap.<String,Object>of(
-                                "prop3", "value3")
-                            )
-                        ));
+                            "child1a", ImmutableMap.<String,Object>of(
+                                "prop3", "value3"),
+                            "child1b", ImmutableMap.<String,Object>of(
+                                "prop4", "value4")
+                        ),
+                        "child2", ImmutableMap.<String,Object>of(
+                            "prop5","value5"
+                        )));
 
         assertNotNull(nested);
         assertEquals("value1", nested.getValueMap().get("prop1", String.class));
 
-        Resource child1 = nested.getChild("child1");
-        assertNotNull(child1);
+        List<Resource> children = ImmutableList.copyOf(nested.getChildren());
+        assertEquals(2, children.size());
+
+        Resource child1 = children.get(0);
+        assertEquals("child1", child1.getName());
         assertEquals("value2", child1.getValueMap().get("prop2", String.class));
 
-        Resource child2 = child1.getChild("child2");
-        assertNotNull(child2);
-        assertEquals("value3", child2.getValueMap().get("prop3", String.class));
+        Resource child2 = children.get(1);
+        assertEquals("child2", child2.getName());
+        assertEquals("value5", child2.getValueMap().get("prop5", String.class));
+
+        List<Resource> child1children = ImmutableList.copyOf(child1.getChildren());
+        assertEquals(2, child1children.size());
+
+        Resource child1a = child1children.get(0);
+        assertEquals("child1a", child1a.getName());
+        assertEquals("value3", child1a.getValueMap().get("prop3", String.class));
+
+        Resource child1b = child1children.get(1);
+        assertEquals("child1b", child1b.getName());
+        assertEquals("value4", child1b.getValueMap().get("prop4", String.class));
     }
 
 }