Fix Bug 3663: Update netvirt UT
[ovsdb.git] / openstack / net-virt / src / test / java / org / opendaylight / ovsdb / openstack / netvirt / FloatingIPHandlerTest.java
index ddc298c1c975323b2202c6e1c01b29913596ce2f..c05ac5e0135a9a3fb35a78d863443afe0c24dd38 100644 (file)
@@ -12,28 +12,35 @@ import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
+import java.lang.reflect.Field;
 import java.net.HttpURLConnection;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.Mock;
 import org.opendaylight.neutron.spi.NeutronFloatingIP;
 import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
+import org.opendaylight.ovsdb.openstack.netvirt.api.EventDispatcher;
 import org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter;
+import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
 
 /**
  * Unit test for {@link FloatingIPHandler}
  */
-@RunWith(MockitoJUnitRunner.class)
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ServiceHelper.class)
 public class FloatingIPHandlerTest {
 
-    @InjectMocks private FloatingIPHandler floatingHandler = mock(FloatingIPHandler.class, Mockito.CALLS_REAL_METHODS);
-    @InjectMocks private NeutronL3Adapter neutronL3Adapter = mock(NeutronL3Adapter.class);
+    @InjectMocks FloatingIPHandler floatingHandler;
+    @Mock NeutronL3Adapter neutronL3Adapter;
 
     @Test
     public void testCanCreateFloatingIP(){
@@ -68,4 +75,25 @@ public class FloatingIPHandlerTest {
         floatingHandler.processEvent((AbstractEvent) ev);
         verify(neutronL3Adapter, times(1)).handleNeutronFloatingIPEvent(ev.getNeutronFloatingIP(), ev.getAction());;
     }
+
+    @Test
+    public void testSetDependencies() throws Exception {
+        EventDispatcher eventDispatcher = mock(EventDispatcher.class);
+        NeutronL3Adapter neutronL3Adapter = mock(NeutronL3Adapter.class);
+
+        PowerMockito.mockStatic(ServiceHelper.class);
+        PowerMockito.when(ServiceHelper.getGlobalInstance(EventDispatcher.class, floatingHandler)).thenReturn(eventDispatcher);
+        PowerMockito.when(ServiceHelper.getGlobalInstance(NeutronL3Adapter.class, floatingHandler)).thenReturn(neutronL3Adapter);
+
+        floatingHandler.setDependencies(mock(BundleContext.class), mock(ServiceReference.class));
+
+        assertEquals("Error, did not return the correct object", floatingHandler.eventDispatcher, eventDispatcher);
+        assertEquals("Error, did not return the correct object", getNeutronL3Adapter(), neutronL3Adapter);
+    }
+
+    private NeutronL3Adapter getNeutronL3Adapter() throws Exception {
+        Field field = FloatingIPHandler.class.getDeclaredField("neutronL3Adapter");
+        field.setAccessible(true);
+        return (NeutronL3Adapter) field.get(floatingHandler);
+    }
 }