fix unit test to desired behavior: register overlay resource provider with higher service ranking
with osgi-mock 1.4.0 it worked before because this hat a flaw in comparing service references
diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/Fixture.java b/src/test/java/org/apache/sling/resourceresolver/impl/Fixture.java
index b79ec3a..a4a1eda 100644
--- a/src/test/java/org/apache/sling/resourceresolver/impl/Fixture.java
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/Fixture.java
@@ -27,6 +27,7 @@
import org.apache.sling.resourceresolver.impl.providers.ResourceProviderInfo;
import org.apache.sling.spi.resource.provider.ResourceProvider;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
@@ -43,12 +44,21 @@
this.bc = bc;
}
- public ResourceProviderInfo registerResourceProvider(ResourceProvider<?> rp, String root, AuthType authType) throws InvalidSyntaxException {
+ public ResourceProviderInfo registerResourceProvider(ResourceProvider<?> rp, String root,
+ AuthType authType) throws InvalidSyntaxException {
+ return registerResourceProvider(rp, root, authType, 0);
+ }
+
+ public ResourceProviderInfo registerResourceProvider(ResourceProvider<?> rp, String root,
+ AuthType authType, int serviceRanking) throws InvalidSyntaxException {
- Dictionary<String, String> props = new Hashtable<String, String>();
+ Dictionary<String, Object> props = new Hashtable<>();
props.put(ResourceProvider.PROPERTY_ROOT, root);
props.put(ResourceProvider.PROPERTY_AUTHENTICATE, authType.name());
props.put(ResourceProvider.PROPERTY_MODIFIABLE, Boolean.TRUE.toString());
+ if (serviceRanking != 0) {
+ props.put(Constants.SERVICE_RANKING, serviceRanking);
+ }
ServiceRegistration registration = bc.registerService(ResourceProvider.class.getName(), rp, props);
diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTrackerTest.java b/src/test/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTrackerTest.java
index 9467690..d0ed944 100644
--- a/src/test/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTrackerTest.java
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTrackerTest.java
@@ -199,10 +199,10 @@
addedCalled.set(false);
removedCalled.set(false);
- // add overlay provider
+ // add overlay provider with higher service ranking
@SuppressWarnings("unchecked")
ResourceProvider<Object> rp2 = mock(ResourceProvider.class);
- final ResourceProviderInfo infoOverlay = fixture.registerResourceProvider(rp2, "/", AuthType.no);
+ final ResourceProviderInfo infoOverlay = fixture.registerResourceProvider(rp2, "/", AuthType.no, 1000);
// check added and removed is called
assertTrue(addedCalled.get());