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