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.Mockito;
25 import org.opendaylight.neutron.spi.NeutronSecurityGroup;
26 import org.opendaylight.neutron.spi.NeutronSecurityRule;
27 import org.opendaylight.ovsdb.openstack.netvirt.api.EventDispatcher;
28 import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
29 import org.osgi.framework.BundleContext;
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;
47 posrtSecurityHandlerSpy = Mockito.spy(portSecurityHandler);
51 public void testCanCreateNeutronSecurityGroup() {
52 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_CREATED, portSecurityHandler.canCreateNeutronSecurityGroup(mock(NeutronSecurityGroup.class)));
54 posrtSecurityHandlerSpy.neutronSecurityGroupCreated(any(NeutronSecurityGroup.class));
55 verify(posrtSecurityHandlerSpy, times(1)).canCreateNeutronSecurityGroup(any(NeutronSecurityGroup.class));
59 public void testCanUpdateNeutronSecurityGroup() {
60 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canUpdateNeutronSecurityGroup(mock(NeutronSecurityGroup.class), mock(NeutronSecurityGroup.class)));
64 public void testCanDeleteNeutronSecurityGroup() {
65 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canDeleteNeutronSecurityGroup(mock(NeutronSecurityGroup.class)));
67 posrtSecurityHandlerSpy.neutronSecurityGroupDeleted(any(NeutronSecurityGroup.class));
68 verify(posrtSecurityHandlerSpy, times(1)).canDeleteNeutronSecurityGroup(any(NeutronSecurityGroup.class));
72 public void testCanCreateNeutronSecurityRule() {
73 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_CREATED, portSecurityHandler.canCreateNeutronSecurityRule(mock(NeutronSecurityRule.class)));
75 posrtSecurityHandlerSpy.neutronSecurityRuleCreated(any(NeutronSecurityRule.class));
76 verify(posrtSecurityHandlerSpy, times(1)).canCreateNeutronSecurityRule(any(NeutronSecurityRule.class));
80 public void testCanUpdateNeutronSecurityRule() {
81 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canUpdateNeutronSecurityRule(mock(NeutronSecurityRule.class), mock(NeutronSecurityRule.class)));
85 public void testCanDeleteNeutronSecurityRule() {
86 assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canDeleteNeutronSecurityRule(mock(NeutronSecurityRule.class)));
88 posrtSecurityHandlerSpy.neutronSecurityRuleDeleted(any(NeutronSecurityRule.class));
89 verify(posrtSecurityHandlerSpy, times(1)).canDeleteNeutronSecurityRule(any(NeutronSecurityRule.class));
93 public void testProcessEvent() {
94 // TODO see PortSecurityHandler#processEvent()
98 public void testSetDependencies() throws Exception {
99 EventDispatcher eventDispatcher = mock(EventDispatcher.class);
101 PowerMockito.mockStatic(ServiceHelper.class);
102 PowerMockito.when(ServiceHelper.getGlobalInstance(EventDispatcher.class, portSecurityHandler)).thenReturn(eventDispatcher);
104 portSecurityHandler.setDependencies(mock(BundleContext.class), mock(ServiceReference.class));
106 assertEquals("Error, did not return the correct object", portSecurityHandler.eventDispatcher, eventDispatcher);
110 private Object getField(String fieldName) throws Exception {
111 Field field = PortSecurityHandler.class.getDeclaredField(fieldName);
112 field.setAccessible(true);
113 return field.get(portSecurityHandler);