You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2015/09/28 15:16:45 UTC
svn commit: r1705686 - in /felix/trunk/resolver/src:
main/java/org/apache/felix/resolver/ResolverImpl.java
test/java/org/apache/felix/resolver/test/ResolverTest.java
Author: davidb
Date: Mon Sep 28 13:16:45 2015
New Revision: 1705686
URL: http://svn.apache.org/viewvc?rev=1705686&view=rev
Log:
FELIX-5015 Unit tests (for NPE in ResolverImpl)
Modified:
felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
felix/trunk/resolver/src/test/java/org/apache/felix/resolver/test/ResolverTest.java
Modified: felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java?rev=1705686&r1=1705685&r2=1705686&view=diff
==============================================================================
--- felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java (original)
+++ felix/trunk/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java Mon Sep 28 13:16:45 2015
@@ -40,7 +40,6 @@ import java.util.concurrent.atomic.Atomi
import org.apache.felix.resolver.util.ArrayMap;
import org.apache.felix.resolver.util.OpenHashMap;
-
import org.osgi.framework.namespace.BundleNamespace;
import org.osgi.framework.namespace.ExecutionEnvironmentNamespace;
import org.osgi.framework.namespace.HostNamespace;
@@ -1730,12 +1729,12 @@ public class ResolverImpl implements Res
}
Set<Capability> packageSources = sources.get(cap);
- if(packageSources == null)
+ if(packageSources == null)
{
return new HashSet<Capability>();
}
- return packageSources;
+ return packageSources;
}
private static void getPackageSourcesInternal(
@@ -2074,7 +2073,7 @@ public class ResolverImpl implements Res
}
}
- private static class Packages
+ public static class Packages
{
public final OpenHashMap<String, Blame> m_exportedPkgs;
public final OpenHashMap<String, List<Blame>> m_importedPkgs;
Modified: felix/trunk/resolver/src/test/java/org/apache/felix/resolver/test/ResolverTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/resolver/src/test/java/org/apache/felix/resolver/test/ResolverTest.java?rev=1705686&r1=1705685&r2=1705686&view=diff
==============================================================================
--- felix/trunk/resolver/src/test/java/org/apache/felix/resolver/test/ResolverTest.java (original)
+++ felix/trunk/resolver/src/test/java/org/apache/felix/resolver/test/ResolverTest.java Mon Sep 28 13:16:45 2015
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -30,6 +31,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.apache.felix.resolver.Logger;
import org.apache.felix.resolver.ResolverImpl;
@@ -42,6 +44,7 @@ import org.apache.felix.resolver.test.ut
import org.apache.felix.resolver.test.util.ResolveContextImpl;
import org.apache.felix.resolver.test.util.ResourceImpl;
import org.junit.Test;
+import org.mockito.Mockito;
import org.osgi.framework.Constants;
import org.osgi.framework.namespace.BundleNamespace;
import org.osgi.framework.namespace.HostNamespace;
@@ -577,6 +580,37 @@ public class ResolverTest
assertEquals(0, wireMap.size());
}
+ @Test
+ public void testPackageSources() throws Exception {
+ Method m = ResolverImpl.class.getDeclaredMethod("getPackageSources",
+ Capability.class, Map.class);
+ m.setAccessible(true);
+
+ Capability cap = Mockito.mock(Capability.class);
+ assertEquals(Collections.emptySet(),
+ m.invoke(null, cap, new HashMap<Resource, ResolverImpl.Packages>()));
+
+ Capability cap2 = Mockito.mock(Capability.class);
+ Resource res2 = Mockito.mock(Resource.class);
+ Mockito.when(cap2.getResource()).thenReturn(res2);
+ Map<Resource, ResolverImpl.Packages> map2 = new HashMap<Resource, ResolverImpl.Packages>();
+ map2.put(res2, new ResolverImpl.Packages(res2));
+ assertEquals(Collections.emptySet(), m.invoke(null, cap2, map2));
+
+ Capability cap3 = Mockito.mock(Capability.class);
+ Resource res3 = Mockito.mock(Resource.class);
+ Mockito.when(cap3.getResource()).thenReturn(res3);
+ Map<Resource, ResolverImpl.Packages> map3 = new HashMap<Resource, ResolverImpl.Packages>();
+ ResolverImpl.Packages pkgs3 = new ResolverImpl.Packages(res3);
+ Set<Capability> srcCaps3 = Collections.singleton(Mockito.mock(Capability.class));
+ Map<Capability, Set<Capability>> srcMap3 = Collections.singletonMap(
+ cap3, srcCaps3);
+ pkgs3.m_sources.putAll(srcMap3);
+ map3.put(res3, pkgs3);
+ assertEquals(srcCaps3, m.invoke(null, cap3, map3));
+
+ }
+
private static String getResourceName(Resource r)
{
return r.getCapabilities(IdentityNamespace.IDENTITY_NAMESPACE).get(0).getAttributes()