You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2022/10/20 07:28:06 UTC

[sling-org-apache-sling-feature] branch master updated: SLING-11627 : Update tests

This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature.git


The following commit(s) were added to refs/heads/master by this push:
     new 5def981  SLING-11627 : Update tests
5def981 is described below

commit 5def9810e1e99d503369af112545f6b7f4d4c516
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Oct 20 09:28:00 2022 +0200

    SLING-11627 : Update tests
---
 .../sling/feature/builder/BuilderUtilTest.java     | 196 +++++++++++++--------
 1 file changed, 127 insertions(+), 69 deletions(-)

diff --git a/src/test/java/org/apache/sling/feature/builder/BuilderUtilTest.java b/src/test/java/org/apache/sling/feature/builder/BuilderUtilTest.java
index 095f94a..7b3a874 100644
--- a/src/test/java/org/apache/sling/feature/builder/BuilderUtilTest.java
+++ b/src/test/java/org/apache/sling/feature/builder/BuilderUtilTest.java
@@ -27,6 +27,7 @@ import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -950,71 +951,147 @@ public class BuilderUtilTest {
         }
     }
 
+    private Configuration createConfig(final boolean source) {
+        final Configuration cfg = new Configuration("foo");
+        cfg.getProperties().put("foo", source ? "source" : "target");
+        cfg.getProperties().put("bar", source ? "source" : "target");
+        if (source) {
+            cfg.getProperties().put("source", "value-s");
+        } else {
+            cfg.getProperties().put("target", "value-t");
+        }
+        return cfg;
+    }
+
+    private Configurations createConfigurations(final boolean source) {
+        final Configurations c = new Configurations();
+        c.add(createConfig(source));
+        return c;
+    }
+
+    private void assertOrigin(final ArtifactId expected, final List<ArtifactId> origins) {
+        if (expected == null) {
+            assertEquals(0, origins.size());
+        } else {
+            assertEquals(1, origins.size());
+            assertEquals(expected, origins.get(0));
+        }
+    }
+
     @Test public void testMergeConfigurationsUSEFIRST() {
-        Configurations target = new Configurations();
-        Configurations source = new Configurations();
-        Configuration foo = new Configuration("foo");
-        foo.getProperties().put("fooKey", "valueFOO");
-        target.add(foo);
-        Configuration foo2 = new Configuration("foo");
-        foo2.getProperties().put("barKey", "valueBAR");
-        source.add(foo2);
-        BuilderUtil.mergeConfigurations(target, source, Collections.singletonMap("fo*", BuilderContext.CONFIG_USE_FIRST), SOURCE_ID);
+        final Configurations source = createConfigurations(true);
+        final Configurations target = createConfigurations(false);
+
+        BuilderUtil.mergeConfigurations(target, source,
+                Collections.singletonMap("fo*", BuilderContext.CONFIG_USE_FIRST), SOURCE_ID);
+
+        // configurations
+        assertEquals(1, target.size());
+
+        // configuration origins
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins());
+
+        // properties
+        final Dictionary<String, Object> properties = target.getConfiguration("foo").getConfigurationProperties();
+        assertEquals(3, properties.size());
+        assertEquals("value-t", properties.get("target"));
+        assertEquals("target", properties.get("foo"));
+        assertEquals("target", properties.get("bar"));
 
-        assertEquals("valueFOO", target.getConfiguration("foo").getConfigurationProperties().get("fooKey"));
-        assertNull(target.getConfiguration("foo").getConfigurationProperties().get("barKey"));
-        assertTrue(target.getConfiguration("foo").getFeatureOrigins().isEmpty());
-        
         // property origins
