Merge "L3: Add eth to br-ex"
[ovsdb.git] / openstack / net-virt / src / test / java / org / opendaylight / ovsdb / openstack / netvirt / impl / ProviderNetworkManagerImplTest.java
index 3a32a9e0e567e8fc7041ebdca3f2f6b2030a18ee..54e44a45911a93bddc6488a5bb5d65e9fb88ea3c 100644 (file)
@@ -13,26 +13,37 @@ import static org.mockito.Mockito.when;
 
 import java.lang.reflect.Field;
 import java.util.HashMap;
+import java.util.Map;
 
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
+import org.mockito.Mock;
 import org.mockito.Spy;
-import org.mockito.runners.MockitoJUnitRunner;
 import org.opendaylight.ovsdb.openstack.netvirt.api.NetworkingProvider;
+import org.opendaylight.ovsdb.openstack.netvirt.api.OvsdbInventoryService;
+import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
+
 import org.osgi.framework.ServiceReference;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import com.google.common.collect.Maps;
 
 /**
  * Unit test for {@link ProviderNetworkManagerImpl}
  */
-/* TODO SB_MIGRATION */ @Ignore
-@RunWith(MockitoJUnitRunner.class)
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ServiceHelper.class)
 public class ProviderNetworkManagerImplTest {
 
     @InjectMocks private ProviderNetworkManagerImpl providerNetworkManagerImpl;
-    @Spy private HashMap<Node, NetworkingProvider> nodeToProviderMapping;
+
+    @Mock private OvsdbInventoryService ovsdbInventoryService;
+
+    @Spy private Map<Node, NetworkingProvider> nodeToProviderMapping = Maps.newHashMap();
 
     /**
      * Test method {@link ProviderNetworkManagerImpl#getProvider(Node)}
@@ -41,8 +52,6 @@ public class ProviderNetworkManagerImplTest {
     public void testGetProvider(){
         // TODO test the method with no networkingProvider in the map
         // Could not be done as ProviderEntry is a private inner class of ProviderNetworkManagerImpl
-//        assertNotNull("Error, did not return the networkingProvider of the specified node", providerNetworkManagerImpl.getProvider(any(Node.class));
-
         Node node = mock(Node.class);
         NetworkingProvider networkingProvider = mock(NetworkingProvider.class);
         nodeToProviderMapping.put(node, networkingProvider);
@@ -55,12 +64,10 @@ public class ProviderNetworkManagerImplTest {
      */
     @Test
     public void testProviderAddedAndRemoved() throws Exception {
-        Field field = ProviderNetworkManagerImpl.class.getDeclaredField("providers");
-        field.setAccessible(true);
-        HashMap map = (HashMap) field.get(providerNetworkManagerImpl);
+        Map<?, ?> map = (HashMap<?, ?>) getField("providers");
 
-        ServiceReference ref = mock(ServiceReference.class);
-        when(ref.getProperty(org.osgi.framework.Constants.SERVICE_ID)).thenReturn(Long.valueOf(1));
+        ServiceReference<?> ref = mock(ServiceReference.class);
+        when(ref.getProperty(org.osgi.framework.Constants.SERVICE_ID)).thenReturn(1L);
 
         providerNetworkManagerImpl.providerAdded(ref, mock(NetworkingProvider.class));
 
@@ -70,4 +77,22 @@ public class ProviderNetworkManagerImplTest {
 
         assertEquals("Error, providerRemoved() did not remove the provider", 0, map.size());
     }
+
+    @Test
+    public void testSetDependencies() throws Exception {
+        OvsdbInventoryService ovsdbInventoryService = mock(OvsdbInventoryService.class);
+
+        PowerMockito.mockStatic(ServiceHelper.class);
+        PowerMockito.when(ServiceHelper.getGlobalInstance(OvsdbInventoryService.class, providerNetworkManagerImpl)).thenReturn(ovsdbInventoryService);
+
+        providerNetworkManagerImpl.setDependencies(mock(ServiceReference.class));
+
+        assertEquals("Error, did not return the correct object", getField("ovsdbInventoryService"), ovsdbInventoryService);
+    }
+
+    private Object getField(String fieldName) throws Exception {
+        Field field = ProviderNetworkManagerImpl.class.getDeclaredField(fieldName);
+        field.setAccessible(true);
+        return field.get(providerNetworkManagerImpl);
+    }
 }