Fight against the encoding in openstack
[so.git] / adapters / mso-openstack-adapters / src / test / java / org / onap / so / adapters / tasks / audit / AuditVServerTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing perservice2sions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.adapters.tasks.audit;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.mockito.Mockito.doReturn;
25 import java.io.IOException;
26 import java.nio.file.Files;
27 import java.nio.file.Paths;
28 import java.util.HashSet;
29 import java.util.Optional;
30 import java.util.Set;
31 import org.junit.Assert;
32 import org.junit.Before;
33 import org.junit.Test;
34 import org.junit.runner.RunWith;
35 import org.mockito.InjectMocks;
36 import org.mockito.Mock;
37 import org.mockito.Mockito;
38 import org.mockito.junit.MockitoJUnitRunner;
39 import org.onap.aai.domain.yang.LInterface;
40 import org.onap.aai.domain.yang.LInterfaces;
41 import org.onap.aai.domain.yang.VfModule;
42 import org.onap.aai.domain.yang.VfModules;
43 import org.onap.aai.domain.yang.Vserver;
44 import org.onap.so.adapters.tasks.audit.AuditVServer;
45 import org.onap.so.client.aai.AAIObjectPlurals;
46 import org.onap.so.client.aai.AAIObjectType;
47 import org.onap.so.client.aai.AAIResourcesClient;
48 import org.onap.so.client.aai.entities.AAIResultWrapper;
49 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
50 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
51 import org.onap.so.objects.audit.AAIObjectAudit;
52 import org.onap.so.objects.audit.AAIObjectAuditList;
53 import org.skyscreamer.jsonassert.JSONAssert;
54 import com.fasterxml.jackson.annotation.JsonInclude.Include;
55 import com.fasterxml.jackson.core.JsonParseException;
56 import com.fasterxml.jackson.databind.JsonMappingException;
57 import com.fasterxml.jackson.databind.ObjectMapper;
58
59 @RunWith(MockitoJUnitRunner.Silent.class)
60 public class AuditVServerTest extends AuditVServer {
61
62     private ObjectMapper objectMapper = new ObjectMapper();
63
64     @InjectMocks
65     private AuditVServer auditNova = new AuditVServer();
66
67     @Mock
68     private AAIResourcesClient aaiResourcesMock;
69
70     private String cloudOwner = "cloudOwner";
71     private String cloudRegion = "cloudRegion";
72     private String tenantId = "tenantId";
73
74     private AAIResourceUri vserverURI = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
75             tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db");
76
77     private AAIResourceUri vserverURI2 = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
78             tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
79
80     private AAIResourceUri ssc_1_trusted_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
81             cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_trusted_port_0");
82
83     private AAIResourceUri ssc_1_service1_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
84             cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_service1_port_0");
85
86     private AAIResourceUri ssc_1_mgmt_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
87             cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_mgmt_port_1");
88
89     private AAIResourceUri ssc_1_mgmt_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
90             cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_mgmt_port_0");
91
92     private AAIResourceUri ssc_1_service2_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
93             cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_service2_port_0");
94
95     private AAIResourceUri ssc_1_int_ha_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
96             cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_int_ha_port_0");
97
98     private AAIResourceUri test_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner,
99             cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz", "test_port_1");
100
101     private AAIResourceUri test_port_2_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner,
102             cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz", "test_port_2");
103
104     private AAIResourceUri service2_sub_1_uri =
105             AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner, cloudRegion, tenantId,
106                     "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_service2_port_0", "service2_sub_interface_1");
107
108     private AAIResourceUri service1_sub_0_uri =
109             AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner, cloudRegion, tenantId,
110                     "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_service1_port_0", "service1_sub_interface_1");
111
112     private AAIResourceUri service1_sub_1_uri =
113             AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner, cloudRegion, tenantId,
114                     "3a4c2ca5-27b3-4ecc-98c5-06804867c4db", "ssc_1_service1_port_0", "service1_sub_interface_2");
115
116
117
118     private Set<Vserver> vserversToAudit = new HashSet<>();
119
120     LInterface test_port_1 = new LInterface();
121     LInterface test_port_2 = new LInterface();
122     LInterface ssc_1_int_ha_port_0 = new LInterface();
123     LInterface service2_sub_interface_1 = new LInterface();
124     LInterface ssc_1_service2_port_0 = new LInterface();
125     LInterface ssc_1_mgmt_port_0 = new LInterface();
126     LInterface ssc_1_mgmt_port_1 = new LInterface();
127     LInterface service1_sub_interface_2 = new LInterface();
128     LInterface service1_sub_interface_1 = new LInterface();
129     LInterface ssc_1_service1_port_0 = new LInterface();
130     LInterface ssc_1_trusted_port_0 = new LInterface();
131
132
133
134     @Before
135     public void setup() {
136         objectMapper.setSerializationInclusion(Include.NON_NULL);
137         auditNova.setAaiClient(aaiResourcesMock);
138
139         Vserver vServer1 = new Vserver();
140         vServer1.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4db");
141         LInterfaces vServer1Linterfaces = new LInterfaces();
142         vServer1.setLInterfaces(vServer1Linterfaces);
143
144         ssc_1_trusted_port_0.setInterfaceId("dec8bdc7-5718-41dc-bfbb-561ff6eeb81c");
145         ssc_1_trusted_port_0.setInterfaceName("ssc_1_trusted_port_0");
146         vServer1.getLInterfaces().getLInterface().add(ssc_1_trusted_port_0);
147
148
149         ssc_1_service1_port_0.setInterfaceId("1c56a24b-5f03-435a-850d-31cd4252de56");
150         ssc_1_service1_port_0.setInterfaceName("ssc_1_service1_port_0");
151         vServer1.getLInterfaces().getLInterface().add(ssc_1_service1_port_0);
152         ssc_1_service1_port_0.setLInterfaces(new LInterfaces());
153
154
155         service1_sub_interface_1.setInterfaceId("0d9cd813-2ae1-46c0-9ebb-48081f6cffbb");
156         service1_sub_interface_1.setInterfaceName("service1_sub_interface_1");
157         ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_1);
158
159
160         service1_sub_interface_2.setInterfaceId("b7019dd0-2ee9-4447-bdef-ac25676b205a");
161         service1_sub_interface_2.setInterfaceName("service1_sub_interface_2");
162         ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_2);
163
164
165         ssc_1_mgmt_port_1.setInterfaceId("12afcd28-929f-4d80-8a5a-0833bfd5e20b");
166         ssc_1_mgmt_port_1.setInterfaceName("ssc_1_mgmt_port_1");
167         vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_1);
168
169         ssc_1_mgmt_port_0.setInterfaceId("80baec42-ffae-425f-ad8c-3f7b2c24bfff");
170         ssc_1_mgmt_port_0.setInterfaceName("ssc_1_mgmt_port_0");
171         vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_0);
172
173
174         ssc_1_service2_port_0.setLInterfaces(new LInterfaces());
175         ssc_1_service2_port_0.setInterfaceId("13eddf95-4cf3-45f2-823a-2d890a6549b4");
176         ssc_1_service2_port_0.setInterfaceName("ssc_1_service2_port_0");
177         vServer1.getLInterfaces().getLInterface().add(ssc_1_service2_port_0);
178
179
180         service2_sub_interface_1.setInterfaceId("f711be16-2654-4a09-b89d-0511fda20e81");
181         service2_sub_interface_1.setInterfaceName("service2_sub_interface_1");
182         ssc_1_service2_port_0.getLInterfaces().getLInterface().add(service2_sub_interface_1);
183
184
185         ssc_1_int_ha_port_0.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adb8");
186         ssc_1_int_ha_port_0.setInterfaceName("ssc_1_int_ha_port_0");
187         vServer1.getLInterfaces().getLInterface().add(ssc_1_int_ha_port_0);
188
189         Vserver vServer2 = new Vserver();
190         vServer2.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
191         LInterfaces vServer2Linterfaces = new LInterfaces();
192         vServer2.setLInterfaces(vServer2Linterfaces);
193
194         test_port_1.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz1");
195         test_port_1.setInterfaceName("test_port_1");
196
197
198         test_port_2.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz2");
199         test_port_2.setInterfaceName("test_port_2");
200
201         vServer2.getLInterfaces().getLInterface().add(test_port_1);
202         vServer2.getLInterfaces().getLInterface().add(test_port_2);
203
204         vserversToAudit.add(vServer1);
205         vserversToAudit.add(vServer2);
206     }
207
208     @Test
209     public void audit_Vserver_Empty_HashSet() throws JsonParseException, JsonMappingException, IOException {
210         Optional<AAIObjectAuditList> actual =
211                 auditNova.auditVservers(new HashSet<Vserver>(), tenantId, cloudOwner, cloudRegion);
212         assertEquals(Optional.empty(), actual);
213     }
214
215     @Test
216     public void audit_Vserver_Found_Test() throws JsonParseException, JsonMappingException, IOException {
217         doReturn(true).when(aaiResourcesMock).exists(vserverURI);
218         doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
219         doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,
220                 ssc_1_trusted_port_0_uri);
221         doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,
222                 ssc_1_service1_port_0_uri);
223         doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class, ssc_1_mgmt_port_1_uri);
224         doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class, ssc_1_mgmt_port_0_uri);
225         doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,
226                 ssc_1_service2_port_0_uri);
227         doReturn(Optional.of(service2_sub_interface_1)).when(aaiResourcesMock).get(LInterface.class,
228                 service1_sub_1_uri);
229         doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,
230                 ssc_1_int_ha_port_0_uri);
231         doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class, test_port_1_uri);
232         doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class, test_port_2_uri);
233
234         doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
235         doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
236         doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
237
238         Optional<AAIObjectAuditList> actual =
239                 auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
240         String actualString = objectMapper.writeValueAsString(actual.get());
241         String expected = getJson("ExpectedVServerFound.json");
242         JSONAssert.assertEquals(expected, actualString, false);
243     }
244
245     @Test
246     public void audit_Vserver_Found_Test_Network_Not_Found()
247             throws JsonParseException, JsonMappingException, IOException {
248         doReturn(true).when(aaiResourcesMock).exists(vserverURI);
249         doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
250         doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,
251                 ssc_1_trusted_port_0_uri);
252         doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,
253                 ssc_1_service1_port_0_uri);
254         doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class, ssc_1_mgmt_port_1_uri);
255         doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class, ssc_1_mgmt_port_0_uri);
256         doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,
257                 ssc_1_service2_port_0_uri);
258         doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,
259                 ssc_1_int_ha_port_0_uri);
260         doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class, test_port_1_uri);
261         doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class, test_port_2_uri);
262
263         doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
264         doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
265         doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
266
267         Optional<AAIObjectAuditList> actual =
268                 auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
269         String actualString = objectMapper.writeValueAsString(actual.get());
270         String expected = getJson("VServer_Found_network_Not_Found.json");
271         JSONAssert.assertEquals(expected, actualString, false);
272     }
273
274     @Test
275     public void audit_Vserver_Found_Test_Network_Not_Found_Second_Server()
276             throws JsonParseException, JsonMappingException, IOException {
277         doReturn(true).when(aaiResourcesMock).exists(vserverURI);
278         doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
279         doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,
280                 ssc_1_trusted_port_0_uri);
281         doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,
282                 ssc_1_service1_port_0_uri);
283         doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class, ssc_1_mgmt_port_1_uri);
284         doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class, ssc_1_mgmt_port_0_uri);
285         doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,
286                 ssc_1_service2_port_0_uri);
287         doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,
288                 ssc_1_int_ha_port_0_uri);
289         doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class, test_port_1_uri);
290         doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class, test_port_2_uri);
291         doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
292         doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
293         doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
294         Optional<AAIObjectAuditList> actual =
295                 auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
296         String actualString = objectMapper.writeValueAsString(actual.get());
297         String expected = getJson("VServer_Found_Network_Sec_Server_Not_Found.json");
298         JSONAssert.assertEquals(expected, actualString, false);
299     }
300
301     @Test
302     public void audit_Vserver_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
303         doReturn(false).when(aaiResourcesMock).exists(vserverURI);
304         doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
305         Optional<AAIObjectAuditList> actual =
306                 auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
307         String actualString = objectMapper.writeValueAsString(actual.get());
308         String expected = getJson("Vservers_Not_Found.json");
309         JSONAssert.assertEquals(expected, actualString, false);
310     }
311
312     @Test
313     public void audit_Vserver_first_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
314         doReturn(false).when(aaiResourcesMock).exists(vserverURI);
315         doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
316         doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class, test_port_1_uri);
317         doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class, test_port_2_uri);
318         Optional<AAIObjectAuditList> actual =
319                 auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
320         String actualString = objectMapper.writeValueAsString(actual.get());
321         String expected = getJson("Vserver2_Found_VServer1_Not_Found.json");
322         JSONAssert.assertEquals(expected, actualString, false);
323     }
324
325
326     @Test
327     public void doesSubInterfaceExistinAAI_Test() {
328         AAIResourceUri subInterfaceURI = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner,
329                 cloudRegion, tenantId, "vserverId", "l-interface", "sub-interface");
330
331         assertEquals(
332                 "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/vserverId/l-interfaces/l-interface/l-interface/l-interfaces/l-interface/sub-interface",
333                 subInterfaceURI.build().toString());
334     }
335
336     @Test
337     public void audit_Vserver_Second_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
338         doReturn(true).when(aaiResourcesMock).exists(vserverURI);
339         doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,
340                 ssc_1_trusted_port_0_uri);
341         doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,
342                 ssc_1_service1_port_0_uri);
343         doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class, ssc_1_mgmt_port_1_uri);
344         doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class, ssc_1_mgmt_port_0_uri);
345         doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,
346                 ssc_1_service2_port_0_uri);
347         doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,
348                 ssc_1_int_ha_port_0_uri);
349         doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class, test_port_1_uri);
350         doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class, test_port_2_uri);
351         doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
352         doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
353         doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
354
355         doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
356         Optional<AAIObjectAuditList> actual =
357                 auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
358         String actualString = objectMapper.writeValueAsString(actual.get());
359         String expected = getJson("VServer_Found_Sec_Server_Not_Found2.json");
360
361         JSONAssert.assertEquals(expected, actualString, false);
362     }
363
364     @Test
365     public void testAuditVserversWithList() {
366
367         AAIObjectAuditList auditList = new AAIObjectAuditList();
368         AAIObjectAudit obj1 = new AAIObjectAudit();
369         Vserver vserver = new Vserver();
370         vserver.setVserverId("testVserverId");
371         obj1.setAaiObject(vserver);
372         obj1.setResourceURI(AAIUriFactory
373                 .createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion, tenantId, "testVserverId").build());
374         auditList.getAuditList().add(obj1);
375
376         doReturn(false).when(aaiResourcesMock).exists(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner,
377                 cloudRegion, tenantId, "testVserverId"));
378
379         auditNova.auditVservers(auditList);
380
381         Mockito.verify(aaiResourcesMock).exists(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner,
382                 cloudRegion, tenantId, "testVserverId"));
383
384         Assert.assertEquals(false, auditList.getAuditList().get(0).isDoesObjectExist());
385     }
386
387     @Test
388     public void testAuditVserversThroughRelationships() {
389
390         VfModule vfModule = new VfModule();
391         vfModule.setVfModuleId("id");
392
393         AAIResultWrapper wrapper = new AAIResultWrapper(vfModule);
394
395         doReturn(Optional.of(wrapper)).when(aaiResourcesMock).getFirstWrapper(VfModules.class, VfModule.class,
396                 AAIUriFactory.createResourceUri(AAIObjectPlurals.VF_MODULE, "genericVnfId").queryParam("vf-module-name",
397                         "vfModuleName"));
398
399         Optional<AAIObjectAuditList> auditList =
400                 auditNova.auditVserversThroughRelationships("genericVnfId", "vfModuleName");
401
402         Assert.assertTrue(auditList.get().getAuditList().isEmpty());
403     }
404
405     @Test
406     public void testAuditVserversThroughRelationships_exists() throws IOException {
407
408         String vfModule = getJson("vfModule.json");
409
410         AAIResultWrapper wrapper = new AAIResultWrapper(vfModule);
411         AAIResultWrapper vserverWrapper = new AAIResultWrapper(new Vserver());
412
413         doReturn(Optional.of(wrapper)).when(aaiResourcesMock).getFirstWrapper(VfModules.class, VfModule.class,
414                 AAIUriFactory.createResourceUri(AAIObjectPlurals.VF_MODULE, "genericVnfId").queryParam("vf-module-name",
415                         "vfModuleName"));
416
417         doReturn(vserverWrapper).when(aaiResourcesMock).get(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER,
418                 "cloud-owner", "cloud-region-id", "tenant-id", "VUSCHGA1"));
419
420         Optional<AAIObjectAuditList> auditList =
421                 auditNova.auditVserversThroughRelationships("genericVnfId", "vfModuleName");
422
423         Assert.assertFalse(auditList.get().getAuditList().isEmpty());
424     }
425
426
427     private String getJson(String filename) throws IOException {
428         return new String(Files.readAllBytes(Paths.get("src/test/resources/" + filename)));
429     }
430
431
432
433 }