-        assertEquals(0, target.getConfiguration("foo").getFeatureOrigins("fooKey").size());
-        assertEquals(0, target.getConfiguration("foo").getFeatureOrigins("barKey").size());
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("source"));
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("target"));
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("foo"));
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("bar"));
     }
 
     @Test public void testMergeConfigurationsUSELATEST() {
-        Configurations target = new Configurations();
-        Configurations source = new Configurations();
-        Configuration foo = new Configuration("foo");
-        foo.getProperties().put("fooKey", "valueFOO");
-        target.add(foo);
-        Configuration foo2 = new Configuration("foo");
-        foo2.getProperties().put("barKey", "valueBAR");
-        source.add(foo2);
+        final Configurations source = createConfigurations(true);
+        final Configurations target = createConfigurations(false);
+
         BuilderUtil.mergeConfigurations(target, source, Collections.singletonMap("fo*", BuilderContext.CONFIG_USE_LATEST), SOURCE_ID);
 
-        assertEquals("valueBAR", target.getConfiguration("foo").getConfigurationProperties().get("barKey"));
-        assertNull(target.getConfiguration("foo").getConfigurationProperties().get("fooKey"));
-        assertEquals(1, target.getConfiguration("foo").getFeatureOrigins().size());
-        assertEquals(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins().get(0));
+        // configurations
+        assertEquals(1, target.size());
+
+        // configuration origins
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins());
+
+        // properties
+        final Dictionary<String, Object> properties = target.getConfiguration("foo").getConfigurationProperties();
+        assertEquals(3, properties.size());
+        assertEquals("value-s", properties.get("source"));
+        assertEquals("source", properties.get("foo"));
+        assertEquals("source", properties.get("bar"));
 
         // property origins
-        assertEquals(1, target.getConfiguration("foo").getFeatureOrigins("barKey").size());
-        assertEquals(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("barKey").get(0));
-        assertEquals(0, target.getConfiguration("foo").getFeatureOrigins("fooKey").size());
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("source"));
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("target"));
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("foo"));
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("bar"));
     }
 
     @Test public void testMergeConfigurationsMERGELATEST() {
-        Configurations target = new Configurations();
-        Configurations source = new Configurations();
-        Configuration foo = new Configuration("foo");
-        foo.getProperties().put("fooKey", "valueFOO");
-        target.add(foo);
-        Configuration foo2 = new Configuration("foo");
-        foo2.getProperties().put("fooKey", "valueBAR");
-        source.add(foo2);
-        BuilderUtil.mergeConfigurations(target, source, Collections.singletonMap("fo*", BuilderContext.CONFIG_MERGE_LATEST), SOURCE_ID);
+        final Configurations source = createConfigurations(true);
+        final Configurations target = createConfigurations(false);
 
-        assertEquals("valueBAR", target.getConfiguration("foo").getConfigurationProperties().get("fooKey"));
-        assertEquals(1, target.getConfiguration("foo").getFeatureOrigins().size());
-        assertEquals(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins().get(0));
+        BuilderUtil.mergeConfigurations(target, source,
+                Collections.singletonMap("fo*", BuilderContext.CONFIG_MERGE_LATEST), SOURCE_ID);
+
+        // configurations
+        assertEquals(1, target.size());
+
+        // configuration origins
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins());
+
+        // properties
+        final Dictionary<String, Object> properties = target.getConfiguration("foo").getConfigurationProperties();
+        assertEquals(4, properties.size());
+        assertEquals("value-s", properties.get("source"));
+        assertEquals("value-t", properties.get("target"));
+        assertEquals("source", properties.get("foo"));
+        assertEquals("source", properties.get("bar"));
 
         // property origins
