X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openstack%2Fnet-virt%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fovsdb%2Fopenstack%2Fnetvirt%2Fimpl%2FSecurityServicesImplTest.java;h=b0628218a19699c640911323eaa86836de67ee4e;hb=613eb189c5a38e7770644cba526a1e68560134c5;hp=6b3145a2b9e2725e366b8f8f77c06b14e22c2209;hpb=1f66dfd28f4451f666f8ba916ab8d19ef289e141;p=netvirt.git diff --git a/openstack/net-virt/src/test/java/org/opendaylight/ovsdb/openstack/netvirt/impl/SecurityServicesImplTest.java b/openstack/net-virt/src/test/java/org/opendaylight/ovsdb/openstack/netvirt/impl/SecurityServicesImplTest.java index 6b3145a2b9..b0628218a1 100644 --- a/openstack/net-virt/src/test/java/org/opendaylight/ovsdb/openstack/netvirt/impl/SecurityServicesImplTest.java +++ b/openstack/net-virt/src/test/java/org/opendaylight/ovsdb/openstack/netvirt/impl/SecurityServicesImplTest.java @@ -9,58 +9,61 @@ package org.opendaylight.ovsdb.openstack.netvirt.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.lang.reflect.Field; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; -import org.opendaylight.neutron.spi.INeutronPortCRUD; -import org.opendaylight.neutron.spi.NeutronPort; -import org.opendaylight.neutron.spi.NeutronSecurityGroup; -import org.opendaylight.ovsdb.lib.notation.Column; -import org.opendaylight.ovsdb.lib.schema.GenericTableSchema; -import org.opendaylight.ovsdb.openstack.netvirt.api.Constants; -import org.opendaylight.ovsdb.schema.openvswitch.Interface; +import org.opendaylight.ovsdb.openstack.netvirt.translator.NeutronPort; +import org.opendaylight.ovsdb.openstack.netvirt.translator.NeutronSecurityGroup; +import org.opendaylight.ovsdb.openstack.netvirt.translator.crud.INeutronPortCRUD; +import org.opendaylight.ovsdb.openstack.netvirt.api.Southbound; +import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation; + +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 SecurityServicesImpl} */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(PowerMockRunner.class) +@PrepareForTest(ServiceHelper.class) public class SecurityServicesImplTest { @InjectMocks private SecurityServicesImpl securityServicesImpl; - @InjectMocks private INeutronPortCRUD neutronPortService = mock(INeutronPortCRUD.class); - @Mock Interface intf; + @Mock private INeutronPortCRUD neutronPortCache; + @Mock private Southbound southbound; + + @Mock private NeutronSecurityGroup neutronSecurityGroup; - private List securityGroups = new ArrayList(); + private static final String NEUTRON_PORT_ID = "neutronID"; + private static final String DEVICE_OWNER = "compute"; @Before public void setUp(){ NeutronPort neutronPort = mock(NeutronPort.class); - Map externalIds =new HashMap(); - externalIds.put(Constants.EXTERNAL_ID_INTERFACE_ID, "mapValue"); - Column> columnMock = mock(Column.class); - - securityGroups.add(mock(NeutronSecurityGroup.class)); - - when(intf.getExternalIdsColumn()).thenReturn(columnMock); - when(columnMock.getData()).thenReturn(externalIds); + List securityGroups = new ArrayList<>(); + securityGroups.add(neutronSecurityGroup); when(neutronPort.getSecurityGroups()).thenReturn(securityGroups); - when(neutronPort.getDeviceOwner()).thenReturn("deviceOwner"); - when(neutronPortService.getPort(anyString())).thenReturn(neutronPort); + when(neutronPort.getDeviceOwner()).thenReturn(DEVICE_OWNER); + + when(southbound.getInterfaceExternalIdsValue(any(OvsdbTerminationPointAugmentation.class), anyString())).thenReturn(NEUTRON_PORT_ID); + when(neutronPortCache.getPort(anyString())).thenReturn(neutronPort); } /** @@ -68,14 +71,40 @@ public class SecurityServicesImplTest { */ @Test public void testIsPortSecurityReady(){ - assertTrue("Error, did not return expected boolean for isPortSecurityReady", securityServicesImpl.isPortSecurityReady(intf)); + assertTrue("Error, did not return expected boolean for isPortSecurityReady", securityServicesImpl.isPortSecurityReady(mock(OvsdbTerminationPointAugmentation.class))); } /** - * Test method {@link SecurityServicesImpl#getSecurityGroupInPort(Interface)} + * Test method {@link SecurityServicesImpl#getSecurityGroupInPortList(Interface)} */ @Test public void testSecurityGroupInPort(){ - assertEquals("Error, did not return the good neutronSecurityGroup of securityGroups", securityGroups.toArray()[0], securityServicesImpl.getSecurityGroupInPort(intf)); + assertEquals("Error, did not return the good neutronSecurityGroup of securityGroups", + neutronSecurityGroup, securityServicesImpl.getSecurityGroupInPortList(mock(OvsdbTerminationPointAugmentation.class)).get(0)); + } + + @Test + public void testSetDependencies() throws Exception { + Southbound southbound = mock(Southbound.class); + + PowerMockito.mockStatic(ServiceHelper.class); + PowerMockito.when(ServiceHelper.getGlobalInstance(Southbound.class, securityServicesImpl)).thenReturn(southbound); + + securityServicesImpl.setDependencies(mock(ServiceReference.class)); + + assertEquals("Error, did not return the correct object", getField("southbound"), southbound); + } + + @Test + public void testSetDependenciesObject() throws Exception{ + INeutronPortCRUD neutronPortCache = mock(INeutronPortCRUD.class); + securityServicesImpl.setDependencies(neutronPortCache); + assertEquals("Error, did not return the correct object", getField("neutronPortCache"), neutronPortCache); + } + + private Object getField(String fieldName) throws Exception { + Field field = SecurityServicesImpl.class.getDeclaredField(fieldName); + field.setAccessible(true); + return field.get(securityServicesImpl); } }