2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 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 permissions and
 
  17  * limitations under the License.
 
  18  * ============LICENSE_END=========================================================
 
  21 package org.onap.so.bpmn.servicedecomposition.tasks;
 
  23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
 
  24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 
  25 import static org.junit.Assert.assertEquals;
 
  26 import static org.junit.Assert.assertNull;
 
  27 import static org.mockito.ArgumentMatchers.any;
 
  28 import static org.mockito.ArgumentMatchers.anyString;
 
  29 import static org.mockito.ArgumentMatchers.eq;
 
  30 import static org.mockito.ArgumentMatchers.isA;
 
  31 import static org.mockito.Mockito.doReturn;
 
  32 import static org.mockito.Mockito.times;
 
  33 import static org.mockito.Mockito.verify;
 
  35 import java.io.IOException;
 
  36 import java.util.Arrays;
 
  37 import java.util.List;
 
  38 import java.util.Optional;
 
  39 import org.junit.Before;
 
  40 import org.junit.Rule;
 
  41 import org.junit.Test;
 
  42 import org.junit.rules.ExpectedException;
 
  43 import org.junit.runner.RunWith;
 
  44 import org.mockito.InjectMocks;
 
  45 import org.mockito.Mock;
 
  46 import org.mockito.Mockito;
 
  47 import org.mockito.junit.MockitoJUnitRunner;
 
  48 import org.onap.aai.domain.yang.CloudRegion;
 
  49 import org.onap.aai.domain.yang.Configuration;
 
  50 import org.onap.aai.domain.yang.Configurations;
 
  51 import org.onap.aai.domain.yang.GenericVnf;
 
  52 import org.onap.aai.domain.yang.GenericVnfs;
 
  53 import org.onap.aai.domain.yang.L3Network;
 
  54 import org.onap.aai.domain.yang.L3Networks;
 
  55 import org.onap.aai.domain.yang.ServiceInstance;
 
  56 import org.onap.aai.domain.yang.ServiceInstances;
 
  57 import org.onap.aai.domain.yang.VolumeGroup;
 
  58 import org.onap.aai.domain.yang.VolumeGroups;
 
  59 import org.onap.so.bpmn.common.InjectionHelper;
 
  60 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
 
  61 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
 
  62 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
 
  63 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.MultipleObjectsFoundException;
 
  64 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
 
  65 import org.onap.so.client.aai.AAIObjectPlurals;
 
  66 import org.onap.so.client.aai.AAIObjectType;
 
  67 import org.onap.so.client.aai.AAIResourcesClient;
 
  68 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 
  69 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 
  70 import org.onap.so.client.graphinventory.entities.uri.Depth;
 
  71 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
 
  72 import org.onap.so.db.catalog.beans.Service;
 
  73 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
 
  74 import org.onap.so.db.catalog.client.CatalogDbClient;
 
  75 import org.onap.so.db.request.beans.InfraActiveRequests;
 
  76 import org.onap.so.db.request.beans.RequestProcessingData;
 
  77 import org.onap.so.db.request.client.RequestsDbClient;
 
  78 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 
  79 import org.onap.so.serviceinstancebeans.ModelInfo;
 
  80 import org.onap.so.serviceinstancebeans.RequestDetails;
 
  81 import com.fasterxml.jackson.core.JsonParseException;
 
  82 import com.fasterxml.jackson.databind.JsonMappingException;
 
  83 import com.fasterxml.jackson.databind.ObjectMapper;
 
  85 @RunWith(MockitoJUnitRunner.class)
 
  86 public class BBInputSetupUtilsTest {
 
  87     protected ObjectMapper mapper = new ObjectMapper();
 
  88     private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
 
  91     BBInputSetupUtils bbInputSetupUtils = new BBInputSetupUtils();
 
  94     protected CatalogDbClient MOCK_catalogDbClient;
 
  97     protected RequestsDbClient MOCK_requestsDbClient;
 
 100     protected AAIResourcesClient MOCK_aaiResourcesClient;
 
 103     protected InjectionHelper MOCK_injectionHelper;
 
 106     public ExpectedException expectedException = ExpectedException.none();
 
 109     public void setup() {
 
 110         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
 
 114     public void testGetCatalogServiceByModelUUID() throws JsonParseException, JsonMappingException, IOException {
 
 115         Service expected = mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
 
 117         RequestDetails requestDetails = new RequestDetails();
 
 118         ModelInfo modelInfo = new ModelInfo();
 
 119         modelInfo.setModelVersionId("modelUUID");
 
 120         requestDetails.setModelInfo(modelInfo);
 
 121         doReturn(expected).when(MOCK_catalogDbClient).getServiceByID("modelUUID");
 
 122         Service actual = bbInputSetupUtils.getCatalogServiceByModelUUID(modelInfo.getModelVersionId());
 
 124         assertThat(actual, sameBeanAs(expected));
 
 128     public void testGetCatalogServiceByModelVersionAndModelInvariantUUID()
 
 129             throws JsonParseException, JsonMappingException, IOException {
 
 130         String modelVersion = "modelVersion";
 
 131         String modelInvariantUUID = "modelInvariantUUID";
 
 132         Service expectedService =
 
 133                 mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
 
 135         doReturn(expectedService).when(MOCK_catalogDbClient)
 
 136                 .getServiceByModelVersionAndModelInvariantUUID(isA(String.class), isA(String.class));
 
 138         Service actualService = bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
 
 141         assertThat(actualService, sameBeanAs(expectedService));
 
 145     public void testGetVnfcInstanceGroups() throws JsonParseException, JsonMappingException, IOException {
 
 146         VnfcInstanceGroupCustomization vnfc = mapper.readValue(
 
 147                 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
 
 148         String modelCustomizationUUID = "modelCustomizationUUID";
 
 150         doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient)
 
 151                 .getVnfcInstanceGroupsByVnfResourceCust(isA(String.class));
 
 153         List<VnfcInstanceGroupCustomization> actualVnfcList =
 
 154                 bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID);
 
 156         assertThat(actualVnfcList, sameBeanAs(Arrays.asList(vnfc)));
 
 160     public void testGetRequestDetails() throws JsonParseException, JsonMappingException, IOException {
 
 161         InfraActiveRequests infraActiveRequest = mapper
 
 162                 .readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);
 
 164         RequestDetails expected =
 
 165                 mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsExpected.json"), RequestDetails.class);
 
 166         String requestId = "requestId";
 
 167         doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
 
 168         RequestDetails actual = bbInputSetupUtils.getRequestDetails(requestId);
 
 170         assertThat(actual, sameBeanAs(expected));
 
 174     public void getRequestDetailsNullTest() throws IOException {
 
 175         RequestDetails requestDetails = bbInputSetupUtils.getRequestDetails("");
 
 177         assertNull(requestDetails);
 
 181     public void testGetCloudRegion() {
 
 182         CloudConfiguration cloudConfig = new CloudConfiguration();
 
 183         cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
 
 184         Optional<org.onap.aai.domain.yang.CloudRegion> expected =
 
 185                 Optional.of(new org.onap.aai.domain.yang.CloudRegion());
 
 186         expected.get().setCloudOwner("cloudOwner");
 
 187         expected.get().setCloudRegionId("lcpCloudRegionId");
 
 188         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.CloudRegion.class,
 
 189                 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
 
 190                         cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
 
 192         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION,
 
 193                 cloudConfig.getCloudOwner(), cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO);
 
 194         bbInputSetupUtils.getCloudRegion(cloudConfig);
 
 196         verify(MOCK_aaiResourcesClient, times(1)).get(CloudRegion.class, expectedUri);
 
 200     public void testGetCloudRegionExceptionTest() {
 
 202         CloudConfiguration cloudConfig = new CloudConfiguration();
 
 203         cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
 
 205         RequestDetails requestDetails = new RequestDetails();
 
 206         requestDetails.setCloudConfiguration(cloudConfig);
 
 208         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
 
 210         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
 
 212         assertNull(cloudRegion);
 
 216     public void testGetCloudRegionEmptyId() {
 
 217         CloudConfiguration cloudConfig = new CloudConfiguration();
 
 218         cloudConfig.setLcpCloudRegionId("");
 
 220         RequestDetails requestDetails = new RequestDetails();
 
 221         requestDetails.setCloudConfiguration(cloudConfig);
 
 223         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
 
 225         assertNull(cloudRegion);
 
 229     public void testGetCloudRegionEmptyConfiguration() {
 
 230         RequestDetails requestDetails = new RequestDetails();
 
 232         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(requestDetails.getCloudConfiguration());
 
 234         assertNull(cloudRegion);
 
 238     public void testGetAAIInstanceGroup() {
 
 239         Optional<org.onap.aai.domain.yang.InstanceGroup> expected =
 
 240                 Optional.of(new org.onap.aai.domain.yang.InstanceGroup());
 
 241         String instanceGroupId = "instanceGroupId";
 
 242         expected.get().setId(instanceGroupId);
 
 243         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
 
 244                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
 
 245         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId);
 
 247         bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
 
 248         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.InstanceGroup.class, expectedUri);
 
 252     public void testGetAAIInstanceGroupThrowNotFound() {
 
 253         String instanceGroupId = "instanceGroupId";
 
 254         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
 
 255         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
 
 256                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
 
 258         org.onap.aai.domain.yang.InstanceGroup actual = bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
 
 264     public void testGetAAICustomer() {
 
 265         Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
 
 266         String globalSubscriberId = "globalSubscriberId";
 
 267         expected.get().setGlobalCustomerId(globalSubscriberId);
 
 268         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
 
 269                 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
 
 270         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId);
 
 272         bbInputSetupUtils.getAAICustomer(globalSubscriberId);
 
 273         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Customer.class, expectedUri);
 
 277     public void testGetAAICustomerThrowNotFound() {
 
 278         String globalSubscriberId = "globalSubscriberId";
 
 279         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
 
 280         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
 
 281                 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
 
 283         org.onap.aai.domain.yang.Customer actual = bbInputSetupUtils.getAAICustomer(globalSubscriberId);
 
 289     public void testGetAAIServiceSubscription() {
 
 290         Optional<org.onap.aai.domain.yang.ServiceSubscription> expected =
 
 291                 Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
 
 292         String globalSubscriberId = "globalSubscriberId";
 
 293         String subscriptionServiceType = "subscriptionServiceType";
 
 294         expected.get().setServiceType(subscriptionServiceType);
 
 295         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
 
 296                 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
 
 297                         subscriptionServiceType));
 
 298         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION,
 
 299                 globalSubscriberId, subscriptionServiceType);
 
 301         bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
 
 302         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceSubscription.class, expectedUri);
 
 306     public void testGetAAIServiceSubscriptionErrors() {
 
 307         String globalSubId = null;
 
 308         String subServiceType = null;
 
 309         org.onap.aai.domain.yang.ServiceSubscription actual =
 
 310                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId, subServiceType);
 
 313         String globalSubId2 = "";
 
 314         String subServiceType2 = "";
 
 315         org.onap.aai.domain.yang.ServiceSubscription actual2 =
 
 316                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId2, subServiceType2);
 
 319         String globalSubId3 = "";
 
 320         String subServiceType3 = null;
 
 321         org.onap.aai.domain.yang.ServiceSubscription actual3 =
 
 322                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId3, subServiceType3);
 
 325         String globalSubId4 = null;
 
 326         String subServiceType4 = "";
 
 327         org.onap.aai.domain.yang.ServiceSubscription actual4 =
 
 328                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId4, subServiceType4);
 
 333     public void testGetAAIServiceSubscriptionThrowNotFound() {
 
 334         String globalSubscriberId = "globalSubscriberId";
 
 335         String subscriptionServiceType = "subscriptionServiceType";
 
 336         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
 
 337         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
 
 338                 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
 
 339                         subscriptionServiceType));
 
 340         org.onap.aai.domain.yang.ServiceSubscription actual =
 
 341                 bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
 
 346     public void testGetAAIServiceInstanceById() {
 
 347         String serviceInstanceId = "serviceInstanceId";
 
 349         ServiceInstance expectedServiceInstance = new ServiceInstance();
 
 351         doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
 
 352                 isA(AAIResourceUri.class));
 
 354         ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
 
 356         assertThat(actualServiceInstance, sameBeanAs(expectedServiceInstance));
 
 360     public void testGetAAIServiceInstanceByIdThrowNotFound() {
 
 361         String serviceInstanceId = "serviceInstanceId";
 
 363         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
 
 365         ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
 
 367         assertNull(actualServiceInstance);
 
 371     public void testGetAAIServiceInstanceByIdAndCustomer() {
 
 372         String globalCustomerId = "globalCustomerId";
 
 373         String serviceType = "serviceType";
 
 374         String serviceInstanceId = "serviceInstanceId";
 
 375         ServiceInstance expected = new ServiceInstance();
 
 376         expected.setServiceInstanceId(serviceInstanceId);
 
 377         doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
 
 378         AAIResourceUri expectedUri = AAIUriFactory
 
 379                 .createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId)
 
 381         this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType, serviceInstanceId);
 
 383         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstance.class, expectedUri);
 
 388     public void testGetAAIServiceInstanceByIdAndCustomerThrowNotFound() {
 
 389         String globalCustomerId = "globalCustomerId";
 
 390         String serviceType = "serviceType";
 
 391         String serviceInstanceId = "serviceInstanceId";
 
 393         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
 
 394         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
 
 395         ServiceInstance actual = this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId,
 
 396                 serviceType, serviceInstanceId);
 
 402     public void testGetAAIServiceInstanceByName() throws Exception {
 
 403         String serviceInstanceName = "serviceInstanceName";
 
 405         ServiceInstance expectedServiceInstance = new ServiceInstance();
 
 406         expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
 
 408         ServiceSubscription serviceSubscription = new ServiceSubscription();
 
 409         serviceSubscription.setServiceType("serviceType");
 
 411         Customer customer = new Customer();
 
 412         customer.setGlobalCustomerId("globalCustomerId");
 
 413         customer.setServiceSubscription(serviceSubscription);
 
 415         ServiceInstances serviceInstances = new ServiceInstances();
 
 416         serviceInstances.getServiceInstance().add(expectedServiceInstance);
 
 418         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
 
 419                 isA(AAIResourceUri.class));
 
 420         AAIResourceUri expectedUri = AAIUriFactory
 
 421                 .createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, customer.getGlobalCustomerId(),
 
 422                         customer.getServiceSubscription().getServiceType())
 
 423                 .queryParam("service-instance-name", serviceInstanceName).depth(Depth.TWO);
 
 424         bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
 
 426         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstances.class, expectedUri);
 
 430     public void testGetAAIServiceInstanceByNameException() throws Exception {
 
 431         expectedException.expect(Exception.class);
 
 433         String serviceInstanceName = "serviceInstanceName";
 
 435         ServiceInstance serviceInstance = new ServiceInstance();
 
 436         serviceInstance.setServiceInstanceId("serviceInstanceId");
 
 438         ServiceSubscription serviceSubscription = new ServiceSubscription();
 
 439         serviceSubscription.setServiceType("serviceType");
 
 441         Customer customer = new Customer();
 
 442         customer.setGlobalCustomerId("globalCustomerId");
 
 443         customer.setServiceSubscription(serviceSubscription);
 
 445         ServiceInstances serviceInstances = new ServiceInstances();
 
 446         serviceInstances.getServiceInstance().add(serviceInstance);
 
 447         serviceInstances.getServiceInstance().add(serviceInstance);
 
 449         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
 
 450                 isA(AAIResourceUri.class));
 
 452         bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
 
 456     public void testGetAAIServiceInstanceByNameNull() throws Exception {
 
 457         String serviceInstanceName = "serviceInstanceName";
 
 459         ServiceInstance serviceInstance = new ServiceInstance();
 
 460         serviceInstance.setServiceInstanceId("serviceInstanceId");
 
 462         ServiceSubscription serviceSubscription = new ServiceSubscription();
 
 463         serviceSubscription.setServiceType("serviceType");
 
 465         Customer customer = new Customer();
 
 466         customer.setGlobalCustomerId("globalCustomerId");
 
 467         customer.setServiceSubscription(serviceSubscription);
 
 469         ServiceInstances serviceInstances = new ServiceInstances();
 
 470         serviceInstances.getServiceInstance().add(serviceInstance);
 
 471         serviceInstances.getServiceInstance().add(serviceInstance);
 
 473         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
 
 475         ServiceInstance actualServiceInstance =
 
 476                 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
 
 478         assertNull(actualServiceInstance);
 
 482     public void testGetOptionalAAIServiceInstanceByNameException() throws Exception {
 
 483         expectedException.expect(Exception.class);
 
 485         String globalCustomerId = "globalCustomerId";
 
 486         String serviceType = "serviceType";
 
 487         String serviceInstanceId = "serviceInstanceId";
 
 489         ServiceInstance serviceInstance = new ServiceInstance();
 
 490         serviceInstance.setServiceInstanceId("serviceInstanceId");
 
 491         serviceInstance.setServiceType(serviceType);
 
 492         serviceInstance.setServiceInstanceName("serviceInstanceName");
 
 494         ServiceInstances serviceInstances = new ServiceInstances();
 
 495         serviceInstances.getServiceInstance().add(serviceInstance);
 
 496         serviceInstances.getServiceInstance().add(serviceInstance);
 
 498         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
 
 499                 isA(AAIResourceUri.class));
 
 501         bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
 
 505     public void testGetOptionalAAIServiceInstanceByNameNull() throws Exception {
 
 506         String globalCustomerId = "globalCustomerId";
 
 507         String serviceType = "serviceType";
 
 508         String serviceInstanceId = "serviceInstanceId";
 
 510         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
 
 511         Optional<ServiceInstance> actual =
 
 512                 this.bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
 
 514         assertThat(actual, sameBeanAs(Optional.empty()));
 
 518     public void testGetCatalogInstanceGroup() throws JsonParseException, JsonMappingException, IOException {
 
 519         String modelUUID = "modelUUID";
 
 521         org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
 
 522                 new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
 
 524         doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(isA(String.class));
 
 526         org.onap.so.db.catalog.beans.InstanceGroup actualInstanceGroup =
 
 527                 bbInputSetupUtils.getCatalogInstanceGroup(modelUUID);
 
 529         assertThat(actualInstanceGroup, sameBeanAs(expectedInstanceGroup));
 
 533     public void testGetCollectionResourceInstanceGroupCustomization() {
 
 534         String modelCustomizationUUID = "modelCustomizationUUID";
 
 536         CollectionResourceInstanceGroupCustomization expectedCollection =
 
 537                 new CollectionResourceInstanceGroupCustomization();
 
 539         doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
 
 540                 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
 
 542         List<CollectionResourceInstanceGroupCustomization> actualCollection =
 
 543                 bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID);
 
 545         assertThat(actualCollection, sameBeanAs(Arrays.asList(expectedCollection)));
 
 549     public void testGetAAIGenericVnf() throws JsonParseException, JsonMappingException, IOException {
 
 550         String vnfId = "vnfId";
 
 552         GenericVnf expectedAaiVnf =
 
 553                 mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
 
 555         doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
 
 556                 isA(AAIResourceUri.class));
 
 557         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE);
 
 558         GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
 
 560         assertThat(actualAaiVnf, sameBeanAs(expectedAaiVnf));
 
 562         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.GenericVnf.class, expectedUri);
 
 566     public void testGetAAIConfiguration() throws JsonParseException, JsonMappingException, IOException {
 
 567         String configurationId = "configurationId";
 
 569         Configuration expectedAaiConfiguration =
 
 570                 mapper.readValue(new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
 
 572         doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
 
 573                 isA(AAIResourceUri.class));
 
 574         AAIResourceUri expectedUri =
 
 575                 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId).depth(Depth.ONE);
 
 576         bbInputSetupUtils.getAAIConfiguration(configurationId);
 
 578         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Configuration.class, expectedUri);
 
 582     public void testGetAAIGenericVnfThrowNotFound() throws JsonParseException, JsonMappingException, IOException {
 
 583         String vnfId = "vnfId";
 
 585         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
 
 587         GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
 
 589         assertNull(actualAaiVnf);
 
 593     public void testGetAAIResourceDepthOne() {
 
 594         String vnfId = "vnfId";
 
 595         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
 
 596         AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
 
 597         AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
 
 598         bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
 
 600         verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
 
 601         assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
 
 605     public void testGetAAIResourceDepthTwo() {
 
 606         String vnfId = "vnfId";
 
 607         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
 
 608         AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
 
 609         AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
 
 610         bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
 
 612         verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
 
 613         assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
 
 617     public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
 
 618         Optional<L3Networks> expected = Optional.of(new L3Networks());
 
 619         L3Network network = new L3Network();
 
 620         network.setNetworkId("id123");
 
 621         network.setNetworkName("name123");
 
 622         expected.get().getL3Network().add(network);
 
 623         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
 
 624         Optional<L3Network> actual =
 
 625                 this.bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance("id123", "name123");
 
 626         assertEquals(actual.get().getNetworkId(), expected.get().getL3Network().get(0).getNetworkId());
 
 630     public void getRelatedNetworkByNameFromServiceInstanceMultipleNetworksExceptionTest() throws Exception {
 
 631         expectedException.expect(Exception.class);
 
 633         String serviceInstanceId = "serviceInstanceId";
 
 634         String networkName = "networkName";
 
 636         L3Network network = new L3Network();
 
 637         network.setNetworkId("id123");
 
 638         network.setNetworkName("name123");
 
 640         L3Networks expected = new L3Networks();
 
 641         expected.getL3Network().add(network);
 
 642         expected.getL3Network().add(network);
 
 644         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
 
 646         bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
 
 650     public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
 
 651         String serviceInstanceId = "serviceInstanceId";
 
 652         String networkName = "networkName";
 
 654         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
 
 656         Optional<L3Network> actualNetwork =
 
 657                 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
 
 659         assertEquals(Optional.empty(), actualNetwork);
 
 663     public void getRelatedServiceInstanceFromInstanceGroupTest() throws Exception {
 
 664         Optional<ServiceInstances> expected = Optional.of(new ServiceInstances());
 
 665         ServiceInstance serviceInstance = new ServiceInstance();
 
 666         serviceInstance.setServiceInstanceId("serviceInstanceId");
 
 667         serviceInstance.setServiceInstanceName("serviceInstanceName");
 
 668         expected.get().getServiceInstance().add(serviceInstance);
 
 670         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
 
 671         Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
 
 672         assertEquals(actual.get().getServiceInstanceId(),
 
 673                 expected.get().getServiceInstance().get(0).getServiceInstanceId());
 
 677     public void getRelatedServiceInstanceFromInstanceGroupMultipleTest() throws Exception {
 
 678         expectedException.expect(MultipleObjectsFoundException.class);
 
 679         Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
 
 680         ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
 
 681         ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
 
 682         serviceInstances.get().getServiceInstance().add(si1);
 
 683         serviceInstances.get().getServiceInstance().add(si2);
 
 685         doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
 
 686                 any(AAIResourceUri.class));
 
 687         this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
 
 691     public void getRelatedServiceInstanceFromInstanceGroupNotFoundTest() throws Exception {
 
 692         expectedException.expect(NoServiceInstanceFoundException.class);
 
 693         Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
 
 695         doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
 
 696                 any(AAIResourceUri.class));
 
 697         this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
 
 701     public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
 
 702         Optional<GenericVnfs> expected = Optional.of(new GenericVnfs());
 
 703         GenericVnf vnf = new GenericVnf();
 
 704         vnf.setVnfId("id123");
 
 705         vnf.setVnfName("name123");
 
 706         expected.get().getGenericVnf().add(vnf);
 
 707         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
 
 708         Optional<GenericVnf> actual = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance("id123", "name123");
 
 709         assertEquals(actual.get().getVnfId(), expected.get().getGenericVnf().get(0).getVnfId());
 
 713     public void getRelatedVnfByNameFromServiceInstanceMultipleVnfsExceptionTest() throws Exception {
 
 714         expectedException.expect(Exception.class);
 
 716         String serviceInstanceId = "serviceInstanceId";
 
 717         String vnfName = "vnfName";
 
 719         GenericVnf vnf = new GenericVnf();
 
 720         vnf.setVnfId("id123");
 
 721         vnf.setVnfName("name123");
 
 723         GenericVnfs expectedVnf = new GenericVnfs();
 
 724         expectedVnf.getGenericVnf().add(vnf);
 
 725         expectedVnf.getGenericVnf().add(vnf);
 
 727         doReturn(expectedVnf).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
 
 729         bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
 
 733     public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
 
 734         String serviceInstanceId = "serviceInstanceId";
 
 735         String vnfName = "vnfName";
 
 737         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
 
 739         Optional<GenericVnf> actualVnf =
 
 740                 this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
 
 742         assertEquals(actualVnf, Optional.empty());
 
 746     public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
 
 747         Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
 
 748         VolumeGroup volumeGroup = new VolumeGroup();
 
 749         volumeGroup.setVolumeGroupId("id123");
 
 750         volumeGroup.setVolumeGroupName("name123");
 
 751         expected.get().getVolumeGroup().add(volumeGroup);
 
 752         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
 
 753         Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123");
 
 754         assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
 
 758     public void getRelatedVolumeGroupByNameFromVnfMultipleVolumeGroupsExceptionTest() throws Exception {
 
 759         expectedException.expect(Exception.class);
 
 761         String vnfId = "vnfId";
 
 762         String volumeGroupName = "volumeGroupName";
 
 764         VolumeGroup volumeGroup = new VolumeGroup();
 
 765         volumeGroup.setVolumeGroupId("id123");
 
 766         volumeGroup.setVolumeGroupName("name123");
 
 768         VolumeGroups expectedVolumeGroup = new VolumeGroups();
 
 769         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
 
 770         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
 
 772         doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
 
 773                 any(AAIResourceUri.class));
 
 775         bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
 
 779     public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
 
 780         String vnfId = "vnfId";
 
 781         String volumeGroupName = "volumeGroupName";
 
 783         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
 
 785         Optional<VolumeGroup> actualVolumeGroup =
 
 786                 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
 
 788         assertEquals(actualVolumeGroup, Optional.empty());
 
 792     public void getRelatedVolumeGroupByNameFromVfModuleTest() throws Exception {
 
 793         Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
 
 794         VolumeGroup volumeGroup = new VolumeGroup();
 
 795         volumeGroup.setVolumeGroupId("id123");
 
 796         volumeGroup.setVolumeGroupName("name123");
 
 797         expected.get().getVolumeGroup().add(volumeGroup);
 
 798         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
 
 799         Optional<VolumeGroup> actual =
 
 800                 this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "name123");
 
 801         assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
 
 805     public void getRelatedVolumeGroupByNameFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
 
 806         expectedException.expect(Exception.class);
 
 808         String vnfId = "vnfId";
 
 809         String volumeGroupId = "volumeGroupId";
 
 810         String volumeGroupName = "volumeGroupName";
 
 812         VolumeGroup volumeGroup = new VolumeGroup();
 
 813         volumeGroup.setVolumeGroupId("id123");
 
 814         volumeGroup.setVolumeGroupName("name123");
 
 816         VolumeGroups expectedVolumeGroup = new VolumeGroups();
 
 817         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
 
 818         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
 
 820         doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
 
 821                 any(AAIResourceUri.class));
 
 823         bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
 
 827     public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
 
 828         String vnfId = "vnfId";
 
 829         String volumeGroupId = "volumeGroupId";
 
 830         String volumeGroupName = "volumeGroupName";
 
 832         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
 
 834         Optional<VolumeGroup> actualVolumeGroup =
 
 835                 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
 
 837         assertEquals(actualVolumeGroup, Optional.empty());
 
 841     public void loadOriginalFlowExecutionPathTest() throws Exception {
 
 843         String requestId = "123";
 
 844         String flowsToExecuteString =
 
 845                 "[{\"buildingBlock\":{\"mso-id\":\"2f9ddc4b-4dcf-4129-a35f-be1625ae0176\",\"bpmn-flow-name\":\"DeactivateFabricConfigurationBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":{\"vfModuleCustomizationUUID\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"vnfResourceCustomizationUUID\":\"a80f05b8-d651-44af-b999-8ed78fb4582f\",\"cvnfcCustomizationUUID\":\"69cce457-9ffd-4359-962b-0596a1e83ad1\",\"vnfcName\":\"zauk51bmcmr01mcm001\"}},{\"buildingBlock\":{\"mso-id\":\"1ca5584e-38a9-4c3f-a4b4-99b0d42089ba\",\"bpmn-flow-name\":\"UnassignFabricConfigurationBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":{\"vfModuleCustomizationUUID\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"vnfResourceCustomizationUUID\":\"a80f05b8-d651-44af-b999-8ed78fb4582f\",\"cvnfcCustomizationUUID\":\"69cce457-9ffd-4359-962b-0596a1e83ad1\",\"vnfcName\":\"zauk51bmcmr01mcm001\"}},{\"buildingBlock\":{\"mso-id\":\"68d16097-4810-477d-803b-8322106106ef\",\"bpmn-flow-name\":\"DeactivateVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null},{\"buildingBlock\":{\"mso-id\":\"0b02eb09-bc23-4329-b19e-716dcca4e4a6\",\"bpmn-flow-name\":\"DeleteVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null},{\"buildingBlock\":{\"mso-id\":\"bcf95d05-0782-44ff-920d-d5100525c275\",\"bpmn-flow-name\":\"UnassignVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null}]";
 
 846         ObjectMapper om = new ObjectMapper();
 
 847         List<ExecuteBuildingBlock> expectedFlowsToExecute = null;
 
 849             ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
 
 850             expectedFlowsToExecute = Arrays.asList(asArray);
 
 851         } catch (Exception e) {
 
 852             // TODO Auto-generated catch block
 
 856         InfraActiveRequests request = new InfraActiveRequests();
 
 857         request.setRequestId("requestId");
 
 858         request.setOriginalRequestId("originalRequestId");
 
 859         doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(anyString());
 
 860         RequestProcessingData rpd = new RequestProcessingData();
 
 861         rpd.setValue(flowsToExecuteString);
 
 862         doReturn(rpd).when(MOCK_requestsDbClient).getRequestProcessingDataBySoRequestIdAndName(anyString(),
 
 865         List<ExecuteBuildingBlock> flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
 
 866         assertEquals(expectedFlowsToExecute.size(), flowsToExecute.size());
 
 870     public void getRelatedConfigurationByNameFromServiceInstanceTest() throws Exception {
 
 871         Optional<Configurations> expected = Optional.of(new Configurations());
 
 872         Configuration configuration = new Configuration();
 
 873         configuration.setConfigurationId("id123");
 
 874         expected.get().getConfiguration().add(configuration);
 
 875         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(Configurations.class), any(AAIResourceUri.class));
 
 876         Optional<Configuration> actual =
 
 877                 this.bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
 
 878         assertEquals(actual.get().getConfigurationId(), expected.get().getConfiguration().get(0).getConfigurationId());
 
 882     public void existsAAIVfModuleGloballyByNameTest() throws Exception {
 
 883         AAIResourceUri expectedUri =
 
 884                 AAIUriFactory.createNodesUri(AAIObjectPlurals.VF_MODULE).queryParam("vf-module-name", "testVfModule");
 
 885         bbInputSetupUtils.existsAAIVfModuleGloballyByName("testVfModule");
 
 886         verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
 
 890     public void existsAAIConfigurationGloballyByNameTest() throws Exception {
 
 891         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.CONFIGURATION)
 
 892                 .queryParam("configuration-name", "testConfig");
 
 893         bbInputSetupUtils.existsAAIConfigurationGloballyByName("testConfig");
 
 894         verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
 
 898     public void existsAAINetworksGloballyByNameTest() throws Exception {
 
 899         AAIResourceUri expectedUri =
 
 900                 AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", "testNetwork");
 
 901         bbInputSetupUtils.existsAAINetworksGloballyByName("testNetwork");
 
 902         verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
 
 906     public void existsAAIVolumeGroupGloballyByNameTest() throws Exception {
 
 907         AAIResourceUri expectedUri = AAIUriFactory.createNodesUri(AAIObjectPlurals.VOLUME_GROUP)
 
 908                 .queryParam("volume-group-name", "testVoumeGroup");
 
 909         bbInputSetupUtils.existsAAIVolumeGroupGloballyByName("testVoumeGroup");
 
 910         verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);