2 * Copyright (c) 2015 Inocybe and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.ovsdb.openstack.netvirt.impl;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertTrue;
12 import static org.mockito.Matchers.anyString;
13 import static org.mockito.Mockito.mock;
14 import static org.mockito.Mockito.when;
16 import java.util.ArrayList;
17 import java.util.HashMap;
18 import java.util.List;
21 import org.junit.Before;
22 import org.junit.Test;
23 import org.junit.runner.RunWith;
24 import org.mockito.InjectMocks;
25 import org.mockito.Mock;
26 import org.mockito.runners.MockitoJUnitRunner;
27 import org.opendaylight.neutron.spi.INeutronPortCRUD;
28 import org.opendaylight.neutron.spi.NeutronPort;
29 import org.opendaylight.neutron.spi.NeutronSecurityGroup;
30 import org.opendaylight.ovsdb.lib.notation.Column;
31 import org.opendaylight.ovsdb.lib.schema.GenericTableSchema;
32 import org.opendaylight.ovsdb.openstack.netvirt.api.Constants;
33 import org.opendaylight.ovsdb.schema.openvswitch.Interface;
36 * Unit test for class SecurityServicesImpl
38 @RunWith(MockitoJUnitRunner.class)
39 public class SecurityServicesImplTest {
41 @Mock private Interface intf;
42 @Mock private NeutronPort neutronPort;
44 @InjectMocks private SecurityServicesImpl securityServicesImpl;
45 @InjectMocks private INeutronPortCRUD neutronPortCache = mock(INeutronPortCRUD.class);
47 private List<NeutronSecurityGroup> securityGroups = new ArrayList<NeutronSecurityGroup>();
51 Map<String, String> externalIds =new HashMap<String, String>();
52 externalIds.put(Constants.EXTERNAL_ID_INTERFACE_ID, "mapValue");
53 Column<GenericTableSchema, Map<String, String>> columnMock = mock(Column.class);
55 securityGroups.add(mock(NeutronSecurityGroup.class));
57 // configure interface
58 when(intf.getExternalIdsColumn()).thenReturn(columnMock);
59 when(columnMock.getData()).thenReturn(externalIds);
61 // configure neutronPort
62 when(neutronPort.getSecurityGroups()).thenReturn(securityGroups);
63 when(neutronPortCache.getPort(anyString())).thenReturn(neutronPort);
67 * Test method {@link SecurityServicesImpl#isPortSecurityReady(Interface)}
70 public void testIsPortSecurityReady(){
71 // configure neutronPort
72 when(neutronPort.getDeviceOwner()).thenReturn("deviceOwner");
75 assertTrue("Error, did not return expected boolean for isPortSecurityReady", securityServicesImpl.isPortSecurityReady(intf));
79 * Test method {@link SecurityServicesImpl#getSecurityGroupInPort(Interface)}
82 public void testSecurityGroupInPort(){
84 assertEquals("Error, did not return the good neutronSecurityGroup of securityGroups", securityGroups.toArray()[0], securityServicesImpl.getSecurityGroupInPort(intf));