Author: sseifert
Date: Sat Sep 30 07:37:56 2017
New Revision: 1810182
URL: http://svn.apache.org/viewvc?rev=1810182&view=rev
Log:
SLING-7165 more unit tests
Added:
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/example/ListNestedConfig.java
(with props)
Modified:
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java
Added:
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/example/ListNestedConfig.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/example/ListNestedConfig.java?rev=1810182&view=auto
==============================================================================
---
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/example/ListNestedConfig.java
(added)
+++
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/example/ListNestedConfig.java
Sat Sep 30 07:37:56 2017
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.caconfig.example;
+
+import org.apache.sling.caconfig.annotation.Configuration;
+
+@Configuration(collection = true)
+public @interface ListNestedConfig {
+
+ String stringParam();
+
+ int intParam();
+
+ ListConfig[] subListConfig();
+
+}
Propchange:
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/example/ListNestedConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/example/ListNestedConfig.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Sat Sep 30 07:37:56 2017
@@ -0,0 +1 @@
+LastChangedDate LastChangedRevision LastChangedBy HeadURL Id Author
Propchange:
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/example/ListNestedConfig.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java?rev=1810182&r1=1810181&r2=1810182&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java
(original)
+++
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/ConfigurationResolverAnnotationClassTest.java
Sat Sep 30 07:37:56 2017
@@ -35,6 +35,7 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.caconfig.ConfigurationResolveException;
import org.apache.sling.caconfig.ConfigurationResolver;
import org.apache.sling.caconfig.example.ListConfig;
+import org.apache.sling.caconfig.example.ListNestedConfig;
import org.apache.sling.caconfig.example.NestedConfig;
import org.apache.sling.caconfig.example.SimpleConfig;
import org.apache.sling.testing.mock.sling.junit.SlingContext;
@@ -141,17 +142,52 @@ public class ConfigurationResolverAnnota
public void testConfig_List() {
context.build().resource("/conf/content/site1/sling:configs/org.apache.sling.caconfig.example.ListConfig")
.siblingsMode()
- .resource("1", "stringParam", "configValue1.1")
- .resource("2", "stringParam", "configValue1.2")
- .resource("3", "stringParam", "configValue1.3");
+ .resource("1", "stringParam", "value1")
+ .resource("2", "stringParam", "value2")
+ .resource("3", "stringParam", "value3");
Collection<ListConfig> cfgList =
underTest.get(site1Page1).asCollection(ListConfig.class);
assertEquals(3, cfgList.size());
Iterator<ListConfig> cfgIterator = cfgList.iterator();
- assertEquals("configValue1.1", cfgIterator.next().stringParam());
- assertEquals("configValue1.2", cfgIterator.next().stringParam());
- assertEquals("configValue1.3", cfgIterator.next().stringParam());
+ assertEquals("value1", cfgIterator.next().stringParam());
+ assertEquals("value2", cfgIterator.next().stringParam());
+ assertEquals("value3", cfgIterator.next().stringParam());
+ }
+
+ @Test
+ public void testConfig_List_Nested() {
+
context.build().resource("/conf/content/site1/sling:configs/org.apache.sling.caconfig.example.ListNestedConfig")
+ .siblingsMode()
+ .resource("1", "stringParam", "value1")
+ .resource("2", "stringParam", "value2")
+ .resource("3", "stringParam", "value3");
+
context.build().resource("/conf/content/site1/sling:configs/org.apache.sling.caconfig.example.ListNestedConfig/1/subListConfig")
+ .siblingsMode()
+ .resource("1", "stringParam", "value11")
+ .resource("2", "stringParam", "value12");
+
context.build().resource("/conf/content/site1/sling:configs/org.apache.sling.caconfig.example.ListNestedConfig/2/subListConfig")
+ .siblingsMode()
+ .resource("1", "stringParam", "value21");
+
+ List<ListNestedConfig> cfgList =
ImmutableList.copyOf(underTest.get(site1Page1).asCollection(ListNestedConfig.class));
+
+ assertEquals(3, cfgList.size());
+
+ ListNestedConfig config1 = cfgList.get(0);
+ assertEquals("value1", config1.stringParam());
+ assertEquals(2, config1.subListConfig().length);
+ assertEquals("value11", config1.subListConfig()[0].stringParam());
+ assertEquals("value12", config1.subListConfig()[1].stringParam());
+
+ ListNestedConfig config2 = cfgList.get(1);
+ assertEquals("value2", config2.stringParam());
+ assertEquals(1, config2.subListConfig().length);
+ assertEquals("value21", config2.subListConfig()[0].stringParam());
+
+ ListNestedConfig config3 = cfgList.get(2);
+ assertEquals("value3", config3.stringParam());
+ assertEquals(0, config3.subListConfig().length);
}
@Test
Modified:
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java?rev=1810182&r1=1810181&r2=1810182&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java
(original)
+++
sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig/impl/def/DefaultConfigurationPersistenceStrategyTest.java
Sat Sep 30 07:37:56 2017
@@ -152,13 +152,13 @@ public class DefaultConfigurationPersist
));
// store nested items
-
assertTrue(underTest.persistConfigurationCollection(context.resourceResolver(),
"/conf/test/item1",
+
assertTrue(underTest.persistConfigurationCollection(context.resourceResolver(),
"/conf/test/item1/subList",
new ConfigurationCollectionPersistData(ImmutableList.of(
new
ConfigurationPersistData(ImmutableMap.<String,Object>of("prop1",
"value11")).collectionItemName("sub1"),
new
ConfigurationPersistData(ImmutableMap.<String,Object>of("prop1",
"value12")).collectionItemName("sub2")
))
));
-
assertTrue(underTest.persistConfigurationCollection(context.resourceResolver(),
"/conf/test/item2",
+
assertTrue(underTest.persistConfigurationCollection(context.resourceResolver(),
"/conf/test/item2/subList",
new ConfigurationCollectionPersistData(ImmutableList.of(
new
ConfigurationPersistData(ImmutableMap.<String,Object>of("prop1",
"value21")).collectionItemName("sub1")
))
@@ -171,13 +171,13 @@ public class DefaultConfigurationPersist
assertThat(resource, ResourceMatchers.containsChildren("item1",
"item2"));
assertThat(resource.getChild("item1"), ResourceMatchers.props("prop1",
"value1"));
- assertThat(resource.getChild("item1"),
ResourceMatchers.containsChildren("sub1", "sub2"));
- assertThat(resource.getChild("item1/sub1"),
ResourceMatchers.props("prop1", "value11"));
- assertThat(resource.getChild("item1/sub2"),
ResourceMatchers.props("prop1", "value12"));
+ assertThat(resource.getChild("item1/subList"),
ResourceMatchers.containsChildren("sub1", "sub2"));
+ assertThat(resource.getChild("item1/subList/sub1"),
ResourceMatchers.props("prop1", "value11"));
+ assertThat(resource.getChild("item1/subList/sub2"),
ResourceMatchers.props("prop1", "value12"));
assertThat(resource.getChild("item2"), ResourceMatchers.props("prop1",
"value2"));
- assertThat(resource.getChild("item2"),
ResourceMatchers.containsChildren("sub1"));
- assertThat(resource.getChild("item2/sub1"),
ResourceMatchers.props("prop1", "value21"));
+ assertThat(resource.getChild("item2/subList"),
ResourceMatchers.containsChildren("sub1"));
+ assertThat(resource.getChild("item2/subList/sub1"),
ResourceMatchers.props("prop1", "value21"));
// update config collection items
@@ -194,13 +194,13 @@ public class DefaultConfigurationPersist
assertThat(resource, ResourceMatchers.containsChildren("item1",
"item2", "item3"));
assertThat(resource.getChild("item1"), ResourceMatchers.props("prop1",
"value1-new"));
- assertThat(resource.getChild("item1"),
ResourceMatchers.containsChildren("sub1", "sub2"));
- assertThat(resource.getChild("item1/sub1"),
ResourceMatchers.props("prop1", "value11"));
- assertThat(resource.getChild("item1/sub2"),
ResourceMatchers.props("prop1", "value12"));
+ assertThat(resource.getChild("item1/subList"),
ResourceMatchers.containsChildren("sub1", "sub2"));
+ assertThat(resource.getChild("item1/subList/sub1"),
ResourceMatchers.props("prop1", "value11"));
+ assertThat(resource.getChild("item1/subList/sub2"),
ResourceMatchers.props("prop1", "value12"));
assertThat(resource.getChild("item2"), ResourceMatchers.props("prop1",
"value2-new"));
- assertThat(resource.getChild("item2"),
ResourceMatchers.containsChildren("sub1"));
- assertThat(resource.getChild("item2/sub1"),
ResourceMatchers.props("prop1", "value21"));
+ assertThat(resource.getChild("item2/subList"),
ResourceMatchers.containsChildren("sub1"));
+ assertThat(resource.getChild("item2/subList/sub1"),
ResourceMatchers.props("prop1", "value21"));
assertThat(resource.getChild("item3"), ResourceMatchers.props("prop1",
"value3-new"));
assertFalse(resource.getChild("item3").listChildren().hasNext());