189947595a8c17cc2477ff956852227ecc98255c
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.bpmn.servicedecomposition.tasks;
22
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;
34 import java.io.File;
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.GenericVnf;
51 import org.onap.aai.domain.yang.GenericVnfs;
52 import org.onap.aai.domain.yang.L3Network;
53 import org.onap.aai.domain.yang.L3Networks;
54 import org.onap.aai.domain.yang.ServiceInstance;
55 import org.onap.aai.domain.yang.ServiceInstances;
56 import org.onap.aai.domain.yang.VolumeGroup;
57 import org.onap.aai.domain.yang.VolumeGroups;
58 import org.onap.so.bpmn.common.InjectionHelper;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
61 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
62 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.MultipleObjectsFoundException;
63 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
64 import org.onap.so.client.aai.AAIObjectPlurals;
65 import org.onap.so.client.aai.AAIObjectType;
66 import org.onap.so.client.aai.AAIResourcesClient;
67 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
68 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
69 import org.onap.so.client.graphinventory.entities.uri.Depth;
70 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
71 import org.onap.so.db.catalog.beans.Service;
72 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
73 import org.onap.so.db.catalog.client.CatalogDbClient;
74 import org.onap.so.db.request.beans.InfraActiveRequests;
75 import org.onap.so.db.request.beans.RequestProcessingData;
76 import org.onap.so.db.request.client.RequestsDbClient;
77 import org.onap.so.serviceinstancebeans.CloudConfiguration;
78 import org.onap.so.serviceinstancebeans.ModelInfo;
79 import org.onap.so.serviceinstancebeans.RequestDetails;
80 import com.fasterxml.jackson.core.JsonParseException;
81 import com.fasterxml.jackson.databind.JsonMappingException;
82 import com.fasterxml.jackson.databind.ObjectMapper;
83
84 @RunWith(MockitoJUnitRunner.class)
85 public class BBInputSetupUtilsTest {
86     protected ObjectMapper mapper = new ObjectMapper();
87     private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
88
89     @InjectMocks
90     BBInputSetupUtils bbInputSetupUtils = new BBInputSetupUtils();
91
92     @Mock
93     protected CatalogDbClient MOCK_catalogDbClient;
94
95     @Mock
96     protected RequestsDbClient MOCK_requestsDbClient;
97
98     @Mock
99     protected AAIResourcesClient MOCK_aaiResourcesClient;
100
101     @Mock
102     protected InjectionHelper MOCK_injectionHelper;
103
104     @Rule
105     public ExpectedException expectedException = ExpectedException.none();
106
107     @Before
108     public void setup() {
109         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
110     }
111
112     @Test
113     public void testGetCatalogServiceByModelUUID() throws JsonParseException, JsonMappingException, IOException {
114         Service expected = mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
115
116         RequestDetails requestDetails = new RequestDetails();
117         ModelInfo modelInfo = new ModelInfo();
118         modelInfo.setModelVersionId("modelUUID");
119         requestDetails.setModelInfo(modelInfo);
120         doReturn(expected).when(MOCK_catalogDbClient).getServiceByID("modelUUID");
121         Service actual = bbInputSetupUtils.getCatalogServiceByModelUUID(modelInfo.getModelVersionId());
122
123         assertThat(actual, sameBeanAs(expected));
124     }
125
126     @Test
127     public void testGetCatalogServiceByModelVersionAndModelInvariantUUID()
128             throws JsonParseException, JsonMappingException, IOException {
129         String modelVersion = "modelVersion";
130         String modelInvariantUUID = "modelInvariantUUID";
131         Service expectedService =
132                 mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
133
134         doReturn(expectedService).when(MOCK_catalogDbClient)
135                 .getServiceByModelVersionAndModelInvariantUUID(isA(String.class), isA(String.class));
136
137         Service actualService = bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
138                 modelInvariantUUID);
139
140         assertThat(actualService, sameBeanAs(expectedService));
141     }
142
143     @Test
144     public void testGetVnfcInstanceGroups() throws JsonParseException, JsonMappingException, IOException {
145         VnfcInstanceGroupCustomization vnfc = mapper.readValue(
146                 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
147         String modelCustomizationUUID = "modelCustomizationUUID";
148
149         doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient)
150                 .getVnfcInstanceGroupsByVnfResourceCust(isA(String.class));
151
152         List<VnfcInstanceGroupCustomization> actualVnfcList =
153                 bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID);
154
155         assertThat(actualVnfcList, sameBeanAs(Arrays.asList(vnfc)));
156     }
157
158     @Test
159     public void testGetRequestDetails() throws JsonParseException, JsonMappingException, IOException {
160         InfraActiveRequests infraActiveRequest = mapper
161                 .readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);
162
163         RequestDetails expected =
164                 mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsExpected.json"), RequestDetails.class);
165         String requestId = "requestId";
166         doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
167         RequestDetails actual = bbInputSetupUtils.getRequestDetails(requestId);
168
169         assertThat(actual, sameBeanAs(expected));
170     }
171
172     @Test
173     public void getRequestDetailsNullTest() throws IOException {
174         RequestDetails requestDetails = bbInputSetupUtils.getRequestDetails("");
175
176         assertNull(requestDetails);
177     }
178
179     @Test
180     public void testGetCloudRegion() {
181         CloudConfiguration cloudConfig = new CloudConfiguration();
182         cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
183         Optional<org.onap.aai.domain.yang.CloudRegion> expected =
184                 Optional.of(new org.onap.aai.domain.yang.CloudRegion());
185         expected.get().setCloudOwner("cloudOwner");
186         expected.get().setCloudRegionId("lcpCloudRegionId");
187         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.CloudRegion.class,
188                 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
189                         cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
190
191         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION,
192                 cloudConfig.getCloudOwner(), cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO);
193         bbInputSetupUtils.getCloudRegion(cloudConfig);
194
195         verify(MOCK_aaiResourcesClient, times(1)).get(CloudRegion.class, expectedUri);
196     }
197
198     @Test
199     public void testGetCloudRegionExceptionTest() {
200
201         CloudConfiguration cloudConfig = new CloudConfiguration();
202         cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
203
204         RequestDetails requestDetails = new RequestDetails();
205         requestDetails.setCloudConfiguration(cloudConfig);
206
207         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
208
209         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
210
211         assertNull(cloudRegion);
212     }
213
214     @Test
215     public void testGetCloudRegionEmptyId() {
216         CloudConfiguration cloudConfig = new CloudConfiguration();
217         cloudConfig.setLcpCloudRegionId("");
218
219         RequestDetails requestDetails = new RequestDetails();
220         requestDetails.setCloudConfiguration(cloudConfig);
221
222         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
223
224         assertNull(cloudRegion);
225     }
226
227     @Test
228     public void testGetCloudRegionEmptyConfiguration() {
229         RequestDetails requestDetails = new RequestDetails();
230
231         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(requestDetails.getCloudConfiguration());
232
233         assertNull(cloudRegion);
234     }
235
236     @Test
237     public void testGetAAIInstanceGroup() {
238         Optional<org.onap.aai.domain.yang.InstanceGroup> expected =
239                 Optional.of(new org.onap.aai.domain.yang.InstanceGroup());
240         String instanceGroupId = "instanceGroupId";
241         expected.get().setId(instanceGroupId);
242         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
243                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
244         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId);
245
246         bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
247         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.InstanceGroup.class, expectedUri);
248     }
249
250     @Test
251     public void testGetAAIInstanceGroupThrowNotFound() {
252         String instanceGroupId = "instanceGroupId";
253         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
254         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
255                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
256
257         org.onap.aai.domain.yang.InstanceGroup actual = bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
258
259         assertNull(actual);
260     }
261
262     @Test
263     public void testGetAAICustomer() {
264         Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
265         String globalSubscriberId = "globalSubscriberId";
266         expected.get().setGlobalCustomerId(globalSubscriberId);
267         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
268                 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
269         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId);
270
271         bbInputSetupUtils.getAAICustomer(globalSubscriberId);
272         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Customer.class, expectedUri);
273     }
274
275     @Test
276     public void testGetAAICustomerThrowNotFound() {
277         String globalSubscriberId = "globalSubscriberId";
278         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
279         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
280                 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
281
282         org.onap.aai.domain.yang.Customer actual = bbInputSetupUtils.getAAICustomer(globalSubscriberId);
283
284         assertNull(actual);
285     }
286
287     @Test
288     public void testGetAAIServiceSubscription() {
289         Optional<org.onap.aai.domain.yang.ServiceSubscription> expected =
290                 Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
291         String globalSubscriberId = "globalSubscriberId";
292         String subscriptionServiceType = "subscriptionServiceType";
293         expected.get().setServiceType(subscriptionServiceType);
294         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
295                 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
296                         subscriptionServiceType));
297         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION,
298                 globalSubscriberId, subscriptionServiceType);
299
300         bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
301         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceSubscription.class, expectedUri);
302     }
303
304     @Test
305     public void testGetAAIServiceSubscriptionErrors() {
306         String globalSubId = null;
307         String subServiceType = null;
308         org.onap.aai.domain.yang.ServiceSubscription actual =
309                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId, subServiceType);
310         assertNull(actual);
311
312         String globalSubId2 = "";
313         String subServiceType2 = "";
314         org.onap.aai.domain.yang.ServiceSubscription actual2 =
315                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId2, subServiceType2);
316         assertNull(actual2);
317
318         String globalSubId3 = "";
319         String subServiceType3 = null;
320         org.onap.aai.domain.yang.ServiceSubscription actual3 =
321                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId3, subServiceType3);
322         assertNull(actual3);
323
324         String globalSubId4 = null;
325         String subServiceType4 = "";
326         org.onap.aai.domain.yang.ServiceSubscription actual4 =
327                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId4, subServiceType4);
328         assertNull(actual4);
329     }
330
331     @Test
332     public void testGetAAIServiceSubscriptionThrowNotFound() {
333         String globalSubscriberId = "globalSubscriberId";
334         String subscriptionServiceType = "subscriptionServiceType";
335         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
336         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
337                 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
338                         subscriptionServiceType));
339         org.onap.aai.domain.yang.ServiceSubscription actual =
340                 bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
341         assertNull(actual);
342     }
343
344     @Test
345     public void testGetAAIServiceInstanceById() {
346         String serviceInstanceId = "serviceInstanceId";
347
348         ServiceInstance expectedServiceInstance = new ServiceInstance();
349
350         doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
351                 isA(AAIResourceUri.class));
352
353         ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
354
355         assertThat(actualServiceInstance, sameBeanAs(expectedServiceInstance));
356     }
357
358     @Test
359     public void testGetAAIServiceInstanceByIdThrowNotFound() {
360         String serviceInstanceId = "serviceInstanceId";
361
362         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
363
364         ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
365
366         assertNull(actualServiceInstance);
367     }
368
369     @Test
370     public void testGetAAIServiceInstanceByIdAndCustomer() {
371         String globalCustomerId = "globalCustomerId";
372         String serviceType = "serviceType";
373         String serviceInstanceId = "serviceInstanceId";
374         ServiceInstance expected = new ServiceInstance();
375         expected.setServiceInstanceId(serviceInstanceId);
376         doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
377         AAIResourceUri expectedUri = AAIUriFactory
378                 .createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId)
379                 .depth(Depth.TWO);
380         this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType, serviceInstanceId);
381
382         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstance.class, expectedUri);
383
384     }
385
386     @Test
387     public void testGetAAIServiceInstanceByIdAndCustomerThrowNotFound() {
388         String globalCustomerId = "globalCustomerId";
389         String serviceType = "serviceType";
390         String serviceInstanceId = "serviceInstanceId";
391
392         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
393         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
394         ServiceInstance actual = this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId,
395                 serviceType, serviceInstanceId);
396
397         assertNull(actual);
398     }
399
400     @Test
401     public void testGetAAIServiceInstanceByName() throws Exception {
402         String serviceInstanceName = "serviceInstanceName";
403
404         ServiceInstance expectedServiceInstance = new ServiceInstance();
405         expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
406
407         ServiceSubscription serviceSubscription = new ServiceSubscription();
408         serviceSubscription.setServiceType("serviceType");
409
410         Customer customer = new Customer();
411         customer.setGlobalCustomerId("globalCustomerId");
412         customer.setServiceSubscription(serviceSubscription);
413
414         ServiceInstances serviceInstances = new ServiceInstances();
415         serviceInstances.getServiceInstance().add(expectedServiceInstance);
416
417         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
418                 isA(AAIResourceUri.class));
419         AAIResourceUri expectedUri = AAIUriFactory
420                 .createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, customer.getGlobalCustomerId(),
421                         customer.getServiceSubscription().getServiceType())
422                 .queryParam("service-instance-name", serviceInstanceName).depth(Depth.TWO);
423         bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
424
425         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstances.class, expectedUri);
426     }
427
428     @Test
429     public void testGetAAIServiceInstanceByNameException() throws Exception {
430         expectedException.expect(Exception.class);
431
432         String serviceInstanceName = "serviceInstanceName";
433
434         ServiceInstance serviceInstance = new ServiceInstance();
435         serviceInstance.setServiceInstanceId("serviceInstanceId");
436
437         ServiceSubscription serviceSubscription = new ServiceSubscription();
438         serviceSubscription.setServiceType("serviceType");
439
440         Customer customer = new Customer();
441         customer.setGlobalCustomerId("globalCustomerId");
442         customer.setServiceSubscription(serviceSubscription);
443
444         ServiceInstances serviceInstances = new ServiceInstances();
445         serviceInstances.getServiceInstance().add(serviceInstance);
446         serviceInstances.getServiceInstance().add(serviceInstance);
447
448         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
449                 isA(AAIResourceUri.class));
450
451         bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
452     }
453
454     @Test
455     public void testGetAAIServiceInstanceByNameNull() throws Exception {
456         String serviceInstanceName = "serviceInstanceName";
457
458         ServiceInstance serviceInstance = new ServiceInstance();
459         serviceInstance.setServiceInstanceId("serviceInstanceId");
460
461         ServiceSubscription serviceSubscription = new ServiceSubscription();
462         serviceSubscription.setServiceType("serviceType");
463
464         Customer customer = new Customer();
465         customer.setGlobalCustomerId("globalCustomerId");
466         customer.setServiceSubscription(serviceSubscription);
467
468         ServiceInstances serviceInstances = new ServiceInstances();
469         serviceInstances.getServiceInstance().add(serviceInstance);
470         serviceInstances.getServiceInstance().add(serviceInstance);
471
472         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
473
474         ServiceInstance actualServiceInstance =
475                 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
476
477         assertNull(actualServiceInstance);
478     }
479
480     @Test
481     public void testGetOptionalAAIServiceInstanceByNameException() throws Exception {
482         expectedException.expect(Exception.class);
483
484         String globalCustomerId = "globalCustomerId";
485         String serviceType = "serviceType";
486         String serviceInstanceId = "serviceInstanceId";
487
488         ServiceInstance serviceInstance = new ServiceInstance();
489         serviceInstance.setServiceInstanceId("serviceInstanceId");
490         serviceInstance.setServiceType(serviceType);
491         serviceInstance.setServiceInstanceName("serviceInstanceName");
492
493         ServiceInstances serviceInstances = new ServiceInstances();
494         serviceInstances.getServiceInstance().add(serviceInstance);
495         serviceInstances.getServiceInstance().add(serviceInstance);
496
497         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
498                 isA(AAIResourceUri.class));
499
500         bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
501     }
502
503     @Test
504     public void testGetOptionalAAIServiceInstanceByNameNull() throws Exception {
505         String globalCustomerId = "globalCustomerId";
506         String serviceType = "serviceType";
507         String serviceInstanceId = "serviceInstanceId";
508
509         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
510         Optional<ServiceInstance> actual =
511                 this.bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
512
513         assertThat(actual, sameBeanAs(Optional.empty()));
514     }
515
516     @Test
517     public void testGetCatalogInstanceGroup() throws JsonParseException, JsonMappingException, IOException {
518         String modelUUID = "modelUUID";
519
520         org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
521                 new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
522
523         doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(isA(String.class));
524
525         org.onap.so.db.catalog.beans.InstanceGroup actualInstanceGroup =
526                 bbInputSetupUtils.getCatalogInstanceGroup(modelUUID);
527
528         assertThat(actualInstanceGroup, sameBeanAs(expectedInstanceGroup));
529     }
530
531     @Test
532     public void testGetCollectionResourceInstanceGroupCustomization() {
533         String modelCustomizationUUID = "modelCustomizationUUID";
534
535         CollectionResourceInstanceGroupCustomization expectedCollection =
536                 new CollectionResourceInstanceGroupCustomization();
537
538         doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
539                 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
540
541         List<CollectionResourceInstanceGroupCustomization> actualCollection =
542                 bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID);
543
544         assertThat(actualCollection, sameBeanAs(Arrays.asList(expectedCollection)));
545     }
546
547     @Test
548     public void testGetAAIGenericVnf() throws JsonParseException, JsonMappingException, IOException {
549         String vnfId = "vnfId";
550
551         GenericVnf expectedAaiVnf =
552                 mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
553
554         doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
555                 isA(AAIResourceUri.class));
556         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE);
557         GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
558
559         assertThat(actualAaiVnf, sameBeanAs(expectedAaiVnf));
560
561         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.GenericVnf.class, expectedUri);
562     }
563
564     @Test
565     public void testGetAAIConfiguration() throws JsonParseException, JsonMappingException, IOException {
566         String configurationId = "configurationId";
567
568         Configuration expectedAaiConfiguration =
569                 mapper.readValue(new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
570
571         doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
572                 isA(AAIResourceUri.class));
573         AAIResourceUri expectedUri =
574                 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId).depth(Depth.ONE);
575         bbInputSetupUtils.getAAIConfiguration(configurationId);
576
577         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Configuration.class, expectedUri);
578     }
579
580     @Test
581     public void testGetAAIGenericVnfThrowNotFound() throws JsonParseException, JsonMappingException, IOException {
582         String vnfId = "vnfId";
583
584         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
585
586         GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
587
588         assertNull(actualAaiVnf);
589     }
590
591     @Test
592     public void testGetAAIResourceDepthOne() {
593         String vnfId = "vnfId";
594         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
595         AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
596         AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
597         bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
598
599         verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
600         assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
601     }
602
603     @Test
604     public void testGetAAIResourceDepthTwo() {
605         String vnfId = "vnfId";
606         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
607         AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
608         AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
609         bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
610
611         verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
612         assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
613     }
614
615     @Test
616     public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
617         Optional<L3Networks> expected = Optional.of(new L3Networks());
618         L3Network network = new L3Network();
619         network.setNetworkId("id123");
620         network.setNetworkName("name123");
621         expected.get().getL3Network().add(network);
622         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
623         Optional<L3Network> actual =
624                 this.bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance("id123", "name123");
625         assertEquals(actual.get().getNetworkId(), expected.get().getL3Network().get(0).getNetworkId());
626     }
627
628     @Test
629     public void getRelatedNetworkByNameFromServiceInstanceMultipleNetworksExceptionTest() throws Exception {
630         expectedException.expect(Exception.class);
631
632         String serviceInstanceId = "serviceInstanceId";
633         String networkName = "networkName";
634
635         L3Network network = new L3Network();
636         network.setNetworkId("id123");
637         network.setNetworkName("name123");
638
639         L3Networks expected = new L3Networks();
640         expected.getL3Network().add(network);
641         expected.getL3Network().add(network);
642
643         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
644
645         bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
646     }
647
648     @Test
649     public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
650         String serviceInstanceId = "serviceInstanceId";
651         String networkName = "networkName";
652
653         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
654
655         Optional<L3Network> actualNetwork =
656                 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
657
658         assertEquals(Optional.empty(), actualNetwork);
659     }
660
661     @Test
662     public void getRelatedServiceInstanceFromInstanceGroupTest() throws Exception {
663         Optional<ServiceInstances> expected = Optional.of(new ServiceInstances());
664         ServiceInstance serviceInstance = new ServiceInstance();
665         serviceInstance.setServiceInstanceId("serviceInstanceId");
666         serviceInstance.setServiceInstanceName("serviceInstanceName");
667         expected.get().getServiceInstance().add(serviceInstance);
668
669         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
670         Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
671         assertEquals(actual.get().getServiceInstanceId(),
672                 expected.get().getServiceInstance().get(0).getServiceInstanceId());
673     }
674
675     @Test
676     public void getRelatedServiceInstanceFromInstanceGroupMultipleTest() throws Exception {
677         expectedException.expect(MultipleObjectsFoundException.class);
678         Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
679         ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
680         ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
681         serviceInstances.get().getServiceInstance().add(si1);
682         serviceInstances.get().getServiceInstance().add(si2);
683
684         doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
685                 any(AAIResourceUri.class));
686         this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
687     }
688
689     @Test
690     public void getRelatedServiceInstanceFromInstanceGroupNotFoundTest() throws Exception {
691         expectedException.expect(NoServiceInstanceFoundException.class);
692         Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
693
694         doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
695                 any(AAIResourceUri.class));
696         this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
697     }
698
699     @Test
700     public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
701         Optional<GenericVnfs> expected = Optional.of(new GenericVnfs());
702         GenericVnf vnf = new GenericVnf();
703         vnf.setVnfId("id123");
704         vnf.setVnfName("name123");
705         expected.get().getGenericVnf().add(vnf);
706         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
707         Optional<GenericVnf> actual = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance("id123", "name123");
708         assertEquals(actual.get().getVnfId(), expected.get().getGenericVnf().get(0).getVnfId());
709     }
710
711     @Test
712     public void getRelatedVnfByNameFromServiceInstanceMultipleVnfsExceptionTest() throws Exception {
713         expectedException.expect(Exception.class);
714
715         String serviceInstanceId = "serviceInstanceId";
716         String vnfName = "vnfName";
717
718         GenericVnf vnf = new GenericVnf();
719         vnf.setVnfId("id123");
720         vnf.setVnfName("name123");
721
722         GenericVnfs expectedVnf = new GenericVnfs();
723         expectedVnf.getGenericVnf().add(vnf);
724         expectedVnf.getGenericVnf().add(vnf);
725
726         doReturn(expectedVnf).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
727
728         bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
729     }
730
731     @Test
732     public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
733         String serviceInstanceId = "serviceInstanceId";
734         String vnfName = "vnfName";
735
736         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
737
738         Optional<GenericVnf> actualVnf =
739                 this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
740
741         assertEquals(actualVnf, Optional.empty());
742     }
743
744     @Test
745     public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
746         Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
747         VolumeGroup volumeGroup = new VolumeGroup();
748         volumeGroup.setVolumeGroupId("id123");
749         volumeGroup.setVolumeGroupName("name123");
750         expected.get().getVolumeGroup().add(volumeGroup);
751         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
752         Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123");
753         assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
754     }
755
756     @Test
757     public void getRelatedVolumeGroupByNameFromVnfMultipleVolumeGroupsExceptionTest() throws Exception {
758         expectedException.expect(Exception.class);
759
760         String vnfId = "vnfId";
761         String volumeGroupName = "volumeGroupName";
762
763         VolumeGroup volumeGroup = new VolumeGroup();
764         volumeGroup.setVolumeGroupId("id123");
765         volumeGroup.setVolumeGroupName("name123");
766
767         VolumeGroups expectedVolumeGroup = new VolumeGroups();
768         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
769         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
770
771         doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
772                 any(AAIResourceUri.class));
773
774         bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
775     }
776
777     @Test
778     public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
779         String vnfId = "vnfId";
780         String volumeGroupName = "volumeGroupName";
781
782         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
783
784         Optional<VolumeGroup> actualVolumeGroup =
785                 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
786
787         assertEquals(actualVolumeGroup, Optional.empty());
788     }
789
790     @Test
791     public void getRelatedVolumeGroupByNameFromVfModuleTest() throws Exception {
792         Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
793         VolumeGroup volumeGroup = new VolumeGroup();
794         volumeGroup.setVolumeGroupId("id123");
795         volumeGroup.setVolumeGroupName("name123");
796         expected.get().getVolumeGroup().add(volumeGroup);
797         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
798         Optional<VolumeGroup> actual =
799                 this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "name123");
800         assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
801     }
802
803     @Test
804     public void getRelatedVolumeGroupByNameFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
805         expectedException.expect(Exception.class);
806
807         String vnfId = "vnfId";
808         String volumeGroupId = "volumeGroupId";
809         String volumeGroupName = "volumeGroupName";
810
811         VolumeGroup volumeGroup = new VolumeGroup();
812         volumeGroup.setVolumeGroupId("id123");
813         volumeGroup.setVolumeGroupName("name123");
814
815         VolumeGroups expectedVolumeGroup = new VolumeGroups();
816         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
817         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
818
819         doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
820                 any(AAIResourceUri.class));
821
822         bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
823     }
824
825     @Test
826     public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
827         String vnfId = "vnfId";
828         String volumeGroupId = "volumeGroupId";
829         String volumeGroupName = "volumeGroupName";
830
831         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
832
833         Optional<VolumeGroup> actualVolumeGroup =
834                 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
835
836         assertEquals(actualVolumeGroup, Optional.empty());
837     }
838
839     @Test
840     public void loadOriginalFlowExecutionPathTest() throws Exception {
841
842         String requestId = "123";
843         String flowsToExecuteString =
844                 "[{\"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}]";
845         ObjectMapper om = new ObjectMapper();
846         List<ExecuteBuildingBlock> expectedFlowsToExecute = null;
847         try {
848             ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
849             expectedFlowsToExecute = Arrays.asList(asArray);
850         } catch (Exception e) {
851             // TODO Auto-generated catch block
852             e.printStackTrace();
853         }
854
855         InfraActiveRequests request = new InfraActiveRequests();
856         request.setRequestId("requestId");
857         request.setOriginalRequestId("originalRequestId");
858         doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(anyString());
859         RequestProcessingData rpd = new RequestProcessingData();
860         rpd.setValue(flowsToExecuteString);
861         doReturn(rpd).when(MOCK_requestsDbClient).getRequestProcessingDataBySoRequestIdAndName(anyString(),
862                 anyString());
863
864         List<ExecuteBuildingBlock> flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
865         assertEquals(expectedFlowsToExecute.size(), flowsToExecute.size());
866     }
867
868 }