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());