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 2023/06/27 11:49:34 UTC
[sling-org-apache-sling-testing-caconfig-mock-plugin] branch master updated: SLING-11915 caconfig-mock-plugin: Order of collection items may be lost in writeConfigurationCollection
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-caconfig-mock-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 4c987ec SLING-11915 caconfig-mock-plugin: Order of collection items may be lost in writeConfigurationCollection
4c987ec is described below
commit 4c987ec627fc7b1f84bd630fe9dd2f6a01dea878
Author: Stefan Seifert <st...@users.noreply.github.com>
AuthorDate: Tue Jun 27 13:41:34 2023 +0200
SLING-11915 caconfig-mock-plugin: Order of collection items may be lost in writeConfigurationCollection
---
.../mock/caconfig/ConfigurationPersistHelper.java | 4 ++--
.../mock/caconfig/MockContextAwareConfigTest.java | 24 ++++++++++++++++++++++
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationPersistHelper.java b/src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationPersistHelper.java
index db39882..87d8c26 100644
--- a/src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationPersistHelper.java
+++ b/src/main/java/org/apache/sling/testing/mock/caconfig/ConfigurationPersistHelper.java
@@ -19,7 +19,7 @@
package org.apache.sling.testing.mock.caconfig;
import java.util.Collection;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -81,7 +81,7 @@ class ConfigurationPersistHelper {
*/
void writeConfigurationCollection(@NotNull String configName, @NotNull Collection<@NotNull Map<String, Object>> values) {
// split each collection item map in it's parts
- Map<String, ConfigurationDataParts> partsCollection = new HashMap<>();
+ Map<String, ConfigurationDataParts> partsCollection = new LinkedHashMap<>();
int index = 0;
for (Map<String, Object> map : values) {
partsCollection.put("item" + (index++), new ConfigurationDataParts(map));
diff --git a/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java b/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
index 0e448e5..f040654 100644
--- a/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
@@ -91,6 +91,30 @@ public class MockContextAwareConfigTest {
assertEquals(5, item2.intParam());
}
+ @Test
+ public void testCollectionConfig_DifferentOrder() {
+ MockContextAwareConfig.writeConfigurationCollection(context, "/content/region/site", ListConfig.class, ImmutableList.of(
+ ImmutableMap.<String,Object>of("stringParam", "value2"),
+ ImmutableMap.<String,Object>of("stringParam", "value3"),
+ ImmutableMap.<String,Object>of("stringParam", "value1")));
+
+ Collection<ListConfig> config = getConfigCollection(ListConfig.class);
+ assertEquals(3, config.size());
+ Iterator<ListConfig> items = config.iterator();
+
+ ListConfig item1 = items.next();
+ assertEquals("value2", item1.stringParam());
+ assertEquals(5, item1.intParam());
+
+ ListConfig item2 = items.next();
+ assertEquals("value3", item2.stringParam());
+ assertEquals(5, item2.intParam());
+
+ ListConfig item3 = items.next();
+ assertEquals("value1", item3.stringParam());
+ assertEquals(5, item3.intParam());
+ }
+
@Test
public void testNestedSingletonConfig() {
MockContextAwareConfig.writeConfiguration(context, "/content/region/site", NestedConfig.class,