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.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;
 
  59 @RunWith(MockitoJUnitRunner.Silent.class)
 
  60 public class AuditVServerTest extends AuditVServer {
 
  62     private ObjectMapper objectMapper = new ObjectMapper();
 
  65     private AuditVServer auditNova = new AuditVServer();
 
  68     private AAIResourcesClient aaiResourcesMock;
 
  70     private String cloudOwner = "cloudOwner";
 
  71     private String cloudRegion = "cloudRegion";
 
  72     private String tenantId = "tenantId";
 
  74     private AAIResourceUri vserverURI = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
 
  75             tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db");
 
  77     private AAIResourceUri vserverURI2 = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
 
  78             tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
 
  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");
 
  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");
 
  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");
 
  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");
 
  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");
 
  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");
 
  98     private AAIResourceUri test_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner,
 
  99             cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz", "test_port_1");
 
 101     private AAIResourceUri test_port_2_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner,
 
 102             cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz", "test_port_2");
 
 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");
 
 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");
 
 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");
 
 118     private Set<Vserver> vserversToAudit = new HashSet<>();
 
 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();
 
 135     public void setup() {
 
 136         objectMapper.setSerializationInclusion(Include.NON_NULL);
 
 137         auditNova.setAaiClient(aaiResourcesMock);
 
 139         Vserver vServer1 = new Vserver();
 
 140         vServer1.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4db");
 
 141         LInterfaces vServer1Linterfaces = new LInterfaces();
 
 142         vServer1.setLInterfaces(vServer1Linterfaces);
 
 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);
 
 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());
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 189         Vserver vServer2 = new Vserver();
 
 190         vServer2.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
 
 191         LInterfaces vServer2Linterfaces = new LInterfaces();
 
 192         vServer2.setLInterfaces(vServer2Linterfaces);
 
 194         test_port_1.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz1");
 
 195         test_port_1.setInterfaceName("test_port_1");
 
 198         test_port_2.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz2");
 
 199         test_port_2.setInterfaceName("test_port_2");
 
 201         vServer2.getLInterfaces().getLInterface().add(test_port_1);
 
 202         vServer2.getLInterfaces().getLInterface().add(test_port_2);
 
 204         vserversToAudit.add(vServer1);
 
 205         vserversToAudit.add(vServer2);
 
 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);
 
 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,
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 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);
 
 327     public void doesSubInterfaceExistinAAI_Test() {
 
 328         AAIResourceUri subInterfaceURI = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner,
 
 329                 cloudRegion, tenantId, "vserverId", "l-interface", "sub-interface");
 
 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());
 
 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);
 
 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");
 
 361         JSONAssert.assertEquals(expected, actualString, false);
 
 365     public void testAuditVserversWithList() {
 
 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);
 
 376         doReturn(false).when(aaiResourcesMock).exists(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner,
 
 377                 cloudRegion, tenantId, "testVserverId"));
 
 379         auditNova.auditVservers(auditList);
 
 381         Mockito.verify(aaiResourcesMock).exists(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner,
 
 382                 cloudRegion, tenantId, "testVserverId"));
 
 384         Assert.assertEquals(false, auditList.getAuditList().get(0).isDoesObjectExist());
 
 388     public void testAuditVserversThroughRelationships() {
 
 390         VfModule vfModule = new VfModule();
 
 391         vfModule.setVfModuleId("id");
 
 393         AAIResultWrapper wrapper = new AAIResultWrapper(vfModule);
 
 395         doReturn(Optional.of(wrapper)).when(aaiResourcesMock).getFirstWrapper(VfModules.class, VfModule.class,
 
 396                 AAIUriFactory.createResourceUri(AAIObjectPlurals.VF_MODULE, "genericVnfId").queryParam("vf-module-name",
 
 399         Optional<AAIObjectAuditList> auditList =
 
 400                 auditNova.auditVserversThroughRelationships("genericVnfId", "vfModuleName");
 
 402         Assert.assertTrue(auditList.get().getAuditList().isEmpty());
 
 406     public void testAuditVserversThroughRelationships_exists() throws IOException {
 
 408         String vfModule = getJson("vfModule.json");
 
 410         AAIResultWrapper wrapper = new AAIResultWrapper(vfModule);
 
 411         AAIResultWrapper vserverWrapper = new AAIResultWrapper(new Vserver());
 
 413         doReturn(Optional.of(wrapper)).when(aaiResourcesMock).getFirstWrapper(VfModules.class, VfModule.class,
 
 414                 AAIUriFactory.createResourceUri(AAIObjectPlurals.VF_MODULE, "genericVnfId").queryParam("vf-module-name",
 
 417         doReturn(vserverWrapper).when(aaiResourcesMock).get(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER,
 
 418                 "cloud-owner", "cloud-region-id", "tenant-id", "VUSCHGA1"));
 
 420         Optional<AAIObjectAuditList> auditList =
 
 421                 auditNova.auditVserversThroughRelationships("genericVnfId", "vfModuleName");
 
 423         Assert.assertFalse(auditList.get().getAuditList().isEmpty());
 
 427     private String getJson(String filename) throws IOException {
 
 428         return new String(Files.readAllBytes(Paths.get("src/test/resources/" + filename)));