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
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.opendaylight.ovsdb.openstack.netvirt.translator.NeutronSecurityGroup;
27 import org.opendaylight.ovsdb.openstack.netvirt.translator.NeutronSecurityRule;
28 import org.opendaylight.ovsdb.openstack.netvirt.api.EventDispatcher;
29 import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
30 import org.osgi.framework.ServiceReference;
31 import org.powermock.api.mockito.PowerMockito;
32 import org.powermock.core.classloader.annotations.PrepareForTest;
33 import org.powermock.modules.junit4.PowerMockRunner;
36 * Unit test {@link PortSecurityHandler}
38 @RunWith(PowerMockRunner.class)
39 @PrepareForTest(ServiceHelper.class)
40 public class PortSecurityHandlerTest {
42 @InjectMocks private PortSecurityHandler portSecurityHandler;
43 private PortSecurityHandler posrtSecurityHandlerSpy;
44 @Mock EventDispatcher eventDispatcher;
48 posrtSecurityHandlerSpy = Mockito.spy(portSecurityHandler);
52 public void testCanCreateNeutronSecurityGroup() {
53 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_CREATED, portSecurityHandler.canCreateNeutronSecurityGroup(mock(NeutronSecurityGroup.class)));
55 posrtSecurityHandlerSpy.neutronSecurityGroupCreated(any(NeutronSecurityGroup.class));
56 verify(posrtSecurityHandlerSpy, times(1)).canCreateNeutronSecurityGroup(any(NeutronSecurityGroup.class));
60 public void testCanUpdateNeutronSecurityGroup() {
61 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canUpdateNeutronSecurityGroup(mock(NeutronSecurityGroup.class), mock(NeutronSecurityGroup.class)));
65 public void testCanDeleteNeutronSecurityGroup() {
66 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canDeleteNeutronSecurityGroup(mock(NeutronSecurityGroup.class)));
68 posrtSecurityHandlerSpy.neutronSecurityGroupDeleted(any(NeutronSecurityGroup.class));
69 verify(posrtSecurityHandlerSpy, times(1)).canDeleteNeutronSecurityGroup(any(NeutronSecurityGroup.class));
73 public void testCanCreateNeutronSecurityRule() {
74 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_CREATED, portSecurityHandler.canCreateNeutronSecurityRule(mock(NeutronSecurityRule.class)));
76 posrtSecurityHandlerSpy.neutronSecurityRuleCreated(any(NeutronSecurityRule.class));
77 verify(posrtSecurityHandlerSpy, times(1)).enqueueEvent(any(AbstractEvent.class));
81 public void testCanUpdateNeutronSecurityRule() {
82 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canUpdateNeutronSecurityRule(mock(NeutronSecurityRule.class), mock(NeutronSecurityRule.class)));
86 public void testCanDeleteNeutronSecurityRule() {
87 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canDeleteNeutronSecurityRule(mock(NeutronSecurityRule.class)));
89 posrtSecurityHandlerSpy.neutronSecurityRuleDeleted(any(NeutronSecurityRule.class));
90 verify(posrtSecurityHandlerSpy, times(1)).enqueueEvent(any(AbstractEvent.class));
94 public void testProcessEvent() {
95 // TODO see PortSecurityHandler#processEvent()
99 public void testSetDependencies() throws Exception {
100 EventDispatcher eventDispatcher = mock(EventDispatcher.class);
102 PowerMockito.mockStatic(ServiceHelper.class);
103 PowerMockito.when(ServiceHelper.getGlobalInstance(EventDispatcher.class, portSecurityHandler)).thenReturn(eventDispatcher);
105 portSecurityHandler.setDependencies(mock(ServiceReference.class));
107 assertEquals("Error, did not return the correct object", portSecurityHandler.eventDispatcher, eventDispatcher);
111 private Object getField(String fieldName) throws Exception {
112 Field field = PortSecurityHandler.class.getDeclaredField(fieldName);
113 field.setAccessible(true);
114 return field.get(portSecurityHandler);