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 2017/09/30 07:37:57 UTC
svn commit: r1810182 - in
/sling/trunk/bundles/extensions/caconfig/impl/src/test/java/org/apache/sling/caconfig:
example/ListNestedConfig.java
impl/ConfigurationResolverAnnotationClassTest.java
impl/def/DefaultConfigurationPersistenceStrategyTest.java
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());