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.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import static org.mockito.ArgumentMatchers.any;
29 import static org.mockito.Matchers.eq;
30 import static org.mockito.ArgumentMatchers.isA;
31 import static org.mockito.Mockito.doNothing;
32 import static org.mockito.Mockito.doReturn;
33 import static org.mockito.Mockito.times;
34 import static org.mockito.Mockito.verify;
37 import java.io.IOException;
38 import java.util.ArrayList;
39 import java.util.Arrays;
40 import java.util.HashMap;
41 import java.util.List;
43 import java.util.Optional;
45 import org.camunda.bpm.engine.delegate.DelegateExecution;
46 import org.junit.Before;
47 import org.junit.Test;
48 import org.junit.runner.RunWith;
49 import org.mockito.ArgumentMatchers;
50 import org.mockito.Matchers;
51 import org.mockito.Mock;
52 import org.mockito.Mockito;
53 import org.mockito.Spy;
54 import org.mockito.junit.MockitoJUnitRunner;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
57 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
58 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
62 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
63 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
64 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
65 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
68 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
71 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
72 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
73 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
74 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
75 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
76 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
77 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
78 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
79 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
80 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
81 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
82 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
83 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
84 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
85 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
86 import org.onap.so.client.aai.AAIObjectType;
87 import org.onap.so.client.aai.entities.AAIResultWrapper;
88 import org.onap.so.client.aai.entities.Relationships;
89 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
90 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
91 import org.onap.so.constants.Defaults;
92 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
93 import org.onap.so.db.catalog.beans.CollectionResource;
94 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
95 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
96 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
97 import org.onap.so.db.catalog.beans.InstanceGroupType;
98 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
99 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
100 import org.onap.so.db.catalog.beans.OrchestrationStatus;
101 import org.onap.so.db.catalog.beans.Service;
102 import org.onap.so.db.catalog.beans.VfModuleCustomization;
103 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
104 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
105 import org.onap.so.db.request.beans.InfraActiveRequests;
106 import org.onap.so.serviceinstancebeans.CloudConfiguration;
107 import org.onap.so.serviceinstancebeans.ModelInfo;
108 import org.onap.so.serviceinstancebeans.ModelType;
109 import org.onap.so.serviceinstancebeans.RelatedInstance;
110 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
111 import org.onap.so.serviceinstancebeans.RequestDetails;
112 import org.onap.so.serviceinstancebeans.RequestInfo;
113 import org.onap.so.serviceinstancebeans.RequestParameters;
114 import org.onap.so.serviceinstancebeans.Resources;
115 import org.onap.so.serviceinstancebeans.SubscriberInfo;
117 import com.fasterxml.jackson.core.JsonParseException;
118 import com.fasterxml.jackson.core.JsonProcessingException;
119 import com.fasterxml.jackson.databind.JsonMappingException;
120 import com.fasterxml.jackson.databind.ObjectMapper;
121 @RunWith(MockitoJUnitRunner.class)
122 public class BBInputSetupTest {
123 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
125 protected ObjectMapper mapper = new ObjectMapper();
126 private static final String CLOUD_OWNER = "CloudOwner";
129 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
132 private BBInputSetupUtils SPY_bbInputSetupUtils;
135 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
138 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
142 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
143 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
144 SPY_bbInputSetup.setCloudInfoFromAAI(SPY_cloudInfoFromAAI);
148 public void testGetVolumeGroupIdRelatedToVfModule() {
149 String expected = "volumeGroupId";
150 String modelCustomizationId = "modelCustomizationId";
151 ModelInfo modelInfo = new ModelInfo();
152 modelInfo.setModelCustomizationId(modelCustomizationId);
153 String cloudOwner = "cloudOwner";
154 String cloudRegionId = "cloudRegionId";
155 String volumeGroupId = "volumeGroupId";
156 GenericVnf vnf = new GenericVnf();
157 VolumeGroup volumeGroup = new VolumeGroup();
158 volumeGroup.setVolumeGroupId(expected);
159 vnf.getVolumeGroups().add(volumeGroup);
160 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
161 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
162 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
163 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
164 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId, volumeGroupId);
166 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner, cloudRegionId, lookupKeyMap);
168 assertEquals(expected, actual.get());
172 public void testGetAlaCarteServiceInstance() throws Exception {
173 ServiceInstance expected = mapper.readValue(
174 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
175 ServiceInstance.class);
176 RequestDetails requestDetails = new RequestDetails();
177 RequestInfo requestInfo = new RequestInfo();
178 requestInfo.setInstanceName("SharansInstanceName");
179 requestDetails.setRequestInfo(requestInfo);
180 Customer customer = new Customer();
181 String serviceInstanceId = "SharansInstanceId";
182 boolean aLaCarte = true;
183 Service service = new Service();
184 service.setModelUUID("modelUUID");
185 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
186 modelInfoServiceInstance.setModelUuid("modelUUID");
187 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
188 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
189 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
190 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
191 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
192 Service differentService = new Service();
193 differentService.setModelUUID("modelUUIDDifferent");
195 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
196 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
197 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
198 doReturn(differentService).when(SPY_bbInputSetupUtils)
199 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
200 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
201 .mapCatalogServiceIntoServiceInstance(differentService);
203 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
204 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
205 assertThat(actual, sameBeanAs(expected));
208 @Test(expected = Exception.class)
209 public void testGetAlaCarteServiceInstanceException() throws Exception {
210 ServiceInstance expected = mapper.readValue(
211 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
212 ServiceInstance.class);
213 RequestDetails requestDetails = new RequestDetails();
214 RequestInfo requestInfo = new RequestInfo();
215 requestInfo.setInstanceName("SharansInstanceName");
216 requestDetails.setRequestInfo(requestInfo);
217 Customer customer = new Customer();
218 String serviceInstanceId = "SharansInstanceId";
219 boolean aLaCarte = true;
220 Service service = new Service();
221 service.setModelUUID("modelUUID");
222 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
223 modelInfoServiceInstance.setModelUuid("modelUUID");
224 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
225 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
226 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
227 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
228 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
229 Service differentService = new Service();
230 differentService.setModelUUID("modelUUIDDifferent");
232 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
233 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
234 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
235 doReturn(null).when(SPY_bbInputSetupUtils)
236 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
238 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
239 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
240 assertThat(actual, sameBeanAs(expected));
244 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
245 RequestDetails requestDetails = mapper.readValue(
246 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
247 SubscriberInfo subscriberInfo = new SubscriberInfo();
248 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
249 RequestParameters requestParams = new RequestParameters();
250 requestParams.setSubscriptionServiceType("subscriptionServiceType");
251 requestDetails.setRequestParameters(requestParams);
252 requestDetails.setSubscriberInfo(subscriberInfo);
253 String resourceId = "resourceId";
254 Customer expected = new Customer();
255 expected.setGlobalCustomerId("globalCustomerId");
256 ServiceSubscription serviceSubscription = new ServiceSubscription();
257 serviceSubscription.setServiceType("subscriptionServiceType");
259 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
260 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
262 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
264 assertThat(actual, sameBeanAs(expected));
266 requestDetails.setSubscriberInfo(null);
269 assertThat(actual, sameBeanAs(expected));
274 public void testSetHomingFlag() throws JsonParseException, JsonMappingException, IOException {
275 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
276 GeneralBuildingBlock.class);
277 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
278 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
279 GenericVnf genericVnfExpected = new GenericVnf();
280 genericVnfExpected.setVnfId("vnfId");
281 genericVnfExpected.setCallHoming(true);
282 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
283 boolean homing = true;
284 GenericVnf genericVnfActual = new GenericVnf();
285 genericVnfActual.setVnfId("vnfId");
286 genericVnfActual.setCallHoming(false);
287 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
288 GeneralBuildingBlock.class);
289 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
291 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
292 assertThat(actual, sameBeanAs(expected));
296 public void testGetExecuteBBFromExecution() throws IOException {
297 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
298 BuildingBlock bb = new BuildingBlock();
299 bb.setBpmnFlowName("AssignServiceInstanceBB");
300 expected.setBuildingBlock(bb);
301 expected.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
302 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
303 doReturn(expected).when(execution).getVariable(any(String.class));
304 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
305 assertThat(actual, sameBeanAs(expected));
309 public void testGetGBB() throws Exception {
310 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
311 GeneralBuildingBlock.class);
313 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
314 executeBB.setRequestId("requestId");
315 RequestDetails requestDetails = new RequestDetails();
316 ModelInfo modelInfo = new ModelInfo();
317 modelInfo.setModelType(ModelType.service);
318 requestDetails.setModelInfo(modelInfo);
319 RequestParameters requestParams = new RequestParameters();
320 requestParams.setaLaCarte(true);
321 requestDetails.setRequestParameters(requestParams);
322 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
323 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
324 String resourceId = "123";
325 String requestAction = "createInstance";
326 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
327 requestAction, resourceId);
328 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),lookupKeyMap);
329 boolean aLaCarte = true;
330 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte,
333 assertThat(actual, sameBeanAs(expected));
337 public void testGetGBBCM() throws Exception {
338 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"),
339 GeneralBuildingBlock.class);
341 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
342 executeBB.setRequestId("requestId");
343 RequestDetails requestDetails = new RequestDetails();
344 requestDetails.setModelInfo(null);
345 RequestParameters requestParams = new RequestParameters();
346 requestParams.setaLaCarte(true);
347 requestDetails.setRequestParameters(requestParams);
348 RequestInfo requestInfo = new RequestInfo();
349 requestInfo.setSuppressRollback(true);
350 requestInfo.setSource("VID");
351 requestDetails.setRequestInfo(requestInfo);
352 CloudConfiguration cloudConfiguration = new CloudConfiguration();
353 cloudConfiguration.setLcpCloudRegionId("myRegionId");
354 requestDetails.setCloudConfiguration(cloudConfiguration);
355 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
356 String resourceId = "123";
357 String requestAction = "createInstance";
359 doReturn(null).when(bbInputSetupMapperLayer).mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isNull());
360 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction,
363 assertThat(actual, sameBeanAs(expected));
367 public void testGetGBBALaCarteNonService() throws Exception {
368 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
369 GeneralBuildingBlock.class);
370 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
371 ExecuteBuildingBlock.class);
372 RequestDetails requestDetails = mapper.readValue(
373 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
374 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
375 String requestAction = "createInstance";
376 Service service = Mockito.mock(Service.class);
377 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
378 String resourceId = "123";
379 String vnfType = "vnfType";
380 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
381 aaiServiceInstance.setModelVersionId("modelVersionId");
382 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
383 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
384 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
385 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
387 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
388 serviceInstance, lookupKeyMap, resourceId, vnfType);
389 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
390 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
391 executeBB, requestAction, null);
393 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
394 requestAction, resourceId, vnfType);
396 assertThat(actual, sameBeanAs(expected));
399 @Test(expected = Exception.class)
400 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
401 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
402 ExecuteBuildingBlock.class);
403 RequestDetails requestDetails = mapper.readValue(
404 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
405 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
406 String requestAction = "createInstance";
407 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
408 aaiServiceInstance.setModelVersionId("modelVersionId");
409 String resourceId = "123";
410 String vnfType = "vnfType";
412 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
417 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
418 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
419 GeneralBuildingBlock.class);
420 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
421 ExecuteBuildingBlock.class);
422 RequestDetails requestDetails = mapper.readValue(
423 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
424 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
425 String requestAction = "createInstance";
426 Service service = Mockito.mock(Service.class);
427 String resourceId = "123";
428 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
429 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
430 aaiServiceInstance.setModelVersionId("modelVersionId");
431 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
432 String vnfType = "vnfType";
433 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
434 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
435 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
437 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
438 serviceInstance, lookupKeyMap, resourceId, vnfType);
440 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
441 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
442 executeBB, requestAction,null);
444 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
445 requestAction, resourceId, vnfType);
447 assertThat(actual, sameBeanAs(expected));
451 public void testGetGBBALaCarteService() throws Exception {
452 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
453 GeneralBuildingBlock.class);
454 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
455 ExecuteBuildingBlock.class);
456 RequestDetails requestDetails = mapper.readValue(
457 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
458 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
460 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
461 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
462 requestDetails.setProject(requestProject);
463 requestDetails.setOwningEntity(requestOwningEntity);
465 Service service = Mockito.mock(Service.class);
466 Customer customer = Mockito.mock(Customer.class);
467 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
468 Project project = Mockito.mock(Project.class);
469 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
470 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
471 String resourceId = "123";
472 String requestAction = "createInstance";
473 executeBB.setaLaCarte(true);
474 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
475 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
477 doReturn(service).when(SPY_bbInputSetupUtils)
478 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
479 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
480 doReturn(owningEntity).when(bbInputSetupMapperLayer)
481 .mapRequestOwningEntity(requestDetails.getOwningEntity());
483 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
484 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
485 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
486 executeBB.getBuildingBlock().getBpmnFlowName());
487 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
488 executeBB, requestAction, customer);
490 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
491 requestAction, resourceId);
493 assertThat(actual, sameBeanAs(expected));
497 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
498 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
499 GeneralBuildingBlock.class);
500 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
501 ExecuteBuildingBlock.class);
502 RequestDetails requestDetails = mapper.readValue(
503 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
504 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
506 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
507 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
508 requestDetails.setProject(requestProject);
509 requestDetails.setOwningEntity(requestOwningEntity);
511 Service service = Mockito.mock(Service.class);
512 Customer customer = Mockito.mock(Customer.class);
513 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
514 Project project = Mockito.mock(Project.class);
515 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
516 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
517 String resourceId = "123";
518 String requestAction = "createInstance";
519 executeBB.setaLaCarte(true);
520 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
521 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
523 doReturn(null).when(SPY_bbInputSetupUtils)
524 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
525 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
526 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
527 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
528 doReturn(owningEntity).when(bbInputSetupMapperLayer)
529 .mapRequestOwningEntity(requestDetails.getOwningEntity());
531 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
532 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
533 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
534 executeBB.getBuildingBlock().getBpmnFlowName());
535 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
536 executeBB, requestAction,customer);
538 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
539 requestAction, resourceId);
541 assertThat(actual, sameBeanAs(expected));
545 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
546 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
547 GeneralBuildingBlock.class);
548 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
549 ExecuteBuildingBlock.class);
550 RequestDetails requestDetails = mapper.readValue(
551 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
552 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
554 Service service = Mockito.mock(Service.class);
555 Customer customer = Mockito.mock(Customer.class);
556 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
557 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
558 String resourceId = "123";
559 String requestAction = "createInstance";
560 executeBB.setaLaCarte(true);
561 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
562 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
564 Map<String, String> uriKeys = new HashMap<>();
565 uriKeys.put("global-customer-id", "globalCustomerId");
566 uriKeys.put("service-type", "serviceType");
568 doReturn(service).when(SPY_bbInputSetupUtils)
569 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
571 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
573 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
574 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
575 executeBB.getBuildingBlock().getBpmnFlowName());
576 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
577 executeBB, requestAction,customer);
579 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
580 requestAction, resourceId);
582 assertThat(actual, sameBeanAs(expected));
586 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
587 RequestDetails requestDetails = new RequestDetails();
588 RequestInfo requestInfo = new RequestInfo();
589 requestInfo.setInstanceName("SharansInstanceName");
590 requestDetails.setRequestInfo(requestInfo);
591 Customer customer = new Customer();
592 String serviceInstanceId = "SharansInstanceId";
593 boolean aLaCarte = true;
594 ServiceInstance expected = new ServiceInstance();
595 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
596 Service service = new Service();
597 service.setModelUUID("modelUUID");
598 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
600 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
601 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
604 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
605 lookupKeyMap, serviceInstanceId);
607 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
608 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
609 assertThat(actual, sameBeanAs(expected));
613 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
614 RequestDetails requestDetails = new RequestDetails();
615 RequestInfo requestInfo = new RequestInfo();
616 requestInfo.setInstanceName("SharansInstanceName");
617 requestDetails.setRequestInfo(requestInfo);
618 Customer customer = new Customer();
619 String serviceInstanceId = "SharansInstanceId";
620 boolean aLaCarte = true;
621 Service service = new Service();
622 service.setModelUUID("modelUUID");
623 ServiceInstance expected = new ServiceInstance();
624 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
625 serviceInstanceAAI.setModelVersionId("modelUUID");
626 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
627 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
629 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
630 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
631 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
633 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
634 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
635 assertThat(actual, sameBeanAs(expected));
639 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
640 RequestDetails requestDetails = new RequestDetails();
641 RequestInfo requestInfo = new RequestInfo();
642 requestInfo.setInstanceName("SharansInstanceName");
643 requestDetails.setRequestInfo(requestInfo);
644 Customer customer = new Customer();
645 String serviceInstanceId = "SharansInstanceId";
646 boolean aLaCarte = true;
647 Service service = new Service();
648 service.setModelUUID("modelUUID");
649 ServiceInstance expected = new ServiceInstance();
650 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
651 serviceInstanceAAI.setModelVersionId("modelUUID");
652 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
653 String bbName = "ActivateServiceInstanceBB";
655 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
656 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
658 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
659 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
660 assertThat(actual, sameBeanAs(expected));
664 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
665 RequestDetails requestDetails = new RequestDetails();
666 RequestInfo requestInfo = new RequestInfo();
667 requestDetails.setRequestInfo(requestInfo);
668 Customer customer = new Customer();
669 String serviceInstanceId = "SharansInstanceId";
670 boolean aLaCarte = true;
671 Service service = new Service();
672 service.setModelUUID("modelUUID");
673 ServiceInstance expected = new ServiceInstance();
674 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
675 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
676 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
677 String bbName = "ActivateServiceInstanceBB";
678 Service differentService = new Service();
679 differentService.setModelUUID("modelUUIDDifferent");
681 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
684 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
685 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
686 assertThat(actual, sameBeanAs(expected));
689 @Test(expected = Exception.class)
690 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
691 RequestDetails requestDetails = new RequestDetails();
692 RequestInfo requestInfo = new RequestInfo();
693 requestDetails.setRequestInfo(requestInfo);
694 Customer customer = new Customer();
695 String serviceInstanceId = "SharansInstanceId";
696 boolean aLaCarte = true;
697 Service service = new Service();
698 service.setModelUUID("modelUUID");
699 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
700 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
701 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
702 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
704 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
705 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
709 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
710 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
711 String instanceName = "instanceName";
712 String vnfType = "vnfType";
713 String resourceId = "networkId";
714 Service service = Mockito.mock(Service.class);
715 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
716 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
717 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
718 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
719 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
720 CloudConfiguration cloudConfiguration = new CloudConfiguration();
721 org.onap.so.serviceinstancebeans.Platform platform = Mockito
722 .mock(org.onap.so.serviceinstancebeans.Platform.class);
723 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
724 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
725 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
727 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
728 lookupKeyMap, resourceId, null);
729 doReturn(modelInfo).when(requestDetails).getModelInfo();
730 doReturn(requestInfo).when(requestDetails).getRequestInfo();
731 doReturn(instanceName).when(requestInfo).getInstanceName();
732 doReturn(platform).when(requestDetails).getPlatform();
733 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
734 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
735 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
737 doReturn(ModelType.network).when(modelInfo).getModelType();
738 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
739 lookupKeyMap, resourceId, vnfType);
740 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
741 lookupKeyMap, resourceId, null);
742 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
744 doReturn(ModelType.vnf).when(modelInfo).getModelType();
745 resourceId = "vnfId";
746 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
747 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
748 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
749 lookupKeyMap, resourceId, vnfType);
750 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
751 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
752 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
754 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
755 resourceId = "volumeGroupId";
756 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
757 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
758 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
759 lookupKeyMap, resourceId, vnfType);
760 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
761 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
762 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
764 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
765 resourceId = "vfModuleId";
766 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
767 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
768 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
769 lookupKeyMap, resourceId, vnfType);
770 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
771 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
772 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
776 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
777 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
778 GeneralBuildingBlock.class);
779 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
780 ExecuteBuildingBlock.class);
781 RequestDetails requestDetails = mapper.readValue(
782 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
783 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
784 RequestContext.class);
785 ServiceInstance serviceInstance = mapper.readValue(
786 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
787 ServiceInstance.class);
789 OrchestrationContext orchestrationContext = new OrchestrationContext();
790 orchestrationContext.setIsRollbackEnabled(false);
792 CloudRegion cloudRegion = new CloudRegion();
793 cloudRegion.setCloudOwner("test-owner-name");
794 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
795 cloudRegion.setComplex("complexName");
796 cloudRegion.setTenantId("tenantId");
798 Map<String, String> uriKeys = new HashMap<>();
799 uriKeys.put("global-customer-id","global-customer-id");
800 uriKeys.put("service-type","service-type");
802 Customer customer = new Customer();
803 ServiceSubscription serviceSubscription = new ServiceSubscription();
804 serviceSubscription.setServiceType("subscriptionServiceType");
805 customer.setGlobalCustomerId("globalCustomerId");
806 customer.setSubscriberName("subscriberName");
807 customer.setSubscriberType("subscriberType");
808 customer.setServiceSubscription(serviceSubscription);
810 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
812 String requestAction = "createInstance";
814 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
815 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
816 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
817 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
818 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
819 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion);
821 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
822 serviceInstance, executeBB, requestAction, null);
824 assertThat(actual, sameBeanAs(expected));
828 public void testGetServiceInstanceNOAAI() throws Exception {
829 ServiceInstance expected = mapper.readValue(
830 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
831 ServiceInstance.class);
832 Service service = mapper.readValue(
833 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
834 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
835 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
836 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
837 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
839 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
840 executeBB.setaLaCarte(true);
841 BuildingBlock buildingBlock = new BuildingBlock();
842 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
843 executeBB.setBuildingBlock(buildingBlock);
844 RequestDetails requestDetails = new RequestDetails();
845 RequestInfo reqInfo = new RequestInfo();
846 reqInfo.setInstanceName("serviceInstanceName");
847 requestDetails.setRequestInfo(reqInfo);
848 ModelInfo modelInfo = new ModelInfo();
849 modelInfo.setModelType(ModelType.service);
850 requestDetails.setModelInfo(modelInfo);
851 doReturn(null).when(SPY_bbInputSetupUtils)
852 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
853 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
854 .mapCatalogServiceIntoServiceInstance(service);
855 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
856 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
857 boolean aLaCarte = true;
859 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
860 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
861 executeBB.getBuildingBlock().getBpmnFlowName());
863 assertThat(actual, sameBeanAs(expected));
867 public void testGetServiceSubscription() throws IOException {
868 ServiceSubscription expected = new ServiceSubscription();
869 RequestDetails requestDetails = new RequestDetails();
870 RequestParameters params = new RequestParameters();
871 params.setSubscriptionServiceType("subscriptionServiceType");
872 requestDetails.setRequestParameters(params);
873 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
874 Customer customer = new Customer();
875 customer.setGlobalCustomerId("globalCustomerId");
876 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
877 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
878 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
880 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
881 assertThat(actual, sameBeanAs(expected));
885 public void testGetCustomer() throws IOException {
886 Customer expected = new Customer();
887 RequestDetails requestDetails = new RequestDetails();
888 SubscriberInfo subscriberInfo = new SubscriberInfo();
889 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
890 requestDetails.setSubscriberInfo(subscriberInfo);
891 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
892 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
893 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
894 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
896 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
897 assertThat(actual, sameBeanAs(expected));
901 public void testGetExistingServiceInstance() throws Exception {
902 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
903 ServiceInstance expected = new ServiceInstance();
905 doReturn(expected).when(bbInputSetupMapperLayer)
906 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
909 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
910 assertThat(actual, sameBeanAs(expected));
914 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
915 Service service = Mockito.mock(Service.class);
916 String key = "collectionCustId";
917 ServiceInstance serviceInstance = mapper.readValue(
918 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
919 ServiceInstance.class);
920 String resourceId = "123";
921 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
922 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
923 assertNull(serviceInstance.getCollection());
924 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
925 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
926 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
927 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
929 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
930 networkCollection.setModelCustomizationUUID(key);
931 networkCollection.setCollectionResource(new CollectionResource());
932 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
933 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
934 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
935 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
936 List<CollectionResourceCustomization> customizations = new ArrayList<>();
937 customizations.add(networkCollection);
938 doReturn(customizations).when(service).getCollectionResourceCustomizations();
940 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
941 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
943 assertNotNull(serviceInstance.getCollection());
944 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
946 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
947 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
948 serviceInstance.getCollection().getInstanceGroup(), key);
952 public void testIsVlanTagging() throws Exception {
953 boolean expected = true;
954 Service service = Mockito.mock(Service.class);
955 String key = "collectionCustId";
956 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
957 networkCollection.setModelCustomizationUUID(key);
958 networkCollection.setCollectionResource(new CollectionResource());
959 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
960 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
961 List<CollectionResourceCustomization> customizations = new ArrayList<>();
962 customizations.add(networkCollection);
963 doReturn(customizations).when(service).getCollectionResourceCustomizations();
964 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
965 assertEquals("Is Vlan Tagging check.", expected, actual);
969 public void testPopulateVolumeGroup() throws Exception {
970 RequestDetails requestDetails = new RequestDetails();
971 RelatedInstanceList ril = new RelatedInstanceList();
972 RelatedInstance ri = new RelatedInstance();
973 ModelInfo mi = new ModelInfo();
974 mi.setModelType(ModelType.vnf);
975 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
977 ril.setRelatedInstance(ri);
978 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
980 ModelInfo modelInfo = new ModelInfo();
981 modelInfo.setModelType(ModelType.volumeGroup);
983 RequestInfo reqInfo = new RequestInfo();
984 reqInfo.setInstanceName("volumeGroupName");
985 requestDetails.setModelInfo(modelInfo);
986 requestDetails.setRequestInfo(reqInfo);
988 ServiceInstance serviceInstance = new ServiceInstance();
989 GenericVnf vnf = new GenericVnf();
990 vnf.setVnfId("genericVnfId");
992 VolumeGroup vg = new VolumeGroup();
993 vg.setVolumeGroupName("volumeGroupName");
994 vg.setVolumeGroupId("volumeGroupId");
995 vnf.getVolumeGroups().add(vg);
996 serviceInstance.getVnfs().add(vnf);
998 Service service = mapper.readValue(
999 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1000 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1001 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1003 String bbName = AssignFlows.VOLUME_GROUP.toString();
1004 String resourceId = "123";
1005 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
1006 eq(service), eq("vnfModelCustomizationUUID"));
1007 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1008 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1009 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1011 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1012 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1013 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1014 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
1015 vnf.getVolumeGroups().clear();
1016 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1017 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1018 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1019 "vnfModelCustomizationUUID");
1023 public void testMapCatalogVolumeGroup() {
1024 VolumeGroup volumeGroup = new VolumeGroup();
1025 RequestDetails requestDetails = new RequestDetails();
1026 ModelInfo modelInfo = new ModelInfo();
1027 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1028 requestDetails.setModelInfo(modelInfo);
1029 Service service = new Service();
1030 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1031 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1032 service.getVnfCustomizations().add(resourceCust);
1033 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1034 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1035 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1036 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1038 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1040 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1042 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1046 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1047 String instanceName = "networkName";
1048 ModelInfo modelInfo = new ModelInfo();
1049 modelInfo.setModelType(ModelType.network);
1051 ServiceInstance serviceInstance = new ServiceInstance();
1052 L3Network network = new L3Network();
1053 network.setNetworkId("networkId");
1054 network.setNetworkName("networkName");
1055 serviceInstance.getNetworks().add(network);
1056 String resourceId = "123";
1058 Service service = mapper.readValue(
1059 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1060 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1061 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1062 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1064 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1066 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1069 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1071 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1073 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1075 instanceName = "networkName2";
1076 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1077 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1079 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1083 public void testMapCatalogNetwork() {
1084 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1085 L3Network network = new L3Network();
1087 RequestDetails requestDetails = new RequestDetails();
1088 ModelInfo modelInfo = new ModelInfo();
1089 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1090 requestDetails.setModelInfo(modelInfo);
1091 Service service = new Service();
1092 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1093 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1094 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1096 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1098 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1100 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1104 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1105 String instanceName = "configurationName";
1106 ModelInfo modelInfo = new ModelInfo();
1107 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1109 ServiceInstance serviceInstance = new ServiceInstance();
1110 Configuration configuration = new Configuration();
1111 configuration.setConfigurationId("configurationId");
1112 configuration.setConfigurationName("configurationName");
1113 serviceInstance.getConfigurations().add(configuration);
1114 String resourceId = "configurationId";
1116 Service service = mapper.readValue(
1117 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1118 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1119 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1120 service.getConfigurationCustomizations().add(configurationCust);
1121 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1122 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1123 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1124 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1125 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1126 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1127 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1129 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1131 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1132 instanceName, configResourceKeys);
1133 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1135 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1137 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1138 instanceName, configResourceKeys);
1139 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1141 instanceName = "configurationName2";
1142 resourceId = "resourceId2";
1143 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1144 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1145 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1146 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1147 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1148 instanceName, configResourceKeys);
1149 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1153 public void testMapCatalogConfiguration() {
1154 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1155 L3Network network = new L3Network();
1157 RequestDetails requestDetails = new RequestDetails();
1158 ModelInfo modelInfo = new ModelInfo();
1159 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1160 requestDetails.setModelInfo(modelInfo);
1161 Service service = new Service();
1162 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1163 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1164 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1166 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1168 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1170 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1174 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1175 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1176 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1177 String instanceName = "vnfName";
1178 ModelInfo modelInfo = new ModelInfo();
1179 modelInfo.setModelType(ModelType.vnf);
1181 ServiceInstance serviceInstance = new ServiceInstance();
1182 GenericVnf vnf = new GenericVnf();
1183 vnf.setVnfId("genericVnfId");
1184 vnf.setVnfName("vnfName");
1185 serviceInstance.getVnfs().add(vnf);
1186 String vnfType = "vnfType";
1187 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1188 RequestDetails.class);
1190 Service service = mapper.readValue(
1191 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1192 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1193 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1194 String bbName = AssignFlows.VNF.toString();
1196 Platform expectedPlatform = new Platform();
1197 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1198 String resourceId = "123";
1199 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1200 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1201 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1202 vnfAAI.setModelCustomizationId("modelCustId");
1203 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1204 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1205 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1206 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1207 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1208 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1210 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1211 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1213 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1215 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1216 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1217 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1219 instanceName = "vnfName2";
1220 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1221 resourceId, vnfType, null);
1222 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1223 resourceId, vnfType, null);
1224 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1225 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1227 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1229 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1230 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1231 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1232 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1233 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1237 public void testMapVnfcCollectionInstanceGroup() {
1238 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1239 GenericVnf genericVnf = new GenericVnf();
1240 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1241 Service service = Mockito.mock(Service.class);
1242 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1243 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1244 vnfcInstanceGroupCust.setModelUUID("modelUUID");
1245 vnfcInstanceGroupCust.setFunction("function");
1246 vnfcInstanceGroupCust.setDescription("description");
1247 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1248 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1249 instanceGroup.setModelUUID("modelUUID");
1250 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1251 modelInfoInstanceGroup.setModelUUID("modelUUID");
1252 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1253 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1254 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1255 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null, instanceGroup);
1257 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1259 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1262 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1263 throws JsonParseException, JsonMappingException, IOException {
1264 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1265 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1266 String instanceName = "vnfName";
1267 ModelInfo modelInfo = new ModelInfo();
1268 modelInfo.setModelType(ModelType.vnf);
1270 ServiceInstance serviceInstance = new ServiceInstance();
1271 GenericVnf vnf = new GenericVnf();
1272 vnf.setVnfId("genericVnfId");
1273 vnf.setVnfName("vnfName");
1274 serviceInstance.getVnfs().add(vnf);
1275 String vnfType = null;
1276 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1277 RequestDetails.class);
1279 Service service = mapper.readValue(
1280 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1281 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1282 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1283 String bbName = AssignFlows.VNF.toString();
1285 Platform expectedPlatform = new Platform();
1286 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1287 String resourceId = "123";
1288 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1289 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1290 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1291 vnfAAI.setModelCustomizationId("modelCustId");
1292 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1293 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1294 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1295 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1296 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1297 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1299 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1300 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1302 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1304 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1305 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1306 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1308 instanceName = "vnfName2";
1309 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1310 resourceId, vnfType, null);
1312 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1313 vnfAAI.setModelCustomizationId("modelCustId2");
1314 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1315 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1316 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1317 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1318 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1319 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1320 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1321 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1325 public void testMapCatalogVnf() {
1326 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1327 GenericVnf genericVnf = new GenericVnf();
1328 RequestDetails requestDetails = new RequestDetails();
1329 ModelInfo modelInfo = new ModelInfo();
1330 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1331 requestDetails.setModelInfo(modelInfo);
1332 Service service = new Service();
1333 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1334 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1335 service.getVnfCustomizations().add(resourceCust);
1336 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1338 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1340 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1342 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1346 public void testMapCatalogCollectionAndInstanceGroup() {
1347 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1348 modelInfoCollection.setCollectionFunction("collectionFunction");
1349 modelInfoCollection.setCollectionRole("collectionRole");
1350 modelInfoCollection.setCollectionType("collectionType");
1351 modelInfoCollection.setDescription("description");
1352 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1353 modelInfoCollection.setQuantity(0);
1355 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1356 modelInfoInstanceGroup.setFunction("function");
1357 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1358 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1359 modelInfoInstanceGroup.setModelUUID("modelUUID");
1360 modelInfoInstanceGroup.setType("VNFC");
1361 modelInfoInstanceGroup.setDescription("description");
1363 InstanceGroup instanceGroup = new InstanceGroup();
1364 Collection collection = new Collection();
1365 collection.setInstanceGroup(instanceGroup);
1367 CollectionResource collectionResource = new CollectionResource();
1368 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1369 collectionResource.setToscaNodeType("NetworkCollection");
1370 collectionResource.setInstanceGroup(catalogInstanceGroup);
1372 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1373 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1374 collectionCust.setCollectionResource(collectionResource);
1376 Service service = new Service();
1377 service.getCollectionResourceCustomizations().add(collectionCust);
1378 ServiceInstance serviceInstance = new ServiceInstance();
1379 serviceInstance.setCollection(collection);
1381 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1382 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1383 instanceGroupCust.setFunction("function");
1384 instanceGroupCust.setDescription("description");
1386 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1387 collectionResource);
1389 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1390 catalogInstanceGroup);
1392 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1393 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1394 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1396 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1397 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1401 public void testAddRelationshipsToSI() throws Exception {
1402 ServiceInstance serviceInstance = new ServiceInstance();
1403 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1404 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1406 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1407 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1408 relationshipList.getRelationship().add(relationship);
1409 serviceInstanceAAI.setRelationshipList(relationshipList);
1411 Map<String, String> uriKeys = new HashMap<>();
1412 uriKeys.put("global-customer-id", "globalCustomerId");
1413 uriKeys.put("service-type", "serviceType");
1416 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1417 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1418 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1419 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1420 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1422 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1424 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1425 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1426 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1427 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1428 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1429 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1433 public void testMapConfigurations() throws JsonProcessingException {
1434 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1435 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1436 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1437 relationshipList.getRelationship().add(relationship);
1438 expectedAAI.setRelationshipList(relationshipList);
1440 Configuration expected = new Configuration();
1441 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1442 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1443 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1445 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1446 doReturn(expected).when(bbInputSetupMapperLayer)
1447 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1449 List<Configuration> configurations = new ArrayList<>();
1451 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1453 assertEquals(expected, configurations.get(0));
1457 public void testMapGenericVnfs() throws JsonProcessingException {
1458 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1459 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1460 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1461 relationshipList.getRelationship().add(relationship);
1462 expectedAAI.setRelationshipList(relationshipList);
1464 GenericVnf expected = new GenericVnf();
1465 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1466 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1467 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1469 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1470 doReturn(expected).when(bbInputSetupMapperLayer)
1471 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1472 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1473 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1474 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1476 List<GenericVnf> genericVnfs = new ArrayList<>();
1478 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1480 assertEquals(expected, genericVnfs.get(0));
1481 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1482 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1483 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1487 public void testMapVolumeGroups() throws JsonProcessingException {
1488 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1490 VolumeGroup expected = new VolumeGroup();
1491 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1492 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1494 doReturn(expected).when(bbInputSetupMapperLayer)
1495 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1497 List<VolumeGroup> volumeGroupsList =
1498 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1500 assertEquals(expected, volumeGroupsList.get(0));
1504 public void testMapLineOfBusiness() throws JsonProcessingException {
1505 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1507 LineOfBusiness expected = new LineOfBusiness();
1508 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1509 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1511 doReturn(expected).when(bbInputSetupMapperLayer)
1512 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1514 GenericVnf vnf = new GenericVnf();
1516 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1518 assertEquals(expected, vnf.getLineOfBusiness());
1522 public void testMapPlatform() throws JsonProcessingException {
1523 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1525 Platform expected = new Platform();
1526 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1527 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1529 doReturn(expected).when(bbInputSetupMapperLayer)
1530 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1532 GenericVnf vnf = new GenericVnf();
1534 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1536 assertEquals(expected, vnf.getPlatform());
1540 public void testMapCollection() throws JsonProcessingException {
1541 List<AAIResultWrapper> collections = new ArrayList<>();
1542 ServiceInstance serviceInstance = new ServiceInstance();
1544 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1545 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1546 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1547 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1548 aaiCollection.setRelationshipList(collectionRelationshipList);
1550 collections.add(new AAIResultWrapper(
1551 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1553 Collection collection = new Collection();
1554 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1555 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1556 InstanceGroup instanceGroup = new InstanceGroup();
1557 instanceGroupsList.add(instanceGroup);
1558 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1559 CollectionResource collectionResource = new CollectionResource();
1560 doReturn(collection).when(bbInputSetupMapperLayer)
1561 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1562 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1563 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1564 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1565 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1567 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1569 assertEquals(collection, serviceInstance.getCollection());
1570 assertEquals(instanceGroup, collection.getInstanceGroup());
1572 instanceGroupsList.clear();
1573 collection = new Collection();
1575 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1576 assertEquals(collection, serviceInstance.getCollection());
1577 assertNull(collection.getInstanceGroup());
1581 public void testMapL3Networks() throws JsonProcessingException {
1582 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1583 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1584 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1585 relationshipList.getRelationship().add(relationship);
1586 expectedAAI.setRelationshipList(relationshipList);
1588 L3Network expected = new L3Network();
1589 List<L3Network> l3Networks = new ArrayList<>();
1590 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1591 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1592 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1594 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1595 doReturn(expected).when(bbInputSetupMapperLayer)
1596 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1597 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1598 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1599 eq(expected.getContrailNetworkRouteTableReferences()));
1601 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1603 assertEquals(expected, l3Networks.get(0));
1604 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1605 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1606 eq(expected.getContrailNetworkRouteTableReferences()));
1610 public void testMapRouteTableReferences() throws JsonProcessingException {
1611 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1613 RouteTableReference expected = new RouteTableReference();
1614 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1615 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1616 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1618 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1619 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1621 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1622 contrailNetworkRouteTableReferences);
1624 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1628 public void testMapOwningEntity() throws JsonProcessingException {
1629 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1631 OwningEntity expected = new OwningEntity();
1632 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1633 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1635 doReturn(expected).when(bbInputSetupMapperLayer)
1636 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1638 ServiceInstance serviceInstance = new ServiceInstance();
1640 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1642 assertEquals(expected, serviceInstance.getOwningEntity());
1646 public void testMapProject() throws JsonProcessingException {
1647 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1649 Project expected = new Project();
1650 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1651 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1653 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1655 ServiceInstance serviceInstance = new ServiceInstance();
1657 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1659 assertEquals(expected, serviceInstance.getProject());
1663 public void testMapCustomer() throws Exception {
1664 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1665 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1667 Customer expected = new Customer();
1668 ServiceSubscription serviceSubscription = new ServiceSubscription();
1670 String globalCustomerId = "globalCustomerId";
1671 String subscriptionServiceType = "subscriptionServiceType";
1673 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1674 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1675 subscriptionServiceType);
1676 doReturn(expected).when(bbInputSetupMapperLayer)
1677 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1678 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1679 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1681 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1683 assertEquals(expected, actual);
1684 assertEquals(serviceSubscription, expected.getServiceSubscription());
1688 public void testPopulateLookupKeyMapWithIds() {
1689 Map<ResourceKey, String> expected = new HashMap<>();
1690 Map<ResourceKey, String> actual = new HashMap<>();
1691 String serviceInstanceId = "serviceInstanceId";
1692 String networkId = "networkId";
1693 String vnfId = "vnfId";
1694 String vfModuleId = "vfModuleId";
1695 String volumeGroupId = "volumeGroupId";
1696 String configurationId = "configurationId";
1698 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1699 expected.put(ResourceKey.NETWORK_ID, networkId);
1700 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1701 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1702 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1703 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1705 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1706 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1707 workflowResourceIds.setNetworkId(networkId);
1708 workflowResourceIds.setVnfId(vnfId);
1709 workflowResourceIds.setVfModuleId(vfModuleId);
1710 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1711 workflowResourceIds.setConfigurationId(configurationId);
1713 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1715 assertThat(actual, sameBeanAs(expected));
1719 public void testgetGBBMacro() throws Exception {
1720 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1721 GeneralBuildingBlock.class);
1722 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1723 ExecuteBuildingBlock.class);
1724 RequestDetails requestDetails = mapper
1725 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1726 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1727 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1728 aaiVnf.setModelCustomizationId("modelCustId");
1729 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1730 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1731 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1732 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1733 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1734 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1735 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1736 String resourceId = "123";
1737 String vnfType = "vnfType";
1738 Service service = Mockito.mock(Service.class);
1739 String requestAction = "createInstance";
1741 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1742 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1743 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1744 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1745 executeBB.setConfigurationResourceKeys(configResourceKeys);
1747 executeBB.setRequestDetails(requestDetails);
1748 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1749 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
1750 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1751 doReturn(service).when(SPY_bbInputSetupUtils)
1752 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1753 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1754 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1755 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1756 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1759 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1760 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1761 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1762 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1763 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1765 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1766 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1767 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1768 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1769 isA(org.onap.so.serviceinstancebeans.Platform.class),
1770 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1771 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1773 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1774 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1775 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1776 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1777 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1778 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1780 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1781 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1782 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1783 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1784 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1785 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(),ArgumentMatchers.isNull(),
1786 any(String.class), any());
1788 Configuration configuration = new Configuration();
1789 configuration.setConfigurationId("configurationId");
1790 gBB.getServiceInstance().getConfigurations().add(configuration);
1791 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1792 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1793 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1794 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1795 configurationCustList.add(configurationCust);
1796 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1797 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1799 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1800 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1801 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1802 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1803 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1807 public void testgetGBBMacroCloudConfiguration() throws Exception {
1808 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1809 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1810 CloudConfiguration cloudConfig = null;
1811 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1812 aaiCloudRegion.setCloudOwner("test-owner-name");
1813 Resources resources = serviceMacro.getResources();
1814 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
1815 CloudRegion expected = new CloudRegion();
1816 expected.setLcpCloudRegionId("mdt1");
1817 expected.setCloudOwner("test-owner-name");
1818 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1820 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1821 assertThat(actual, sameBeanAs(expected));
1823 serviceMacro = mapper.readValue(
1824 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1825 resources = serviceMacro.getResources();
1827 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1828 assertThat(actual, sameBeanAs(expected));
1830 serviceMacro = mapper.readValue(
1831 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1832 resources = serviceMacro.getResources();
1834 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1835 assertThat(actual, sameBeanAs(expected));
1837 serviceMacro = mapper.readValue(
1838 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1839 resources = serviceMacro.getResources();
1841 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1846 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1847 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1848 GeneralBuildingBlock.class);
1849 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1850 ExecuteBuildingBlock.class);
1851 RequestDetails requestDetails = mapper
1852 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1853 requestDetails.getRequestParameters().getUserParams().clear();
1854 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1855 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1856 aaiVnf.setModelCustomizationId("modelCustId");
1857 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1858 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1859 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1860 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1861 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1862 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1863 String resourceId = "123";
1864 String vnfType = "vnfType";
1865 Service service = Mockito.mock(Service.class);
1866 String requestAction = "createInstance";
1868 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1869 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
1870 doReturn(service).when(SPY_bbInputSetupUtils)
1871 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1873 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1874 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1875 executeBB.getBuildingBlock().setIsVirtualLink(Boolean.FALSE);
1876 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1877 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1878 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1881 @Test(expected = Exception.class)
1882 public void testgetGBBMacroException() throws Exception {
1883 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1884 GeneralBuildingBlock.class);
1885 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1886 ExecuteBuildingBlock.class);
1887 RequestDetails requestDetails = mapper
1888 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1889 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1890 String resourceId = "123";
1891 String vnfType = "vnfType";
1892 Service service = Mockito.mock(Service.class);
1893 String requestAction = "createInstance";
1895 executeBB.getBuildingBlock().setBpmnFlowName("Network");
1896 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1897 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1901 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
1902 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1903 GeneralBuildingBlock.class);
1904 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1905 ExecuteBuildingBlock.class);
1906 RequestDetails requestDetails = mapper
1907 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1908 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1909 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1910 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1911 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1912 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1913 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1914 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1915 aaiVnf.setModelCustomizationId("modelCustId");
1916 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1917 String resourceId = "123";
1918 String vnfType = null;
1919 Service service = Mockito.mock(Service.class);
1920 String requestAction = "createInstance";
1923 executeBB.setRequestDetails(requestDetails);
1924 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1925 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
1926 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1927 doReturn(service).when(SPY_bbInputSetupUtils)
1928 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1929 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1930 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1931 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1932 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1934 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1935 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1936 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1937 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1938 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1940 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1941 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1942 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1943 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1944 isA(org.onap.so.serviceinstancebeans.Platform.class),
1945 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1946 isA(ServiceInstance.class), any(),ArgumentMatchers.isNull(), any(String.class), ArgumentMatchers.isNull(), any());
1948 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1949 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1950 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1951 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1952 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1953 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1955 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1956 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1957 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1958 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1959 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1960 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
1961 ArgumentMatchers.isNull(), any());
1965 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
1966 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1967 GeneralBuildingBlock.class);
1968 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1969 ExecuteBuildingBlock.class);
1970 RequestDetails requestDetails = mapper
1971 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1972 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1973 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1974 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1975 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1976 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1977 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1978 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1979 aaiVnf.setModelCustomizationId("modelCustId");
1980 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1981 String resourceId = "123";
1982 String vnfType = "vnfType";
1983 Service service = Mockito.mock(Service.class);
1984 String requestAction = "createInstance";
1986 executeBB.setRequestDetails(requestDetails);
1987 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1988 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
1989 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1990 doReturn(service).when(SPY_bbInputSetupUtils)
1991 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1992 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1993 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1994 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1995 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1997 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1998 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1999 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2000 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
2001 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2003 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
2004 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2005 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2006 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
2007 isA(org.onap.so.serviceinstancebeans.Platform.class),
2008 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
2009 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
2011 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2012 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
2013 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2014 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2015 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
2016 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
2018 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2019 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
2020 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2021 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2022 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
2023 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
2024 any(String.class), any());
2028 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2029 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2030 GeneralBuildingBlock.class);
2031 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2032 ExecuteBuildingBlock.class);
2033 RequestDetails requestDetails = mapper
2034 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2035 requestDetails.getRequestParameters().setUserParams(null);
2036 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2037 aaiVnf.setModelCustomizationId("modelCustId");
2038 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2039 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2040 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2041 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2042 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2043 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2044 String resourceId = "123";
2045 String vnfType = "vnfType";
2046 Service service = Mockito.mock(Service.class);
2047 String requestAction = "deactivateInstance";
2048 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2049 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2050 doReturn(service).when(SPY_bbInputSetupUtils)
2051 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2052 String generatedId = "12131";
2054 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
2055 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2056 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2057 requestAction, resourceId, vnfType);
2058 assertThat(actual, sameBeanAs(gBB));
2062 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
2063 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2064 GeneralBuildingBlock.class);
2065 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2066 ExecuteBuildingBlock.class);
2067 RequestDetails requestDetails = mapper
2068 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2069 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2070 requestDetails.getRequestParameters().setUserParams(null);
2071 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2072 aaiVnf.setModelCustomizationId("modelCustId");
2073 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2074 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2075 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2076 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2077 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2078 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2079 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2081 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2082 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2083 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2084 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2085 executeBB.setConfigurationResourceKeys(configResourceKeys);
2087 String resourceId = "123";
2088 String vnfType = "vnfType";
2089 Service service = Mockito.mock(Service.class);
2090 String requestAction = "createInstance";
2091 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2092 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2095 doReturn(service).when(SPY_bbInputSetupUtils)
2096 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2097 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2098 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2099 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2100 networkCustList.add(networkCust);
2101 doReturn(networkCustList).when(service).getNetworkCustomizations();
2102 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2103 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2105 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2106 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2107 executeBB.getBuildingBlock().setIsVirtualLink(false);
2108 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2109 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2110 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2112 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2113 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2114 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2115 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2116 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2117 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2119 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2120 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2121 executeBB.getBuildingBlock().setIsVirtualLink(true);
2122 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2123 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2124 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2126 executeBB.getBuildingBlock().setBpmnFlowName("CreateNetworkBB");
2127 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2128 executeBB.getBuildingBlock().setIsVirtualLink(true);
2129 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2130 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2131 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2135 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2136 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2137 GeneralBuildingBlock.class);
2138 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2139 ExecuteBuildingBlock.class);
2140 RequestDetails requestDetails = mapper
2141 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2142 requestDetails.getRequestParameters().setUserParams(null);
2143 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2144 aaiVnf.setModelCustomizationId("modelCustId");
2145 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2146 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2147 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2148 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2149 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2150 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2151 String resourceId = "123";
2152 String vnfType = "vnfType";
2153 Service service = Mockito.mock(Service.class);
2154 String requestAction = "deleteInstance";
2156 executeBB.setRequestDetails(requestDetails);
2157 ServiceInstance serviceInstance = gBB.getServiceInstance();
2158 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2159 aaiServiceInstance.setModelVersionId("modelVersionId");
2160 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2161 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2162 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2163 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2164 executeBB, requestAction, null);
2166 CloudConfiguration cloudConfig = new CloudConfiguration();
2167 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2168 requestDetails.setCloudConfiguration(cloudConfig);
2169 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2170 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
2171 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2172 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2173 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2174 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2175 any(String.class), isA(String.class),
2176 isA(CloudConfiguration.class));
2178 requestAction = "activateInstance";
2179 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2180 executeBB, requestAction, null);
2181 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2182 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2183 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2184 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2185 any(String.class), isA(String.class),
2186 isA(CloudConfiguration.class));
2188 requestAction = "unassignInstance";
2189 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2190 executeBB, requestAction, null);
2191 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2192 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2193 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2194 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2195 any(String.class), isA(String.class),
2196 isA(CloudConfiguration.class));
2198 requestAction = "activateFabricConfiguration";
2199 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2200 executeBB, requestAction, null);
2201 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2202 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2203 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2204 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2205 any(String.class), isA(String.class),
2206 isA(CloudConfiguration.class));
2209 @Test(expected = IllegalArgumentException.class)
2210 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2211 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2212 GeneralBuildingBlock.class);
2213 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2214 ExecuteBuildingBlock.class);
2215 RequestDetails requestDetails = mapper
2216 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2217 requestDetails.getRequestParameters().setUserParams(null);
2218 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2219 aaiVnf.setModelCustomizationId("modelCustId");
2220 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2221 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2222 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2223 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2224 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2225 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2226 String resourceId = "123";
2227 String vnfType = "vnfType";
2228 Service service = Mockito.mock(Service.class);
2229 String requestAction = "assignInstance";
2230 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2231 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2232 doReturn(service).when(SPY_bbInputSetupUtils)
2233 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2234 String generatedId = "12131";
2236 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2237 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2240 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2241 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2242 GeneralBuildingBlock.class);
2243 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2244 ExecuteBuildingBlock.class);
2245 RequestDetails requestDetails = mapper
2246 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2247 requestDetails.getRequestParameters().setUserParams(null);
2248 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2249 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2250 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2251 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2252 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2253 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2254 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2255 Service service = Mockito.mock(Service.class);
2256 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2257 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2258 String requestAction = "unassignInstance";
2259 executeBB.setRequestDetails(requestDetails);
2261 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2262 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2263 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2264 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2265 executeBB.setConfigurationResourceKeys(configResourceKeys);
2267 ServiceInstance serviceInstance = gBB.getServiceInstance();
2268 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2269 aaiServiceInstance.setModelVersionId("modelVersionId");
2270 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2271 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2272 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2273 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2274 executeBB, requestAction, null);
2276 L3Network network = new L3Network();
2277 network.setNetworkId("networkId");
2278 gBB.getServiceInstance().getNetworks().add(network);
2279 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2280 aaiNetwork.setModelCustomizationId("modelCustId");
2281 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2282 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2283 any(Service.class));
2285 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2286 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2287 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2288 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2289 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2290 any(Service.class));
2292 GenericVnf vnf = new GenericVnf();
2293 vnf.setVnfId("vnfId");
2294 gBB.getServiceInstance().getVnfs().add(vnf);
2295 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2296 aaiVnf.setModelCustomizationId("modelCustId");
2297 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2298 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2299 any(Service.class));
2301 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2302 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2303 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2304 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2305 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2306 any(Service.class));
2308 VfModule vfModule = new VfModule();
2309 vfModule.setVfModuleId("vfModuleId");
2310 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2311 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2312 aaiVfModule.setModelCustomizationId("modelCustId");
2313 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2315 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2316 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2317 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2318 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2319 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2320 any(Service.class));
2321 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2322 any(Service.class), any(String.class));
2324 CloudRegion cloudRegion = new CloudRegion();
2325 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2326 cloudRegion.setCloudOwner("CloudOwner");
2327 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2328 VolumeGroup volumeGroup = new VolumeGroup();
2329 volumeGroup.setVolumeGroupId("volumeGroupId");
2330 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2331 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2332 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2333 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2334 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2336 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2337 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2338 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2339 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2340 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2341 any(Service.class));
2342 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2343 isA(Service.class), isA(String.class));
2345 Configuration configuration = new Configuration();
2346 configuration.setConfigurationId("configurationId");
2347 gBB.getServiceInstance().getConfigurations().add(configuration);
2348 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2349 aaiConfiguration.setModelCustomizationId("modelCustId");
2350 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2351 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2353 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2354 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2355 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2356 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2357 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2358 any(Service.class), isA(ConfigurationResourceKeys.class));
2362 public void testGetVnfId() {
2363 String expected = "vnfId";
2364 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2365 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2366 executeBB.setRequestId("requestId");
2367 InfraActiveRequests request = new InfraActiveRequests();
2368 request.setVnfId(expected);
2369 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2371 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2373 assertEquals("VnfId is set correctly", expected, actual);
2377 public void testCreateVfModule() {
2378 String vfModuleId = "vfModuleId";
2379 String instanceName = "vfModuleName";
2380 Map<String, String> cloudParams = new HashMap<>();
2381 cloudParams.put("param1", "param1Value");
2382 VfModule expected = new VfModule();
2383 expected.setVfModuleId(vfModuleId);
2384 expected.setVfModuleName(instanceName);
2385 expected.setCloudParams(cloudParams);
2386 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2387 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2388 List<Map<String, String>> instanceParams = new ArrayList<>();
2389 instanceParams.add(cloudParams);
2391 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2393 assertThat(actual, sameBeanAs(expected));
2394 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2396 expected.getCloudParams().clear();
2397 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2398 assertThat(actual, sameBeanAs(expected));
2402 public void testCreateVolumeGroup() {
2403 String volumeGroupId = "volumeGroupId";
2404 String instanceName = "vfModuleName";
2405 String vnfType = "vnfType";
2406 Map<String, String> cloudParams = new HashMap<>();
2407 cloudParams.put("param1", "param1Value");
2408 VolumeGroup expected = new VolumeGroup();
2409 expected.setVolumeGroupId(volumeGroupId);
2410 expected.setVolumeGroupName(instanceName);
2411 expected.setCloudParams(cloudParams);
2412 expected.setVnfType(vnfType);
2413 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2414 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2415 List<Map<String, String>> instanceParams = new ArrayList<>();
2416 instanceParams.add(cloudParams);
2418 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2420 assertThat(actual, sameBeanAs(expected));
2421 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2423 expected.getCloudParams().clear();
2424 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2425 assertThat(actual, sameBeanAs(expected));
2429 public void testCreateNetwork() {
2430 String networkId = "networkId";
2431 String instanceName = "networkName";
2432 Map<String, String> cloudParams = new HashMap<>();
2433 cloudParams.put("param1", "param1Value");
2434 L3Network expected = new L3Network();
2435 expected.setNetworkId(networkId);
2436 expected.setNetworkName(instanceName);
2437 expected.setCloudParams(cloudParams);
2438 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2439 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2440 List<Map<String, String>> instanceParams = new ArrayList<>();
2441 instanceParams.add(cloudParams);
2442 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2444 assertThat(actual, sameBeanAs(expected));
2445 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2447 expected.getCloudParams().clear();
2448 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2449 assertThat(actual, sameBeanAs(expected));
2453 public void testCreateGenericVnf() {
2454 String vnfId = "vnfId";
2455 String instanceName = "vnfName";
2456 String vnfType = "vnfType";
2457 String platformName = "platformName";
2458 String lineOfBusinessName = "lineOfBusinessName";
2459 Platform platform = new Platform();
2460 platform.setPlatformName(platformName);
2461 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2462 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2463 Map<String, String> cloudParams = new HashMap<>();
2464 cloudParams.put("param1", "param1Value");
2465 GenericVnf expected = new GenericVnf();
2466 expected.setVnfId(vnfId);
2467 expected.setVnfName(instanceName);
2468 expected.setVnfType(vnfType);
2469 expected.setCloudParams(cloudParams);
2470 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2471 expected.setPlatform(platform);
2472 expected.setLineOfBusiness(lineOfBusiness);
2473 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2474 List<Map<String, String>> instanceParams = new ArrayList<>();
2475 instanceParams.add(cloudParams);
2476 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2477 platform.setPlatformName(platformName);
2478 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2479 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2481 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2482 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2484 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2486 assertThat(actual, sameBeanAs(expected));
2487 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2489 expected.getCloudParams().clear();
2490 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2491 assertThat(actual, sameBeanAs(expected));
2495 public void testMapCatalogVfModule() {
2496 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2497 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2498 VfModule vfModule = new VfModule();
2499 ModelInfo modelInfo = new ModelInfo();
2500 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2501 Service service = new Service();
2502 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2503 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2504 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2505 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2506 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2507 service.getVnfCustomizations().add(vnfResourceCust);
2508 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2510 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2512 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2514 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2516 modelInfo.setModelCustomizationUuid(null);
2517 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2519 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2521 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2525 public void testPopulateVfModule() throws Exception {
2526 String vnfId = "vnfId";
2527 String vfModuleId = "vfModuleId";
2528 String volumeGroupId = "volumeGroupId";
2529 String vfModuleCustomizationId = "vfModuleCustomizationId";
2530 ModelInfo modelInfo = new ModelInfo();
2531 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2532 Service service = new Service();
2533 String bbName = AssignFlows.VF_MODULE.toString();
2534 ServiceInstance serviceInstance = new ServiceInstance();
2535 GenericVnf vnf = new GenericVnf();
2536 vnf.setVnfId(vnfId);
2537 VolumeGroup volumeGroup = new VolumeGroup();
2538 volumeGroup.setVolumeGroupId(volumeGroupId);
2539 vnf.getVolumeGroups().add(volumeGroup);
2540 serviceInstance.getVnfs().add(vnf);
2541 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2542 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2543 String resourceId = vfModuleId;
2544 RelatedInstanceList[] relatedInstanceList = null;
2545 String instanceName = "vfModuleName";
2546 List<Map<String, String>> instanceParams = null;
2547 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2549 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2550 vnfAAI.setModelCustomizationId("vnfModelCustId");
2551 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2552 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2554 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2555 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2556 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2557 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2558 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2560 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2561 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2563 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2564 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));