2  * ============LICENSE_START=======================================================
 
   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
 
  11  *      http://www.apache.org/licenses/LICENSE-2.0
 
  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=========================================================
 
  21 package org.onap.so.adapters.tasks.audit;
 
  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;
 
  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;
 
  58 @RunWith(MockitoJUnitRunner.Silent.class)
 
  59 public class AuditVServerTest extends AuditVServer {
 
  61     private ObjectMapper objectMapper = new ObjectMapper();
 
  64     private AuditVServer auditNova = new AuditVServer();
 
  67     private AAIResourcesClient aaiResourcesMock;
 
  69     private String cloudOwner = "cloudOwner";
 
  70     private String cloudRegion = "cloudRegion";
 
  71     private String tenantId = "tenantId";
 
  73     private AAIResourceUri vserverURI = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
 
  74             tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db");
 
  76     private AAIResourceUri vserverURI2 = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
 
  77             tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
 
  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");
 
  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");
 
  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");
 
  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");
 
  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");
 
  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");
 
  97     private AAIResourceUri test_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner,
 
  98             cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz", "test_port_1");
 
 100     private AAIResourceUri test_port_2_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner,
 
 101             cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz", "test_port_2");
 
 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");
 
 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");
 
 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");
 
 117     private Set<Vserver> vserversToAudit = new HashSet<>();
 
 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();
 
 134     public void setup() {
 
 135         objectMapper.setSerializationInclusion(Include.NON_NULL);
 
 136         auditNova.setAaiClient(aaiResourcesMock);
 
 138         Vserver vServer1 = new Vserver();
 
 139         vServer1.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4db");
 
 140         LInterfaces vServer1Linterfaces = new LInterfaces();
 
 141         vServer1.setLInterfaces(vServer1Linterfaces);
 
 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);
 
 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());
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 188         Vserver vServer2 = new Vserver();
 
 189         vServer2.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
 
 190         LInterfaces vServer2Linterfaces = new LInterfaces();
 
 191         vServer2.setLInterfaces(vServer2Linterfaces);
 
 193         test_port_1.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz1");
 
 194         test_port_1.setInterfaceName("test_port_1");
 
 197         test_port_2.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz2");
 
 198         test_port_2.setInterfaceName("test_port_2");
 
 200         vServer2.getLInterfaces().getLInterface().add(test_port_1);
 
 201         vServer2.getLInterfaces().getLInterface().add(test_port_2);
 
 203         vserversToAudit.add(vServer1);
 
 204         vserversToAudit.add(vServer2);
 
 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);
 
 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,
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 326     public void doesSubInterfaceExistinAAI_Test() {
 
 327         AAIResourceUri subInterfaceURI = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner,
 
 328                 cloudRegion, tenantId, "vserverId", "l-interface", "sub-interface");
 
 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());
 
 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);
 
 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");
 
 360         JSONAssert.assertEquals(expected, actualString, false);
 
 364     public void testAuditVserversWithList() {
 
 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);
 
 375         doReturn(false).when(aaiResourcesMock).exists(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner,
 
 376                 cloudRegion, tenantId, "testVserverId"));
 
 378         auditNova.auditVservers(auditList);
 
 380         Mockito.verify(aaiResourcesMock).exists(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner,
 
 381                 cloudRegion, tenantId, "testVserverId"));
 
 383         Assert.assertEquals(false, auditList.getAuditList().get(0).isDoesObjectExist());
 
 387     public void testAuditVserversThroughRelationships() {
 
 389         VfModule vfModule = new VfModule();
 
 390         vfModule.setVfModuleId("id");
 
 392         AAIResultWrapper wrapper = new AAIResultWrapper(vfModule);
 
 394         doReturn(Optional.of(wrapper)).when(aaiResourcesMock).getFirstWrapper(VfModules.class, VfModule.class,
 
 395                 AAIUriFactory.createResourceUri(AAIObjectPlurals.VF_MODULE, "genericVnfId").queryParam("vf-module-name",
 
 398         Optional<AAIObjectAuditList> auditList =
 
 399                 auditNova.auditVserversThroughRelationships("genericVnfId", "vfModuleName");
 
 401         Assert.assertTrue(auditList.get().getAuditList().isEmpty());
 
 405     public void testAuditVserversThroughRelationships_exists() throws IOException {
 
 407         String vfModule = getJson("vfModule.json");
 
 409         AAIResultWrapper wrapper = new AAIResultWrapper(vfModule);
 
 410         AAIResultWrapper vserverWrapper = new AAIResultWrapper(new Vserver());
 
 412         doReturn(Optional.of(wrapper)).when(aaiResourcesMock).getFirstWrapper(VfModules.class, VfModule.class,
 
 413                 AAIUriFactory.createResourceUri(AAIObjectPlurals.VF_MODULE, "genericVnfId").queryParam("vf-module-name",
 
 416         doReturn(vserverWrapper).when(aaiResourcesMock).get(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER,
 
 417                 "cloud-owner", "cloud-region-id", "tenant-id", "VUSCHGA1"));
 
 419         Optional<AAIObjectAuditList> auditList =
 
 420                 auditNova.auditVserversThroughRelationships("genericVnfId", "vfModuleName");
 
 422         Assert.assertFalse(auditList.get().getAuditList().isEmpty());
 
 426     private String getJson(String filename) throws IOException {
 
 427         return new String(Files.readAllBytes(Paths.get("src/test/resources/" + filename)));