-        assertEquals(1, target.getConfiguration("foo").getFeatureOrigins("fooKey").size());
-        assertEquals(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("fooKey").get(0));
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("source"));
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("target"));
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("foo"));
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("bar"));
+    }
+
+    @Test
+    public void testMergeConfigurationsMERGEFIRST() {
+        final Configurations source = createConfigurations(true);
+        final Configurations target = createConfigurations(false);
+
+        BuilderUtil.mergeConfigurations(target, source,
+                Collections.singletonMap("fo*", BuilderContext.CONFIG_MERGE_FIRST), SOURCE_ID);
+
+        // configurations
+        assertEquals(1, target.size());
+
+        // configuration origins
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins());
+
+        // properties
+        final Dictionary<String, Object> properties = target.getConfiguration("foo").getConfigurationProperties();
+        assertEquals(4, properties.size());
+        assertEquals("value-s", properties.get("source"));
+        assertEquals("value-t", properties.get("target"));
+        assertEquals("target", properties.get("foo"));
+        assertEquals("target", properties.get("bar"));
+
+        // property origins
+        assertOrigin(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("source"));
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("target"));
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("foo"));
+        assertOrigin(null, target.getConfiguration("foo").getFeatureOrigins("bar"));
     }
 
-    @Test public void testMergeConfigurationsUsingThreeExtensions() {
+    @Test
+    public void testMergeConfigurationsUsingThreeExtensions() {
         final ArtifactId SOURCE2_ID = ArtifactId.parse("source:source:2");
-        
+
         Configurations target = new Configurations();
         Configurations source = new Configurations();
         Configurations source2 = new Configurations();
@@ -1027,8 +1104,10 @@ public class BuilderUtilTest {
         Configuration foo3 = new Configuration("foo");
         foo3.getProperties().put("fooKey", "final");
         source2.add(foo3);
-        BuilderUtil.mergeConfigurations(target, source, Collections.singletonMap("fo*", BuilderContext.CONFIG_MERGE_LATEST), SOURCE_ID);
-        BuilderUtil.mergeConfigurations(target, source2, Collections.singletonMap("fo*", BuilderContext.CONFIG_MERGE_LATEST), SOURCE2_ID);
+        BuilderUtil.mergeConfigurations(target, source,
+                Collections.singletonMap("fo*", BuilderContext.CONFIG_MERGE_LATEST), SOURCE_ID);
+        BuilderUtil.mergeConfigurations(target, source2,
+                Collections.singletonMap("fo*", BuilderContext.CONFIG_MERGE_LATEST), SOURCE2_ID);
 
         assertEquals("final", target.getConfiguration("foo").getConfigurationProperties().get("fooKey"));
         assertEquals(2, target.getConfiguration("foo").getFeatureOrigins().size());
@@ -1040,27 +1119,6 @@ public class BuilderUtilTest {
         assertEquals(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins("fooKey").get(0));
         assertEquals(SOURCE2_ID, target.getConfiguration("foo").getFeatureOrigins("fooKey").get(1));
     }
-    
-    @Test public void testMergeConfigurationsMERGEFIRST() {
-        Configurations target = new Configurations();
-        Configurations source = new Configurations();
-        Configuration foo = new Configuration("foo");
-        foo.getProperties().put("fooKey", "valueFOO");
-        target.add(foo);
-        Configuration foo2 = new Configuration("foo");
-        foo2.getProperties().put("fooKey", "valueBAR");
-        foo2.getProperties().put("barKey", "valueBAR");
-        source.add(foo2);
-        BuilderUtil.mergeConfigurations(target, source, Collections.singletonMap("fo*", BuilderContext.CONFIG_MERGE_FIRST), SOURCE_ID);
-
-        assertEquals("valueFOO", target.getConfiguration("foo").getConfigurationProperties().get("fooKey"));
-        assertEquals("valueBAR", target.getConfiguration("foo").getConfigurationProperties().get("barKey"));
-        assertEquals(1, target.getConfiguration("foo").getFeatureOrigins().size());
-        assertEquals(SOURCE_ID, target.getConfiguration("foo").getFeatureOrigins().get(0));
-
-        // property origins
-        assertEquals(0, target.getConfiguration("foo").getFeatureOrigins("fooKey").size());
-    }
 
     @Test public void testMergeConfigurationsFactory() {
         Configurations target = new Configurations();