Removing jackson to mitigate cve-2017-4995
[vfc/nfvo/driver/vnfm/svnfm.git] / nokiav2 / driver / src / test / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / nokia / onap / direct / notification / TestLInterfaceManager.java
1 /*
2  * Copyright 2016-2017, Nokia Corporation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.notification;
17
18 import java.util.ArrayList;
19 import org.junit.Before;
20 import org.junit.Test;
21 import org.mockito.ArgumentCaptor;
22 import org.mockito.Mock;
23 import org.onap.aai.api.CloudInfrastructureApi;
24 import org.onap.aai.model.LInterface;
25 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.AAIRestApiProvider;
26 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.TestBase;
27 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.notification.ReportedAffectedCp;
28
29 import static java.lang.Boolean.FALSE;
30 import static java.lang.Boolean.TRUE;
31
32 import static junit.framework.TestCase.assertEquals;
33 import static org.mockito.Matchers.eq;
34 import static org.mockito.Mockito.when;
35 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.notification.AbstractManager.buildRelationshipData;
36 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.notification.TestGenericVnfManager.assertRelation;
37 import static org.springframework.test.util.ReflectionTestUtils.setField;
38
39 public class TestLInterfaceManager extends TestBase {
40     private ArgumentCaptor<LInterface> payload = ArgumentCaptor.forClass(LInterface.class);
41
42     @Mock
43     private AAIRestApiProvider aaiRestApiProvider;
44     private LInterfaceManager lInterfaceManager;
45     @Mock
46     private CloudInfrastructureApi cloudInfrastructureApi;
47
48     @Before
49     public void init() {
50         lInterfaceManager = new LInterfaceManager(aaiRestApiProvider, cbamRestApiProvider, driverProperties);
51         setField(LInterfaceManager.class, "logger", logger);
52         when(aaiRestApiProvider.getCloudInfrastructureApi()).thenReturn(cloudInfrastructureApi);
53     }
54
55     /**
56      * test update success scenario
57      */
58     @Test
59     public void testUpdate() throws Exception {
60         ReportedAffectedCp affectedCp = new ReportedAffectedCp();
61         affectedCp.setCpdId("cpdId");
62         affectedCp.setTenantId("myTenantId");
63         affectedCp.setProviderId("portProviderId");
64         affectedCp.setServerProviderId("serverProviderId");
65         affectedCp.setNetworkProviderId("networkProviderId");
66         affectedCp.setMacAddress("mac");
67         affectedCp.setIpAddress("1.2.3.4");
68         affectedCp.setEcpdId("ecpdId");
69         affectedCp.setName("name");
70         affectedCp.setCpId("cpId");
71         LInterface lInterface = new LInterface();
72         lInterface.setResourceVersion("v3");
73         lInterface.setRelationshipList(new ArrayList<>());
74         when(cloudInfrastructureApi.getCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface("myCloudOwnerId", "myRegionName", "myTenantId", "serverProviderId", "cpId", null, null, null, null, null, null, null, null, null, null, null, null)).thenReturn(buildObservable(lInterface));
75         when(cloudInfrastructureApi.createOrUpdateCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface(eq("myCloudOwnerId"), eq("myRegionName"), eq("myTenantId"), eq("serverProviderId"), eq("cpId"), payload.capture())).thenReturn(null);
76         //when
77         lInterfaceManager.update(VNF_ID, VIM_ID, affectedCp, true);
78         //verify
79         LInterface actualInterface = payload.getValue();
80         assertEquals(TRUE, actualInterface.isInMaint());
81         assertEquals(FALSE, actualInterface.isIsIpUnnumbered());
82         assertEquals(FALSE, actualInterface.isIsPortMirrored());
83         assertEquals("name", actualInterface.getInterfaceName());
84         assertEquals("cpId", actualInterface.getInterfaceId());
85         assertEquals("cpdId", actualInterface.getInterfaceRole());
86         assertEquals("mac", actualInterface.getMacaddr());
87         assertEquals("active", actualInterface.getProvStatus());
88         assertEquals(1, actualInterface.getL3InterfaceIpv4AddressList().size());
89         assertEquals(null, actualInterface.getL3InterfaceIpv6AddressList());
90         assertEquals("networkProviderId", actualInterface.getL3InterfaceIpv4AddressList().get(0).getNeutronNetworkId());
91         assertEquals("1.2.3.4", actualInterface.getL3InterfaceIpv4AddressList().get(0).getL3InterfaceIpv4Address());
92         assertRelation(actualInterface.getRelationshipList(), "generic-vnf", buildRelationshipData("generic-vnf.vnf-id", VNF_ID));
93     }
94
95     /**
96      * test update success scenario without IP
97      */
98     @Test
99     public void testUpdateWithoutIp() throws Exception {
100         ReportedAffectedCp affectedCp = new ReportedAffectedCp();
101         affectedCp.setCpdId("cpdId");
102         affectedCp.setTenantId("myTenantId");
103         affectedCp.setProviderId("portProviderId");
104         affectedCp.setServerProviderId("serverProviderId");
105         affectedCp.setNetworkProviderId("networkProviderId");
106         affectedCp.setMacAddress("mac");
107         affectedCp.setEcpdId("ecpdId");
108         affectedCp.setName("name");
109         affectedCp.setCpId("cpId");
110         LInterface lInterface = new LInterface();
111         lInterface.setResourceVersion("v3");
112         lInterface.setRelationshipList(new ArrayList<>());
113         when(cloudInfrastructureApi.getCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface("myCloudOwnerId", "myRegionName", "myTenantId", "serverProviderId", "cpId", null, null, null, null, null, null, null, null, null, null, null, null)).thenReturn(buildObservable(lInterface));
114         when(cloudInfrastructureApi.createOrUpdateCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface(eq("myCloudOwnerId"), eq("myRegionName"), eq("myTenantId"), eq("serverProviderId"), eq("cpId"), payload.capture())).thenReturn(null);
115         //when
116         lInterfaceManager.update(VNF_ID, VIM_ID, affectedCp, true);
117         //verify
118         LInterface actualInterface = payload.getValue();
119         assertEquals(TRUE, actualInterface.isInMaint());
120         assertEquals(FALSE, actualInterface.isIsIpUnnumbered());
121         assertEquals(FALSE, actualInterface.isIsPortMirrored());
122         assertEquals("name", actualInterface.getInterfaceName());
123         assertEquals("cpId", actualInterface.getInterfaceId());
124         assertEquals("cpdId", actualInterface.getInterfaceRole());
125         assertEquals("mac", actualInterface.getMacaddr());
126         assertEquals("active", actualInterface.getProvStatus());
127         assertEquals(null, actualInterface.getL3InterfaceIpv6AddressList());
128         assertEquals(null, actualInterface.getL3InterfaceIpv4AddressList());
129         assertRelation(actualInterface.getRelationshipList(), "generic-vnf", buildRelationshipData("generic-vnf.vnf-id", VNF_ID));
130     }
131
132     /**
133      * test update success scenario
134      */
135     @Test
136     public void testExistingUpdate() throws Exception {
137         ReportedAffectedCp affectedCp = new ReportedAffectedCp();
138         affectedCp.setCpdId("cpdId");
139         affectedCp.setTenantId("myTenantId");
140         affectedCp.setProviderId("portProviderId");
141         affectedCp.setServerProviderId("serverProviderId");
142         affectedCp.setNetworkProviderId("networkProviderId");
143         affectedCp.setMacAddress("mac");
144         affectedCp.setIpAddress("1.2.3.4");
145         affectedCp.setEcpdId("ecpdId");
146         affectedCp.setName("name");
147         affectedCp.setCpId("cpId");
148         LInterface lInterface = new LInterface();
149         lInterface.setResourceVersion("v3");
150         lInterface.setRelationshipList(new ArrayList<>());
151         when(cloudInfrastructureApi.getCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface("myCloudOwnerId", "myRegionName", "myTenantId", "serverProviderId", "cpId", null, null, null, null, null, null, null, null, null, null, null, null)).thenReturn(buildObservable(lInterface));
152         when(cloudInfrastructureApi.createOrUpdateCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface(eq("myCloudOwnerId"), eq("myRegionName"), eq("myTenantId"), eq("serverProviderId"), eq("cpId"), payload.capture())).thenReturn(null);
153         //when
154         lInterfaceManager.update(VNF_ID, VIM_ID, affectedCp, true);
155         //verify
156         LInterface actualInterface = payload.getValue();
157         assertEquals(TRUE, actualInterface.isInMaint());
158         assertEquals(FALSE, actualInterface.isIsIpUnnumbered());
159         assertEquals(FALSE, actualInterface.isIsPortMirrored());
160         assertEquals("name", actualInterface.getInterfaceName());
161         assertEquals("cpId", actualInterface.getInterfaceId());
162         assertEquals("cpdId", actualInterface.getInterfaceRole());
163         assertEquals("mac", actualInterface.getMacaddr());
164         assertEquals("active", actualInterface.getProvStatus());
165         assertEquals(1, actualInterface.getL3InterfaceIpv4AddressList().size());
166         assertEquals(null, actualInterface.getL3InterfaceIpv6AddressList());
167         assertEquals("networkProviderId", actualInterface.getL3InterfaceIpv4AddressList().get(0).getNeutronNetworkId());
168         assertEquals("1.2.3.4", actualInterface.getL3InterfaceIpv4AddressList().get(0).getL3InterfaceIpv4Address());
169         assertEquals("v3", lInterface.getResourceVersion());
170         assertRelation(actualInterface.getRelationshipList(), "generic-vnf", buildRelationshipData("generic-vnf.vnf-id", VNF_ID));
171     }
172
173     /**
174      * test update success scenario for IPv6 address
175      */
176     @Test
177     public void testUpdateForIpv6() throws Exception {
178         ReportedAffectedCp affectedCp = new ReportedAffectedCp();
179         affectedCp.setCpdId("cpdId");
180         affectedCp.setTenantId("myTenantId");
181         affectedCp.setProviderId("portProviderId");
182         affectedCp.setServerProviderId("serverProviderId");
183         affectedCp.setNetworkProviderId("networkProviderId");
184         affectedCp.setMacAddress("mac");
185         affectedCp.setIpAddress("::");
186         affectedCp.setEcpdId("ecpdId");
187         affectedCp.setName("name");
188         affectedCp.setCpId("cpId");
189         LInterface lInterface = new LInterface();
190         lInterface.setResourceVersion("v3");
191         lInterface.setRelationshipList(new ArrayList<>());
192         when(cloudInfrastructureApi.getCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface("myCloudOwnerId", "myRegionName", "myTenantId", "serverProviderId", "cpId", null, null, null, null, null, null, null, null, null, null, null, null)).thenReturn(buildObservable(lInterface));
193         when(cloudInfrastructureApi.createOrUpdateCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface(eq("myCloudOwnerId"), eq("myRegionName"), eq("myTenantId"), eq("serverProviderId"), eq("cpId"), payload.capture())).thenReturn(null);
194         //when
195         lInterfaceManager.update(VNF_ID, VIM_ID, affectedCp, false);
196         //verify
197         LInterface actualInterface = payload.getValue();
198         assertEquals(FALSE, actualInterface.isInMaint());
199         assertEquals(FALSE, actualInterface.isIsIpUnnumbered());
200         assertEquals(FALSE, actualInterface.isIsPortMirrored());
201         assertEquals("name", actualInterface.getInterfaceName());
202         assertEquals("cpId", actualInterface.getInterfaceId());
203         assertEquals("cpdId", actualInterface.getInterfaceRole());
204         assertEquals("mac", actualInterface.getMacaddr());
205         assertEquals("active", actualInterface.getProvStatus());
206         assertEquals(null, actualInterface.getL3InterfaceIpv4AddressList());
207         assertEquals(1, actualInterface.getL3InterfaceIpv6AddressList().size());
208         assertEquals("networkProviderId", actualInterface.getL3InterfaceIpv6AddressList().get(0).getNeutronNetworkId());
209         assertEquals("::", actualInterface.getL3InterfaceIpv6AddressList().get(0).getL3InterfaceIpv6Address());
210         assertRelation(actualInterface.getRelationshipList(), "generic-vnf", buildRelationshipData("generic-vnf.vnf-id", VNF_ID));
211     }
212
213     /**
214      * test L3 network deletion
215      */
216     @Test
217     public void testDelete() throws Exception {
218         ReportedAffectedCp affectedCp = new ReportedAffectedCp();
219         affectedCp.setCpId("cpId");
220         affectedCp.setCpdId("cpdId");
221         affectedCp.setTenantId("myTenantId");
222         affectedCp.setProviderId("portProviderId");
223         affectedCp.setServerProviderId("serverProviderId");
224         affectedCp.setNetworkProviderId("networkProviderId");
225         LInterface lInterface = new LInterface();
226         lInterface.setResourceVersion("v3");
227         lInterface.setRelationshipList(new ArrayList<>());
228         when(cloudInfrastructureApi.getCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface("myCloudOwnerId", "myRegionName", "myTenantId", "serverProviderId", "cpId", null, null, null, null, null, null, null, null, null, null, null, null)).thenReturn(buildObservable(lInterface));
229         //when
230         lInterfaceManager.delete(VIM_ID, affectedCp);
231         //verify
232         cloudInfrastructureApi.deleteCloudInfrastructureCloudRegionsCloudRegionTenantsTenantVserversVserverLInterfacesLInterface("myCloudOwnerId", "myRegionName", "myTenantId", "serverProviderId", "cpId", "v3");
233     }
234
235     /**
236      * test inheritence
237      */
238     @Test
239     public void testInheritence() {
240         assertEquals(logger, lInterfaceManager.getLogger());
241     }
242
243
244 }