Update .gitreview for new repo
[netvirt.git] / openstack / net-virt / src / test / java / org / opendaylight / ovsdb / openstack / netvirt / PortSecurityHandlerTest.java
1 /*
2  * Copyright (c) 2015, 2016 Inocybe and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.ovsdb.openstack.netvirt;
10
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;
16
17 import java.lang.reflect.Field;
18 import java.net.HttpURLConnection;
19
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;
32
33 /**
34  * Unit test {@link PortSecurityHandler}
35  */
36 @RunWith(MockitoJUnitRunner.class)
37 public class PortSecurityHandlerTest {
38
39     @InjectMocks private PortSecurityHandler portSecurityHandler;
40     private PortSecurityHandler posrtSecurityHandlerSpy;
41     @Mock EventDispatcher eventDispatcher;
42
43     @Before
44     public void setUp() {
45         posrtSecurityHandlerSpy = Mockito.spy(portSecurityHandler);
46     }
47
48     @Test
49     public void testCanCreateNeutronSecurityGroup() {
50         assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_CREATED, portSecurityHandler.canCreateNeutronSecurityGroup(mock(NeutronSecurityGroup.class)));
51
52         posrtSecurityHandlerSpy.neutronSecurityGroupCreated(any(NeutronSecurityGroup.class));
53         verify(posrtSecurityHandlerSpy, times(1)).canCreateNeutronSecurityGroup(any(NeutronSecurityGroup.class));
54     }
55
56     @Test
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)));
59     }
60
61     @Test
62     public void testCanDeleteNeutronSecurityGroup() {
63         assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canDeleteNeutronSecurityGroup(mock(NeutronSecurityGroup.class)));
64
65         posrtSecurityHandlerSpy.neutronSecurityGroupDeleted(any(NeutronSecurityGroup.class));
66         verify(posrtSecurityHandlerSpy, times(1)).canDeleteNeutronSecurityGroup(any(NeutronSecurityGroup.class));
67     }
68
69     @Test
70     public void testCanCreateNeutronSecurityRule() {
71         assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_CREATED, portSecurityHandler.canCreateNeutronSecurityRule(mock(NeutronSecurityRule.class)));
72
73         posrtSecurityHandlerSpy.neutronSecurityRuleCreated(any(NeutronSecurityRule.class));
74         verify(posrtSecurityHandlerSpy, times(1)).enqueueEvent(any(AbstractEvent.class));
75     }
76
77     @Test
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)));
80     }
81
82     @Test
83     public void testCanDeleteNeutronSecurityRule() {
84         assertEquals("Error, did not return the correct HTTP flag", HttpURLConnection.HTTP_OK, portSecurityHandler.canDeleteNeutronSecurityRule(mock(NeutronSecurityRule.class)));
85
86         posrtSecurityHandlerSpy.neutronSecurityRuleDeleted(any(NeutronSecurityRule.class));
87         verify(posrtSecurityHandlerSpy, times(1)).enqueueEvent(any(AbstractEvent.class));
88    }
89
90     @Test
91     public void testProcessEvent() {
92         // TODO see PortSecurityHandler#processEvent()
93     }
94
95     @Test
96     public void testSetDependencies() throws Exception {
97         EventDispatcher eventDispatcher = mock(EventDispatcher.class);
98
99         ServiceHelper.overrideGlobalInstance(EventDispatcher.class, eventDispatcher);
100
101         portSecurityHandler.setDependencies(mock(ServiceReference.class));
102
103         assertEquals("Error, did not return the correct object", portSecurityHandler.eventDispatcher, eventDispatcher);
104     }
105
106
107     private Object getField(String fieldName) throws Exception {
108         Field field = PortSecurityHandler.class.getDeclaredField(fieldName);
109         field.setAccessible(true);
110         return field.get(portSecurityHandler);
111     }
112
113 }