2 * Copyright (c) 2015, 2016 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
9 package org.opendaylight.ovsdb.openstack.netvirt;
11 import static org.junit.Assert.assertEquals;
12 import static org.mockito.Matchers.any;
13 import static org.mockito.Mockito.mock;
14 import static org.mockito.Mockito.times;
15 import static org.mockito.Mockito.verify;
17 import java.lang.reflect.Field;
18 import java.net.HttpURLConnection;
20 import org.junit.Before;
21 import org.junit.Test;
22 import org.junit.runner.RunWith;
23 import org.mockito.InjectMocks;
24 import org.mockito.Mock;
25 import org.mockito.Mockito;
26 import org.mockito.runners.MockitoJUnitRunner;
27 import org.opendaylight.ovsdb.openstack.netvirt.api.EventDispatcher;
28 import org.opendaylight.ovsdb.openstack.netvirt.translator.NeutronSecurityGroup;
29 import org.opendaylight.ovsdb.openstack.netvirt.translator.NeutronSecurityRule;
30 import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
31 import org.osgi.framework.ServiceReference;
34 * Unit test {@link PortSecurityHandler}
36 @RunWith(MockitoJUnitRunner.class)
37 public class PortSecurityHandlerTest {
39 @InjectMocks private PortSecurityHandler portSecurityHandler;
40 private PortSecurityHandler posrtSecurityHandlerSpy;
41 @Mock EventDispatcher eventDispatcher;
45 posrtSecurityHandlerSpy = Mockito.spy(portSecurityHandler);
49 public void testCanCreateNeutronSecurityGroup() {
50 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_CREATED, portSecurityHandler.canCreateNeutronSecurityGroup(mock(NeutronSecurityGroup.class)));
52 posrtSecurityHandlerSpy.neutronSecurityGroupCreated(any(NeutronSecurityGroup.class));
53 verify(posrtSecurityHandlerSpy, times(1)).canCreateNeutronSecurityGroup(any(NeutronSecurityGroup.class));
57 public void testCanUpdateNeutronSecurityGroup() {
58 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canUpdateNeutronSecurityGroup(mock(NeutronSecurityGroup.class), mock(NeutronSecurityGroup.class)));
62 public void testCanDeleteNeutronSecurityGroup() {
63 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canDeleteNeutronSecurityGroup(mock(NeutronSecurityGroup.class)));
65 posrtSecurityHandlerSpy.neutronSecurityGroupDeleted(any(NeutronSecurityGroup.class));
66 verify(posrtSecurityHandlerSpy, times(1)).canDeleteNeutronSecurityGroup(any(NeutronSecurityGroup.class));
70 public void testCanCreateNeutronSecurityRule() {
71 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_CREATED, portSecurityHandler.canCreateNeutronSecurityRule(mock(NeutronSecurityRule.class)));
73 posrtSecurityHandlerSpy.neutronSecurityRuleCreated(any(NeutronSecurityRule.class));
74 verify(posrtSecurityHandlerSpy, times(1)).enqueueEvent(any(AbstractEvent.class));
78 public void testCanUpdateNeutronSecurityRule() {
79 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canUpdateNeutronSecurityRule(mock(NeutronSecurityRule.class), mock(NeutronSecurityRule.class)));
83 public void testCanDeleteNeutronSecurityRule() {
84 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canDeleteNeutronSecurityRule(mock(NeutronSecurityRule.class)));
86 posrtSecurityHandlerSpy.neutronSecurityRuleDeleted(any(NeutronSecurityRule.class));
87 verify(posrtSecurityHandlerSpy, times(1)).enqueueEvent(any(AbstractEvent.class));
91 public void testProcessEvent() {
92 // TODO see PortSecurityHandler#processEvent()
96 public void testSetDependencies() throws Exception {
97 EventDispatcher eventDispatcher = mock(EventDispatcher.class);
99 ServiceHelper.overrideGlobalInstance(EventDispatcher.class, eventDispatcher);
101 portSecurityHandler.setDependencies(mock(ServiceReference.class));
103 assertEquals("Error, did not return the correct object", portSecurityHandler.eventDispatcher, eventDispatcher);
107 private Object getField(String fieldName) throws Exception {
108 Field field = PortSecurityHandler.class.getDeclaredField(fieldName);
109 field.setAccessible(true);
110 return field.get(portSecurityHandler);