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 2019/02/08 23:59:55 UTC
[sling-org-apache-sling-feature-apiregions] 07/26: 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 a4649e4da4deba4c00daba838fff46a06b38a00b
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Sun Nov 4 20:19:21 2018 +0000
Unit tests for the apiregions runtime component.
---
.../feature/apiregions/impl/ResolverHookImpl.java | 1 -
.../apiregions/impl/ResolverHookImplTest.java | 28 +++++++++++++++++++++-
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java b/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
index 3e8e9f2..caecb76 100644
--- a/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
+++ b/src/main/java/org/apache/sling/feature/apiregions/impl/ResolverHookImpl.java
@@ -70,7 +70,6 @@ class ResolverHookImpl implements ResolverHook {
if (!PackageNamespace.PACKAGE_NAMESPACE.equals(requirement.getNamespace()))
return;
- System.out.println("*** Filter Matches: " + requirement);
Bundle reqBundle = requirement.getRevision().getBundle();
long reqBundleID = reqBundle.getBundleId();
String reqBundleName = reqBundle.getSymbolicName();
diff --git a/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java b/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
index 21e77e2..a50e6f7 100644
--- a/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
+++ b/src/test/java/org/apache/sling/feature/apiregions/impl/ResolverHookImplTest.java
@@ -191,6 +191,8 @@ public class ResolverHookImplTest {
Collections.singletonList("b8"));
bsnvermap.put(new AbstractMap.SimpleEntry<String,Version>("some.other.bundle", new Version(9,9,9,"suffix")),
Collections.singletonList("b9"));
+ bsnvermap.put(new AbstractMap.SimpleEntry<String,Version>("a-bundle", new Version(1,0,0,"SNAPSHOT")),
+ Collections.singletonList("b10"));
bsnvermap.put(new AbstractMap.SimpleEntry<String,Version>("a.b.c", new Version(1,2,3)),
Collections.singletonList("b17"));
@@ -198,10 +200,11 @@ public class ResolverHookImplTest {
bfmap.put("b7", Collections.singleton("f"));
bfmap.put("b8", Collections.singleton("f1"));
bfmap.put("b9", Collections.singleton("f2"));
+ bfmap.put("b10", Collections.singleton("f2"));
bfmap.put("b17", Collections.singleton("f3"));
Map<String, Set<String>> frmap = new HashMap<>();
- frmap.put("f", new HashSet<>(Arrays.asList("r1", "r2")));
+ frmap.put("f", new HashSet<>(Arrays.asList("r1", "r2", RegionEnforcer.GLOBAL_REGION)));
frmap.put("f1", Collections.singleton("r1"));
frmap.put("f2", Collections.singleton("r2"));
frmap.put("f3", Collections.singleton("r3"));
@@ -249,6 +252,29 @@ public class ResolverHookImplTest {
Collection<BundleCapability> c3 = new ArrayList<>(Arrays.asList(bc3));
rh.filterMatches(req3, c3);
assertEquals(Collections.singletonList(bc3), c3);
+
+ // Check that we can get the capability from the another bundle in the same feature
+ BundleRequirement req4 = mockRequirement("b9", bsnvermap);
+ BundleCapability bc4 = mockCapability("some.cool.package", "b10", bsnvermap);
+ Collection<BundleCapability> c4 = new ArrayList<>(Arrays.asList(bc4));
+ rh.filterMatches(req4, c4);
+ assertEquals(Collections.singletonList(bc4), c4);
+
+ // Check that we can get the capability from another bundle where the capability
+ // is globally visible b7 exposes org.bar.tar in the global region, so b17 can see it
+ BundleRequirement req5 = mockRequirement("b17", bsnvermap);
+ BundleCapability bc5 = mockCapability("org.bar.tar", "b7", bsnvermap);
+ Collection<BundleCapability> c5 = new ArrayList<>(Arrays.asList(bc5));
+ rh.filterMatches(req5, c5);
+ assertEquals(Collections.singletonList(bc5), c5);
+
+ // Check that capabilities in non-package namespaces are ignored
+ BundleRequirement req7 = Mockito.mock(BundleRequirement.class);
+ Mockito.when(req7.getNamespace()).thenReturn("some.other.namespace");
+ BundleCapability bc7 = mockCapability("org.bar", "b17", bsnvermap);
+ Collection<BundleCapability> c7 = new ArrayList<>(Arrays.asList(bc7));
+ rh.filterMatches(req7, c7);
+ assertEquals(Collections.singletonList(bc7), c7);
}
private BundleCapability mockCapability(String pkgName, String bid, Map<Entry<String, Version>, List<String>> bsnvermap) {