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