You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2018/11/07 11:45:23 UTC

[sling-org-apache-sling-feature-apiregions] 03/19: Unit tests for the apiregions runtime component.

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

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

commit b3c8e9b3e49f5d4e4fbd662ee87c70312a3fe0ef
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Sat Nov 3 11:21:21 2018 +0000

    Unit tests for the apiregions runtime component.
---
 pom.xml                                            |  1 +
 .../feature/apiregions/impl/RegionEnforcer.java    |  2 +-
 .../apiregions/impl/RegionEnforcerTest.java        | 43 ++++++++++++++++++++++
 src/test/resources/bundles1.properties             |  5 +++
 src/test/resources/features1.properties            |  4 ++
 src/test/resources/regions1.properties             |  4 ++
 6 files changed, 58 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5602b63..6f46e29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,7 @@
                 <configuration>
                     <excludes>
                         <exclude>*.md</exclude>
+                        <exclude>src/test/resources/*</exclude>
                     </excludes>
                 </configuration>
             </plugin>
diff --git a/src/main/java/org/apache/sling/feature/apiregions/impl/RegionEnforcer.java b/src/main/java/org/apache/sling/feature/apiregions/impl/RegionEnforcer.java
index 7a5c673..ab56dd2 100644
--- a/src/main/java/org/apache/sling/feature/apiregions/impl/RegionEnforcer.java
+++ b/src/main/java/org/apache/sling/feature/apiregions/impl/RegionEnforcer.java
@@ -43,8 +43,8 @@ class RegionEnforcer implements ResolverHookFactory {
     static final String PROPERTIES_FILE_PREFIX = "whitelisting.";
     static final String IDBSNVER_FILENAME = "idbsnver.properties";
     static final String BUNDLE_FEATURE_FILENAME = "bundles.properties";
-    static final String REGION_PACKAGE_FILENAME = "regions.properties";
     static final String FEATURE_REGION_FILENAME = "features.properties";
+    static final String REGION_PACKAGE_FILENAME = "regions.properties";
 
     final Map<Map.Entry<String, Version>, List<String>> bsnVerMap;
     final Map<String, Set<String>> bundleFeatureMap;
diff --git a/src/test/java/org/apache/sling/feature/apiregions/impl/RegionEnforcerTest.java b/src/test/java/org/apache/sling/feature/apiregions/impl/RegionEnforcerTest.java
index 419c0ea..2225bab 100644
--- a/src/test/java/org/apache/sling/feature/apiregions/impl/RegionEnforcerTest.java
+++ b/src/test/java/org/apache/sling/feature/apiregions/impl/RegionEnforcerTest.java
@@ -29,8 +29,11 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Properties;
 
+import static org.apache.sling.feature.apiregions.impl.RegionEnforcer.BUNDLE_FEATURE_FILENAME;
+import static org.apache.sling.feature.apiregions.impl.RegionEnforcer.FEATURE_REGION_FILENAME;
 import static org.apache.sling.feature.apiregions.impl.RegionEnforcer.IDBSNVER_FILENAME;
 import static org.apache.sling.feature.apiregions.impl.RegionEnforcer.PROPERTIES_FILE_PREFIX;
+import static org.apache.sling.feature.apiregions.impl.RegionEnforcer.REGION_PACKAGE_FILENAME;
 import static org.junit.Assert.assertEquals;
 
 public class RegionEnforcerTest {
@@ -68,6 +71,46 @@ public class RegionEnforcerTest {
                 re.bsnVerMap.get(new AbstractMap.SimpleEntry<String,Version>("b1", new Version(1,0,0))));
         assertEquals(new HashSet<>(Arrays.asList("g:b2:1.2.3", "g2:b2:1.2.4")),
                 new HashSet<>(re.bsnVerMap.get(new AbstractMap.SimpleEntry<String,Version>("b2", new Version(1,2,3)))));
+    }
+
+    @Test
+    public void testLoadBundleFeatureMap() throws Exception {
+        String f = getClass().getResource("/bundles1.properties").getFile();
+        System.setProperty(PROPERTIES_FILE_PREFIX + BUNDLE_FEATURE_FILENAME, f);
+
+        RegionEnforcer re = new RegionEnforcer();
+        assertEquals(3, re.bundleFeatureMap.size());
+        assertEquals(Collections.singleton("org.sling:something:1.2.3:slingosgifeature:myclassifier"),
+                re.bundleFeatureMap.get("org.sling:b1:1"));
+        assertEquals(Collections.singleton("org.sling:something:1.2.3:slingosgifeature:myclassifier"),
+                re.bundleFeatureMap.get("org.sling:b2:1"));
+        assertEquals(new HashSet<>(Arrays.asList("some.other:feature:123", "org.sling:something:1.2.3:slingosgifeature:myclassifier")),
+                re.bundleFeatureMap.get("org.sling:b3:1"));
+    }
+
+    @Test
+    public void testLoadFeatureRegionMap() throws Exception {
+        String f = getClass().getResource("/features1.properties").getFile();
+        System.setProperty(PROPERTIES_FILE_PREFIX + FEATURE_REGION_FILENAME, f);
+
+        RegionEnforcer re = new RegionEnforcer();
+        assertEquals(2, re.featureRegionMap.size());
+        assertEquals(Collections.singleton("global"),
+                re.featureRegionMap.get("an.other:feature:123"));
+        assertEquals(new HashSet<>(Arrays.asList("global", "internal")),
+                re.featureRegionMap.get("org.sling:something:1.2.3"));
+    }
 
+    @Test
+    public void testLoadRegionPackageMap() throws Exception {
+        String f = getClass().getResource("/regions1.properties").getFile();
+        System.setProperty(PROPERTIES_FILE_PREFIX + REGION_PACKAGE_FILENAME, f);
+
+        RegionEnforcer re = new RegionEnforcer();
+        assertEquals(2, re.regionPackageMap.size());
+        assertEquals(Collections.singleton("xyz"),
+                re.regionPackageMap.get("internal"));
+        assertEquals(new HashSet<>(Arrays.asList("a.b.c", "d.e.f", "test")),
+                re.regionPackageMap.get("global"));
     }
 }
diff --git a/src/test/resources/bundles1.properties b/src/test/resources/bundles1.properties
new file mode 100644
index 0000000..7497eaf
--- /dev/null
+++ b/src/test/resources/bundles1.properties
@@ -0,0 +1,5 @@
+#Generated at Sat Nov 03 10:58:58 GMT 2018
+#Sat Nov 03 10:58:58 GMT 2018
+org.sling\:b3\:1=some.other\:feature\:123,org.sling\:something\:1.2.3\:slingosgifeature\:myclassifier
+org.sling\:b2\:1=org.sling\:something\:1.2.3\:slingosgifeature\:myclassifier
+org.sling\:b1\:1=org.sling\:something\:1.2.3\:slingosgifeature\:myclassifier
diff --git a/src/test/resources/features1.properties b/src/test/resources/features1.properties
new file mode 100644
index 0000000..9efad8d
--- /dev/null
+++ b/src/test/resources/features1.properties
@@ -0,0 +1,4 @@
+#Generated at Sat Nov 03 11:10:29 GMT 2018
+#Sat Nov 03 11:10:29 GMT 2018
+an.other\:feature\:123=global
+org.sling\:something\:1.2.3=internal,global
diff --git a/src/test/resources/regions1.properties b/src/test/resources/regions1.properties
new file mode 100644
index 0000000..a4982d7
--- /dev/null
+++ b/src/test/resources/regions1.properties
@@ -0,0 +1,4 @@
+#Generated at Sat Nov 03 11:10:29 GMT 2018
+#Sat Nov 03 11:10:29 GMT 2018
+internal=xyz
+global=d.e.f,test,a.b.c