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