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.ArgumentMatchers.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.ArgumentMatchers;
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.ConfigurationResource;
97 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
98 import org.onap.so.db.catalog.beans.InstanceGroupType;
99 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
100 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
101 import org.onap.so.db.catalog.beans.OrchestrationStatus;
102 import org.onap.so.db.catalog.beans.Service;
103 import org.onap.so.db.catalog.beans.VfModuleCustomization;
104 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
105 import org.onap.so.db.catalog.beans.VnfVfmoduleCvnfcConfigurationCustomization;
106 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
107 import org.onap.so.db.request.beans.InfraActiveRequests;
108 import org.onap.so.serviceinstancebeans.CloudConfiguration;
109 import org.onap.so.serviceinstancebeans.ModelInfo;
110 import org.onap.so.serviceinstancebeans.ModelType;
111 import org.onap.so.serviceinstancebeans.RelatedInstance;
112 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
113 import org.onap.so.serviceinstancebeans.RequestDetails;
114 import org.onap.so.serviceinstancebeans.RequestInfo;
115 import org.onap.so.serviceinstancebeans.RequestParameters;
116 import org.onap.so.serviceinstancebeans.Resources;
117 import org.onap.so.serviceinstancebeans.SubscriberInfo;
119 import com.fasterxml.jackson.core.JsonParseException;
120 import com.fasterxml.jackson.core.JsonProcessingException;
121 import com.fasterxml.jackson.databind.JsonMappingException;
122 import com.fasterxml.jackson.databind.ObjectMapper;
123 @RunWith(MockitoJUnitRunner.class)
124 public class BBInputSetupTest {
125 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
127 protected ObjectMapper mapper = new ObjectMapper();
128 private static final String CLOUD_OWNER = "CloudOwner";
131 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
134 private BBInputSetupUtils SPY_bbInputSetupUtils;
137 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
140 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
144 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
145 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
146 SPY_bbInputSetup.setCloudInfoFromAAI(SPY_cloudInfoFromAAI);
150 public void testGetVolumeGroupIdRelatedToVfModule() {
151 String expected = "volumeGroupId";
152 String modelCustomizationId = "modelCustomizationId";
153 ModelInfo modelInfo = new ModelInfo();
154 modelInfo.setModelCustomizationId(modelCustomizationId);
155 String cloudOwner = "cloudOwner";
156 String cloudRegionId = "cloudRegionId";
157 String volumeGroupId = "volumeGroupId";
158 GenericVnf vnf = new GenericVnf();
159 VolumeGroup volumeGroup = new VolumeGroup();
160 volumeGroup.setVolumeGroupId(expected);
161 vnf.getVolumeGroups().add(volumeGroup);
162 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
163 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
164 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
165 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
166 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId, volumeGroupId);
168 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner, cloudRegionId, lookupKeyMap);
170 assertEquals(expected, actual.get());
174 public void testGetAlaCarteServiceInstance() throws Exception {
175 ServiceInstance expected = mapper.readValue(
176 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
177 ServiceInstance.class);
178 RequestDetails requestDetails = new RequestDetails();
179 RequestInfo requestInfo = new RequestInfo();
180 requestInfo.setInstanceName("SharansInstanceName");
181 requestDetails.setRequestInfo(requestInfo);
182 Customer customer = new Customer();
183 String serviceInstanceId = "SharansInstanceId";
184 boolean aLaCarte = true;
185 Service service = new Service();
186 service.setModelUUID("modelUUID");
187 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
188 modelInfoServiceInstance.setModelUuid("modelUUID");
189 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
190 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
191 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
192 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
193 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
194 Service differentService = new Service();
195 differentService.setModelUUID("modelUUIDDifferent");
197 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
198 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
199 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
200 doReturn(differentService).when(SPY_bbInputSetupUtils)
201 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
202 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
203 .mapCatalogServiceIntoServiceInstance(differentService);
205 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
206 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
207 assertThat(actual, sameBeanAs(expected));
210 @Test(expected = Exception.class)
211 public void testGetAlaCarteServiceInstanceException() throws Exception {
212 ServiceInstance expected = mapper.readValue(
213 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
214 ServiceInstance.class);
215 RequestDetails requestDetails = new RequestDetails();
216 RequestInfo requestInfo = new RequestInfo();
217 requestInfo.setInstanceName("SharansInstanceName");
218 requestDetails.setRequestInfo(requestInfo);
219 Customer customer = new Customer();
220 String serviceInstanceId = "SharansInstanceId";
221 boolean aLaCarte = true;
222 Service service = new Service();
223 service.setModelUUID("modelUUID");
224 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
225 modelInfoServiceInstance.setModelUuid("modelUUID");
226 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
227 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
228 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
229 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
230 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
231 Service differentService = new Service();
232 differentService.setModelUUID("modelUUIDDifferent");
234 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
235 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
236 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
237 doReturn(null).when(SPY_bbInputSetupUtils)
238 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
240 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
241 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
242 assertThat(actual, sameBeanAs(expected));
246 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
247 RequestDetails requestDetails = mapper.readValue(
248 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
249 SubscriberInfo subscriberInfo = new SubscriberInfo();
250 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
251 RequestParameters requestParams = new RequestParameters();
252 requestParams.setSubscriptionServiceType("subscriptionServiceType");
253 requestDetails.setRequestParameters(requestParams);
254 requestDetails.setSubscriberInfo(subscriberInfo);
255 String resourceId = "resourceId";
256 Customer expected = new Customer();
257 expected.setGlobalCustomerId("globalCustomerId");
258 ServiceSubscription serviceSubscription = new ServiceSubscription();
259 serviceSubscription.setServiceType("subscriptionServiceType");
261 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
262 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
264 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
266 assertThat(actual, sameBeanAs(expected));
268 requestDetails.setSubscriberInfo(null);
271 assertThat(actual, sameBeanAs(expected));
276 public void testSetHomingFlag() throws JsonParseException, JsonMappingException, IOException {
277 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
278 GeneralBuildingBlock.class);
279 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
280 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
281 GenericVnf genericVnfExpected = new GenericVnf();
282 genericVnfExpected.setVnfId("vnfId");
283 genericVnfExpected.setCallHoming(true);
284 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
285 boolean homing = true;
286 GenericVnf genericVnfActual = new GenericVnf();
287 genericVnfActual.setVnfId("vnfId");
288 genericVnfActual.setCallHoming(false);
289 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
290 GeneralBuildingBlock.class);
291 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
293 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
294 assertThat(actual, sameBeanAs(expected));
298 public void testGetExecuteBBFromExecution() throws IOException {
299 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
300 BuildingBlock bb = new BuildingBlock();
301 bb.setBpmnFlowName("AssignServiceInstanceBB");
302 expected.setBuildingBlock(bb);
303 expected.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
304 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
305 doReturn(expected).when(execution).getVariable(any(String.class));
306 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
307 assertThat(actual, sameBeanAs(expected));
311 public void testGetGBB() throws Exception {
312 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
313 GeneralBuildingBlock.class);
315 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
316 executeBB.setRequestId("requestId");
317 RequestDetails requestDetails = new RequestDetails();
318 ModelInfo modelInfo = new ModelInfo();
319 modelInfo.setModelType(ModelType.service);
320 requestDetails.setModelInfo(modelInfo);
321 RequestParameters requestParams = new RequestParameters();
322 requestParams.setaLaCarte(true);
323 requestDetails.setRequestParameters(requestParams);
324 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
325 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
326 String resourceId = "123";
327 String requestAction = "createInstance";
328 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
329 requestAction, resourceId);
330 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),lookupKeyMap);
331 boolean aLaCarte = true;
332 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte,
335 assertThat(actual, sameBeanAs(expected));
339 public void testGetGBBCM() throws Exception {
340 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"),
341 GeneralBuildingBlock.class);
343 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
344 executeBB.setRequestId("requestId");
345 RequestDetails requestDetails = new RequestDetails();
346 requestDetails.setModelInfo(null);
347 RequestParameters requestParams = new RequestParameters();
348 requestParams.setaLaCarte(true);
349 requestDetails.setRequestParameters(requestParams);
350 RequestInfo requestInfo = new RequestInfo();
351 requestInfo.setSuppressRollback(true);
352 requestInfo.setSource("VID");
353 requestDetails.setRequestInfo(requestInfo);
354 CloudConfiguration cloudConfiguration = new CloudConfiguration();
355 cloudConfiguration.setLcpCloudRegionId("myRegionId");
356 requestDetails.setCloudConfiguration(cloudConfiguration);
357 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
358 String resourceId = "123";
359 String requestAction = "createInstance";
361 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
363 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils).getAAIGenericVnf(ArgumentMatchers.isA(String.class));
364 doReturn(null).when(bbInputSetupMapperLayer).mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
365 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction,
367 assertThat(actual, sameBeanAs(expected));
371 public void testGetGBBCMAddMembersAction() throws Exception {
372 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"),
373 GeneralBuildingBlock.class);
374 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
375 ExecuteBuildingBlock.class);
376 RequestDetails requestDetails = mapper.readValue(
377 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
378 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
379 String requestAction = "addMembers";
380 String instanceGroupId = "instance-group-001";
382 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
383 workflowResourceIds.setInstanceGroupId(instanceGroupId);
384 executeBB.setWorkflowResourceIds(workflowResourceIds);
386 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
388 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
389 aaiInstanceGroup.setId(instanceGroupId);
390 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
392 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
393 aaiServiceInstance.setServiceInstanceId("service-instance-001");
394 aaiServiceInstance.setServiceInstanceName("test service instance 1");
395 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
397 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
398 vnf1.setVnfId("vnf-001");
399 vnf1.setVnfName("test vnf 1");
401 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
402 vnf2.setVnfId("vnf-002");
403 vnf2.setVnfName("test vnf 2");
405 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
406 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
407 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
408 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
410 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap,
411 requestAction, instanceGroupId);
413 assertThat(actual, sameBeanAs(expected));
417 public void testGetGBBALaCarteNonService() 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_withRelatedInstanceList.json"), RequestDetails.class);
424 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
425 String requestAction = "createInstance";
426 Service service = Mockito.mock(Service.class);
427 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
428 String resourceId = "123";
429 String vnfType = "vnfType";
430 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
431 aaiServiceInstance.setModelVersionId("modelVersionId");
432 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
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, null, null);
439 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
440 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
441 executeBB, requestAction, null);
443 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
444 requestAction, resourceId, vnfType);
446 assertThat(actual, sameBeanAs(expected));
449 @Test(expected = Exception.class)
450 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
451 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
452 ExecuteBuildingBlock.class);
453 RequestDetails requestDetails = mapper.readValue(
454 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
455 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
456 String requestAction = "createInstance";
457 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
458 aaiServiceInstance.setModelVersionId("modelVersionId");
459 String resourceId = "123";
460 String vnfType = "vnfType";
462 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
467 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
468 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
469 GeneralBuildingBlock.class);
470 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
471 ExecuteBuildingBlock.class);
472 RequestDetails requestDetails = mapper.readValue(
473 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
474 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
475 String requestAction = "createInstance";
476 Service service = Mockito.mock(Service.class);
477 String resourceId = "123";
478 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
479 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
480 aaiServiceInstance.setModelVersionId("modelVersionId");
481 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
482 String vnfType = "vnfType";
483 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
484 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
485 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
487 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
488 serviceInstance, lookupKeyMap, resourceId, vnfType, null, null);
490 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
491 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
492 executeBB, requestAction,null);
494 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
495 requestAction, resourceId, vnfType);
497 assertThat(actual, sameBeanAs(expected));
501 public void testGetGBBALaCarteService() throws Exception {
502 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
503 GeneralBuildingBlock.class);
504 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
505 ExecuteBuildingBlock.class);
506 RequestDetails requestDetails = mapper.readValue(
507 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
508 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
510 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
511 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
512 requestDetails.setProject(requestProject);
513 requestDetails.setOwningEntity(requestOwningEntity);
515 Service service = Mockito.mock(Service.class);
516 Customer customer = Mockito.mock(Customer.class);
517 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
518 Project project = Mockito.mock(Project.class);
519 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
520 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
521 String resourceId = "123";
522 String requestAction = "createInstance";
523 executeBB.setaLaCarte(true);
524 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
525 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
527 doReturn(service).when(SPY_bbInputSetupUtils)
528 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
529 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
530 doReturn(owningEntity).when(bbInputSetupMapperLayer)
531 .mapRequestOwningEntity(requestDetails.getOwningEntity());
533 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
534 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
535 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
536 executeBB.getBuildingBlock().getBpmnFlowName());
537 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
538 executeBB, requestAction, customer);
540 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
541 requestAction, resourceId);
543 assertThat(actual, sameBeanAs(expected));
547 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
548 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
549 GeneralBuildingBlock.class);
550 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
551 ExecuteBuildingBlock.class);
552 RequestDetails requestDetails = mapper.readValue(
553 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
554 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
556 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
557 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
558 requestDetails.setProject(requestProject);
559 requestDetails.setOwningEntity(requestOwningEntity);
561 Service service = Mockito.mock(Service.class);
562 Customer customer = Mockito.mock(Customer.class);
563 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
564 Project project = Mockito.mock(Project.class);
565 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
566 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
567 String resourceId = "123";
568 String requestAction = "createInstance";
569 executeBB.setaLaCarte(true);
570 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
571 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
573 doReturn(null).when(SPY_bbInputSetupUtils)
574 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
575 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
576 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
577 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
578 doReturn(owningEntity).when(bbInputSetupMapperLayer)
579 .mapRequestOwningEntity(requestDetails.getOwningEntity());
581 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
582 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
583 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
584 executeBB.getBuildingBlock().getBpmnFlowName());
585 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
586 executeBB, requestAction,customer);
588 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
589 requestAction, resourceId);
591 assertThat(actual, sameBeanAs(expected));
595 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
596 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
597 GeneralBuildingBlock.class);
598 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
599 ExecuteBuildingBlock.class);
600 RequestDetails requestDetails = mapper.readValue(
601 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
602 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
604 Service service = Mockito.mock(Service.class);
605 Customer customer = Mockito.mock(Customer.class);
606 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
607 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
608 String resourceId = "123";
609 String requestAction = "createInstance";
610 executeBB.setaLaCarte(true);
611 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
612 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
614 Map<String, String> uriKeys = new HashMap<>();
615 uriKeys.put("global-customer-id", "globalCustomerId");
616 uriKeys.put("service-type", "serviceType");
618 doReturn(service).when(SPY_bbInputSetupUtils)
619 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
621 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
623 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
624 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
625 executeBB.getBuildingBlock().getBpmnFlowName());
626 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
627 executeBB, requestAction,customer);
629 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
630 requestAction, resourceId);
632 assertThat(actual, sameBeanAs(expected));
636 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
637 RequestDetails requestDetails = new RequestDetails();
638 RequestInfo requestInfo = new RequestInfo();
639 requestInfo.setInstanceName("SharansInstanceName");
640 requestDetails.setRequestInfo(requestInfo);
641 Customer customer = new Customer();
642 String serviceInstanceId = "SharansInstanceId";
643 boolean aLaCarte = true;
644 ServiceInstance expected = new ServiceInstance();
645 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
646 Service service = new Service();
647 service.setModelUUID("modelUUID");
648 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
650 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
651 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
654 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
655 lookupKeyMap, serviceInstanceId);
657 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
658 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
659 assertThat(actual, sameBeanAs(expected));
663 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
664 RequestDetails requestDetails = new RequestDetails();
665 RequestInfo requestInfo = new RequestInfo();
666 requestInfo.setInstanceName("SharansInstanceName");
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("modelUUID");
676 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
677 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
679 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
680 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
681 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
683 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
684 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
685 assertThat(actual, sameBeanAs(expected));
689 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
690 RequestDetails requestDetails = new RequestDetails();
691 RequestInfo requestInfo = new RequestInfo();
692 requestInfo.setInstanceName("SharansInstanceName");
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 ServiceInstance expected = new ServiceInstance();
700 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
701 serviceInstanceAAI.setModelVersionId("modelUUID");
702 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
703 String bbName = "ActivateServiceInstanceBB";
705 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
706 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
708 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
709 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
710 assertThat(actual, sameBeanAs(expected));
714 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
715 RequestDetails requestDetails = new RequestDetails();
716 RequestInfo requestInfo = new RequestInfo();
717 requestDetails.setRequestInfo(requestInfo);
718 Customer customer = new Customer();
719 String serviceInstanceId = "SharansInstanceId";
720 boolean aLaCarte = true;
721 Service service = new Service();
722 service.setModelUUID("modelUUID");
723 ServiceInstance expected = new ServiceInstance();
724 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
725 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
726 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
727 String bbName = "ActivateServiceInstanceBB";
728 Service differentService = new Service();
729 differentService.setModelUUID("modelUUIDDifferent");
731 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
734 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
735 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
736 assertThat(actual, sameBeanAs(expected));
739 @Test(expected = Exception.class)
740 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
741 RequestDetails requestDetails = new RequestDetails();
742 RequestInfo requestInfo = new RequestInfo();
743 requestDetails.setRequestInfo(requestInfo);
744 Customer customer = new Customer();
745 String serviceInstanceId = "SharansInstanceId";
746 boolean aLaCarte = true;
747 Service service = new Service();
748 service.setModelUUID("modelUUID");
749 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
750 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
751 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
752 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
754 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
755 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
759 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
760 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
761 String instanceName = "instanceName";
762 String vnfType = "vnfType";
763 String resourceId = "networkId";
764 String productFamilyId = "productFamilyId";
765 Service service = Mockito.mock(Service.class);
766 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
767 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
768 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
769 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
770 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
771 CloudConfiguration cloudConfiguration = new CloudConfiguration();
772 org.onap.so.serviceinstancebeans.Platform platform = Mockito
773 .mock(org.onap.so.serviceinstancebeans.Platform.class);
774 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
775 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
776 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
778 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
779 lookupKeyMap, resourceId, null);
780 doReturn(modelInfo).when(requestDetails).getModelInfo();
781 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
782 doReturn(requestInfo).when(requestDetails).getRequestInfo();
783 doReturn(instanceName).when(requestInfo).getInstanceName();
784 doReturn(platform).when(requestDetails).getPlatform();
785 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
786 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
787 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
789 doReturn(ModelType.network).when(modelInfo).getModelType();
790 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
791 lookupKeyMap, resourceId, vnfType, null, null);
792 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
793 lookupKeyMap, resourceId, null);
794 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
796 doReturn(ModelType.vnf).when(modelInfo).getModelType();
797 resourceId = "vnfId";
798 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
799 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null, productFamilyId);
800 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
801 lookupKeyMap, resourceId, vnfType, null, null);
802 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
803 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null, productFamilyId);
804 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
806 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
807 resourceId = "volumeGroupId";
808 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
809 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
810 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
811 lookupKeyMap, resourceId, vnfType, null, null);
812 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
813 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
814 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
816 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
817 resourceId = "vfModuleId";
818 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
819 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
820 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
821 lookupKeyMap, resourceId, vnfType, null, null);
822 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
823 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
824 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
828 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
829 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
830 GeneralBuildingBlock.class);
831 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
832 ExecuteBuildingBlock.class);
833 RequestDetails requestDetails = mapper.readValue(
834 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
835 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
836 RequestContext.class);
837 ServiceInstance serviceInstance = mapper.readValue(
838 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
839 ServiceInstance.class);
840 CloudConfiguration cloudConfiguration = new CloudConfiguration();
841 cloudConfiguration.setTenantId("tenantId");
842 requestDetails.setCloudConfiguration(cloudConfiguration);
843 OrchestrationContext orchestrationContext = new OrchestrationContext();
844 orchestrationContext.setIsRollbackEnabled(false);
846 CloudRegion cloudRegion = new CloudRegion();
847 cloudRegion.setCloudOwner("test-owner-name");
848 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
849 cloudRegion.setComplex("complexName");
850 cloudRegion.setTenantId("tenantId");
852 Map<String, String> uriKeys = new HashMap<>();
853 uriKeys.put("global-customer-id","global-customer-id");
854 uriKeys.put("service-type","service-type");
856 Customer customer = new Customer();
857 ServiceSubscription serviceSubscription = new ServiceSubscription();
858 serviceSubscription.setServiceType("subscriptionServiceType");
859 customer.setGlobalCustomerId("globalCustomerId");
860 customer.setSubscriberName("subscriberName");
861 customer.setSubscriberType("subscriberType");
862 customer.setServiceSubscription(serviceSubscription);
864 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant = new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
865 tenant.setTenantContext("tenantContext");
866 tenant.setTenantId("tenantId");
867 tenant.setTenantName("tenantName");
869 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
870 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
871 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
872 aaiTenant.setTenantId("tenantId");
873 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
874 tenants.add(aaiTenant);
876 String requestAction = "createInstance";
878 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
879 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
880 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
881 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
882 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
883 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion);
884 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
885 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
886 doReturn(tenants).when(aaiTenants).getTenant();
888 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
889 serviceInstance, executeBB, requestAction, null);
891 assertThat(actual, sameBeanAs(expected));
895 public void testGetServiceInstanceNOAAI() throws Exception {
896 ServiceInstance expected = mapper.readValue(
897 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
898 ServiceInstance.class);
899 Service service = mapper.readValue(
900 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
901 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
902 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
903 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
904 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
906 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
907 executeBB.setaLaCarte(true);
908 BuildingBlock buildingBlock = new BuildingBlock();
909 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
910 executeBB.setBuildingBlock(buildingBlock);
911 RequestDetails requestDetails = new RequestDetails();
912 RequestInfo reqInfo = new RequestInfo();
913 reqInfo.setInstanceName("serviceInstanceName");
914 requestDetails.setRequestInfo(reqInfo);
915 ModelInfo modelInfo = new ModelInfo();
916 modelInfo.setModelType(ModelType.service);
917 requestDetails.setModelInfo(modelInfo);
918 doReturn(null).when(SPY_bbInputSetupUtils)
919 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
920 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
921 .mapCatalogServiceIntoServiceInstance(service);
922 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
923 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
924 boolean aLaCarte = true;
926 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
927 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
928 executeBB.getBuildingBlock().getBpmnFlowName());
930 assertThat(actual, sameBeanAs(expected));
934 public void testGetServiceSubscription() throws IOException {
935 ServiceSubscription expected = new ServiceSubscription();
936 RequestDetails requestDetails = new RequestDetails();
937 RequestParameters params = new RequestParameters();
938 params.setSubscriptionServiceType("subscriptionServiceType");
939 requestDetails.setRequestParameters(params);
940 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
941 Customer customer = new Customer();
942 customer.setGlobalCustomerId("globalCustomerId");
943 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
944 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
945 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
947 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
948 assertThat(actual, sameBeanAs(expected));
952 public void testGetCustomer() throws IOException {
953 Customer expected = new Customer();
954 RequestDetails requestDetails = new RequestDetails();
955 SubscriberInfo subscriberInfo = new SubscriberInfo();
956 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
957 requestDetails.setSubscriberInfo(subscriberInfo);
958 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
959 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
960 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
961 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
963 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
964 assertThat(actual, sameBeanAs(expected));
968 public void testGetExistingServiceInstance() throws Exception {
969 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
970 ServiceInstance expected = new ServiceInstance();
972 doReturn(expected).when(bbInputSetupMapperLayer)
973 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
976 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
977 assertThat(actual, sameBeanAs(expected));
981 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
982 Service service = Mockito.mock(Service.class);
983 String key = "collectionCustId";
984 ServiceInstance serviceInstance = mapper.readValue(
985 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
986 ServiceInstance.class);
987 String resourceId = "123";
988 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
989 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
990 assertNull(serviceInstance.getCollection());
991 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
992 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
993 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
994 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
996 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
997 networkCollection.setModelCustomizationUUID(key);
998 networkCollection.setCollectionResource(new CollectionResource());
999 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1000 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1001 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1002 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
1003 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1004 customizations.add(networkCollection);
1005 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1007 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
1008 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
1010 assertNotNull(serviceInstance.getCollection());
1011 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1013 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1014 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1015 serviceInstance.getCollection().getInstanceGroup(), key);
1019 public void testPopulateInstanceGroup() throws Exception {
1020 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1021 Service service = Mockito.mock(Service.class);
1022 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1023 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1024 serviceInstance.setServiceInstanceId("si-001");
1025 serviceInstance.setServiceInstanceName("test service instance");
1026 serviceInstance.setInstanceGroups(instanceGroups);
1028 SPY_bbInputSetup.populateInstanceGroup(modelInfo, service, serviceInstance, "instance-group-001", "test instance group");
1029 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class), isA(Service.class));
1030 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1034 public void testIsVlanTagging() throws Exception {
1035 boolean expected = true;
1036 Service service = Mockito.mock(Service.class);
1037 String key = "collectionCustId";
1038 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1039 networkCollection.setModelCustomizationUUID(key);
1040 networkCollection.setCollectionResource(new CollectionResource());
1041 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1042 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1043 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1044 customizations.add(networkCollection);
1045 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1046 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1047 assertEquals("Is Vlan Tagging check.", expected, actual);
1051 public void testPopulateVolumeGroup() throws Exception {
1052 RequestDetails requestDetails = new RequestDetails();
1053 RelatedInstanceList ril = new RelatedInstanceList();
1054 RelatedInstance ri = new RelatedInstance();
1055 ModelInfo mi = new ModelInfo();
1056 mi.setModelType(ModelType.vnf);
1057 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1058 ri.setModelInfo(mi);
1059 ril.setRelatedInstance(ri);
1060 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
1062 ModelInfo modelInfo = new ModelInfo();
1063 modelInfo.setModelType(ModelType.volumeGroup);
1065 RequestInfo reqInfo = new RequestInfo();
1066 reqInfo.setInstanceName("volumeGroupName");
1067 requestDetails.setModelInfo(modelInfo);
1068 requestDetails.setRequestInfo(reqInfo);
1070 ServiceInstance serviceInstance = new ServiceInstance();
1071 GenericVnf vnf = new GenericVnf();
1072 vnf.setVnfId("genericVnfId");
1074 VolumeGroup vg = new VolumeGroup();
1075 vg.setVolumeGroupName("volumeGroupName");
1076 vg.setVolumeGroupId("volumeGroupId");
1077 vnf.getVolumeGroups().add(vg);
1078 serviceInstance.getVnfs().add(vnf);
1080 Service service = mapper.readValue(
1081 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1082 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1083 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1085 String bbName = AssignFlows.VOLUME_GROUP.toString();
1086 String resourceId = "123";
1087 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
1088 eq(service), eq("vnfModelCustomizationUUID"));
1089 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1090 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1091 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1093 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1094 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1095 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1096 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
1097 vnf.getVolumeGroups().clear();
1098 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1099 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1100 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1101 "vnfModelCustomizationUUID");
1105 public void testMapCatalogVolumeGroup() {
1106 VolumeGroup volumeGroup = new VolumeGroup();
1107 RequestDetails requestDetails = new RequestDetails();
1108 ModelInfo modelInfo = new ModelInfo();
1109 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1110 requestDetails.setModelInfo(modelInfo);
1111 Service service = new Service();
1112 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1113 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1114 service.getVnfCustomizations().add(resourceCust);
1115 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1116 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1117 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1118 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1120 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1122 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1124 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1128 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1129 String instanceName = "networkName";
1130 ModelInfo modelInfo = new ModelInfo();
1131 modelInfo.setModelType(ModelType.network);
1133 ServiceInstance serviceInstance = new ServiceInstance();
1134 L3Network network = new L3Network();
1135 network.setNetworkId("networkId");
1136 network.setNetworkName("networkName");
1137 serviceInstance.getNetworks().add(network);
1138 String resourceId = "123";
1140 Service service = mapper.readValue(
1141 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1142 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1143 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1144 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1146 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1148 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1151 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1153 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1155 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1157 instanceName = "networkName2";
1158 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1159 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1161 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1165 public void testMapCatalogNetwork() {
1166 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1167 L3Network network = new L3Network();
1169 RequestDetails requestDetails = new RequestDetails();
1170 ModelInfo modelInfo = new ModelInfo();
1171 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1172 requestDetails.setModelInfo(modelInfo);
1173 Service service = new Service();
1174 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1175 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1176 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1178 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1180 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1182 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1186 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1187 String instanceName = "configurationName";
1188 ModelInfo modelInfo = new ModelInfo();
1189 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1191 ServiceInstance serviceInstance = new ServiceInstance();
1192 Configuration configuration = new Configuration();
1193 configuration.setConfigurationId("configurationId");
1194 configuration.setConfigurationName("configurationName");
1195 serviceInstance.getConfigurations().add(configuration);
1196 String resourceId = "configurationId";
1198 Service service = mapper.readValue(
1199 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1200 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1201 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1202 service.getConfigurationCustomizations().add(configurationCust);
1203 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1204 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1205 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1206 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1207 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1208 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1209 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1211 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1213 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1214 instanceName, configResourceKeys);
1215 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1217 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1219 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1220 instanceName, configResourceKeys);
1221 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1223 instanceName = "configurationName2";
1224 resourceId = "resourceId2";
1225 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1226 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1227 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1228 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1229 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1230 instanceName, configResourceKeys);
1231 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1235 public void testMapCatalogConfiguration() {
1236 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1237 L3Network network = new L3Network();
1239 RequestDetails requestDetails = new RequestDetails();
1240 ModelInfo modelInfo = new ModelInfo();
1241 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1242 requestDetails.setModelInfo(modelInfo);
1243 Service service = new Service();
1244 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1245 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1246 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1248 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1250 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1252 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1256 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1257 String instanceName = "configurationName";
1258 ModelInfo modelInfo = new ModelInfo();
1259 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1261 ServiceInstance serviceInstance = new ServiceInstance();
1262 Configuration configuration = new Configuration();
1263 configuration.setConfigurationId("configurationId");
1264 configuration.setConfigurationName("configurationName");
1265 serviceInstance.getConfigurations().add(configuration);
1266 String resourceId = "configurationId";
1268 Service service = mapper.readValue(
1269 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1270 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1271 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1272 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1273 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1274 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1275 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1276 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1278 VnfVfmoduleCvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization = new VnfVfmoduleCvnfcConfigurationCustomization();
1279 ConfigurationResource configurationResource = new ConfigurationResource();
1280 configurationResource.setModelUUID("modelUUID");
1281 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1282 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1284 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1285 doReturn(vnfVfmoduleCvnfcConfigurationCustomization).when(SPY_bbInputSetup).findVnfVfmoduleCvnfcConfigurationCustomization("vfModuleCustomizationUUID","vnfResourceCustomizationUUID","cvnfcCustomizationUUID");
1287 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1288 instanceName, configResourceKeys);
1289 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1293 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1294 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1295 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1296 String instanceName = "vnfName";
1297 ModelInfo modelInfo = new ModelInfo();
1298 modelInfo.setModelType(ModelType.vnf);
1300 ServiceInstance serviceInstance = new ServiceInstance();
1301 GenericVnf vnf = new GenericVnf();
1302 vnf.setVnfId("genericVnfId");
1303 vnf.setVnfName("vnfName");
1304 serviceInstance.getVnfs().add(vnf);
1305 String vnfType = "vnfType";
1306 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1307 RequestDetails.class);
1309 Service service = mapper.readValue(
1310 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1311 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1312 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1313 String bbName = AssignFlows.VNF.toString();
1315 Platform expectedPlatform = new Platform();
1316 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1317 String resourceId = "123";
1318 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1319 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1320 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1321 vnfAAI.setModelCustomizationId("modelCustId");
1322 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1323 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1324 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1325 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1326 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1327 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1329 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1330 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1331 requestDetails.getRequestInfo().getProductFamilyId());
1333 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1335 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1336 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1337 requestDetails.getRequestInfo().getProductFamilyId());
1338 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1340 instanceName = "vnfName2";
1341 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1342 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
1343 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1344 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
1345 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1346 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1348 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1350 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1351 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1352 requestDetails.getRequestInfo().getProductFamilyId());
1353 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1354 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1355 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1359 public void testMapVnfcCollectionInstanceGroup() {
1360 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1361 GenericVnf genericVnf = new GenericVnf();
1362 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1363 Service service = Mockito.mock(Service.class);
1364 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1365 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1366 vnfcInstanceGroupCust.setModelUUID("modelUUID");
1367 vnfcInstanceGroupCust.setFunction("function");
1368 vnfcInstanceGroupCust.setDescription("description");
1369 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1370 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1371 instanceGroup.setModelUUID("modelUUID");
1372 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1373 modelInfoInstanceGroup.setModelUUID("modelUUID");
1374 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1375 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1376 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1377 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null, instanceGroup);
1379 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1381 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1384 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1385 throws JsonParseException, JsonMappingException, IOException {
1386 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1387 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1388 String instanceName = "vnfName";
1389 ModelInfo modelInfo = new ModelInfo();
1390 modelInfo.setModelType(ModelType.vnf);
1392 ServiceInstance serviceInstance = new ServiceInstance();
1393 GenericVnf vnf = new GenericVnf();
1394 vnf.setVnfId("genericVnfId");
1395 vnf.setVnfName("vnfName");
1396 serviceInstance.getVnfs().add(vnf);
1397 String vnfType = null;
1398 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1399 RequestDetails.class);
1401 Service service = mapper.readValue(
1402 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1403 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1404 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1405 String bbName = AssignFlows.VNF.toString();
1407 Platform expectedPlatform = new Platform();
1408 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1409 String resourceId = "123";
1410 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1411 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1412 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1413 vnfAAI.setModelCustomizationId("modelCustId");
1414 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1415 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1416 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1417 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1418 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1419 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1421 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1422 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1423 requestDetails.getRequestInfo().getProductFamilyId());
1425 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1427 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1428 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1429 requestDetails.getRequestInfo().getProductFamilyId());
1430 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1432 instanceName = "vnfName2";
1433 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1434 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
1436 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1437 vnfAAI.setModelCustomizationId("modelCustId2");
1438 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1439 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1440 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1441 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1442 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1443 requestDetails.getRequestInfo().getProductFamilyId());
1444 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1445 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1446 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1450 public void testMapCatalogVnf() {
1451 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1452 GenericVnf genericVnf = new GenericVnf();
1453 RequestDetails requestDetails = new RequestDetails();
1454 ModelInfo modelInfo = new ModelInfo();
1455 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1456 requestDetails.setModelInfo(modelInfo);
1457 Service service = new Service();
1458 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1459 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1460 service.getVnfCustomizations().add(resourceCust);
1461 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1463 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1465 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1467 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1471 public void testMapCatalogCollectionAndInstanceGroup() {
1472 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1473 modelInfoCollection.setCollectionFunction("collectionFunction");
1474 modelInfoCollection.setCollectionRole("collectionRole");
1475 modelInfoCollection.setCollectionType("collectionType");
1476 modelInfoCollection.setDescription("description");
1477 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1478 modelInfoCollection.setQuantity(0);
1480 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1481 modelInfoInstanceGroup.setFunction("function");
1482 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1483 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1484 modelInfoInstanceGroup.setModelUUID("modelUUID");
1485 modelInfoInstanceGroup.setType("VNFC");
1486 modelInfoInstanceGroup.setDescription("description");
1488 InstanceGroup instanceGroup = new InstanceGroup();
1489 Collection collection = new Collection();
1490 collection.setInstanceGroup(instanceGroup);
1492 CollectionResource collectionResource = new CollectionResource();
1493 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1494 collectionResource.setToscaNodeType("NetworkCollection");
1495 collectionResource.setInstanceGroup(catalogInstanceGroup);
1497 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1498 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1499 collectionCust.setCollectionResource(collectionResource);
1501 Service service = new Service();
1502 service.getCollectionResourceCustomizations().add(collectionCust);
1503 ServiceInstance serviceInstance = new ServiceInstance();
1504 serviceInstance.setCollection(collection);
1506 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1507 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1508 instanceGroupCust.setFunction("function");
1509 instanceGroupCust.setDescription("description");
1511 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1512 collectionResource);
1514 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1515 catalogInstanceGroup);
1517 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1518 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1519 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1521 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1522 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1526 public void testAddRelationshipsToSI() throws Exception {
1527 ServiceInstance serviceInstance = new ServiceInstance();
1528 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1529 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1531 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1532 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1533 relationshipList.getRelationship().add(relationship);
1534 serviceInstanceAAI.setRelationshipList(relationshipList);
1536 Map<String, String> uriKeys = new HashMap<>();
1537 uriKeys.put("global-customer-id", "globalCustomerId");
1538 uriKeys.put("service-type", "serviceType");
1541 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1542 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1543 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1544 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1545 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1547 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1549 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1550 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1551 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1552 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1553 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1554 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1558 public void testMapConfigurations() throws JsonProcessingException {
1559 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1560 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1561 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1562 relationshipList.getRelationship().add(relationship);
1563 expectedAAI.setRelationshipList(relationshipList);
1565 Configuration expected = new Configuration();
1566 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1567 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1568 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1570 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1571 doReturn(expected).when(bbInputSetupMapperLayer)
1572 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1574 List<Configuration> configurations = new ArrayList<>();
1576 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1578 assertEquals(expected, configurations.get(0));
1582 public void testMapGenericVnfs() throws JsonProcessingException {
1583 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1584 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1585 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1586 relationshipList.getRelationship().add(relationship);
1587 expectedAAI.setRelationshipList(relationshipList);
1589 GenericVnf expected = new GenericVnf();
1590 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1591 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1592 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1594 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1595 doReturn(expected).when(bbInputSetupMapperLayer)
1596 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1597 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1598 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1599 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1601 List<GenericVnf> genericVnfs = new ArrayList<>();
1603 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1605 assertEquals(expected, genericVnfs.get(0));
1606 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1607 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1608 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1612 public void testMapVolumeGroups() throws JsonProcessingException {
1613 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1615 VolumeGroup expected = new VolumeGroup();
1616 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1617 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1619 doReturn(expected).when(bbInputSetupMapperLayer)
1620 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1622 List<VolumeGroup> volumeGroupsList =
1623 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1625 assertEquals(expected, volumeGroupsList.get(0));
1629 public void testMapLineOfBusiness() throws JsonProcessingException {
1630 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1632 LineOfBusiness expected = new LineOfBusiness();
1633 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1634 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1636 doReturn(expected).when(bbInputSetupMapperLayer)
1637 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1639 GenericVnf vnf = new GenericVnf();
1641 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1643 assertEquals(expected, vnf.getLineOfBusiness());
1647 public void testMapPlatform() throws JsonProcessingException {
1648 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1650 Platform expected = new Platform();
1651 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1652 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1654 doReturn(expected).when(bbInputSetupMapperLayer)
1655 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1657 GenericVnf vnf = new GenericVnf();
1659 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1661 assertEquals(expected, vnf.getPlatform());
1665 public void testMapCollection() throws JsonProcessingException {
1666 List<AAIResultWrapper> collections = new ArrayList<>();
1667 ServiceInstance serviceInstance = new ServiceInstance();
1669 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1670 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1671 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1672 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1673 aaiCollection.setRelationshipList(collectionRelationshipList);
1675 collections.add(new AAIResultWrapper(
1676 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1678 Collection collection = new Collection();
1679 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1680 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1681 InstanceGroup instanceGroup = new InstanceGroup();
1682 instanceGroupsList.add(instanceGroup);
1683 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1684 CollectionResource collectionResource = new CollectionResource();
1685 doReturn(collection).when(bbInputSetupMapperLayer)
1686 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1687 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1688 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1689 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1690 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1692 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1694 assertEquals(collection, serviceInstance.getCollection());
1695 assertEquals(instanceGroup, collection.getInstanceGroup());
1697 instanceGroupsList.clear();
1698 collection = new Collection();
1700 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1701 assertEquals(collection, serviceInstance.getCollection());
1702 assertNull(collection.getInstanceGroup());
1706 public void testMapL3Networks() throws JsonProcessingException {
1707 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1708 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1709 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1710 relationshipList.getRelationship().add(relationship);
1711 expectedAAI.setRelationshipList(relationshipList);
1713 L3Network expected = new L3Network();
1714 List<L3Network> l3Networks = new ArrayList<>();
1715 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1716 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1717 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1719 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1720 doReturn(expected).when(bbInputSetupMapperLayer)
1721 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1722 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1723 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1724 eq(expected.getContrailNetworkRouteTableReferences()));
1726 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1728 assertEquals(expected, l3Networks.get(0));
1729 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1730 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1731 eq(expected.getContrailNetworkRouteTableReferences()));
1735 public void testMapRouteTableReferences() throws JsonProcessingException {
1736 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1738 RouteTableReference expected = new RouteTableReference();
1739 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1740 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1741 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1743 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1744 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1746 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1747 contrailNetworkRouteTableReferences);
1749 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1753 public void testMapOwningEntity() throws JsonProcessingException {
1754 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1756 OwningEntity expected = new OwningEntity();
1757 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1758 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1760 doReturn(expected).when(bbInputSetupMapperLayer)
1761 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1763 ServiceInstance serviceInstance = new ServiceInstance();
1765 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1767 assertEquals(expected, serviceInstance.getOwningEntity());
1771 public void testMapProject() throws JsonProcessingException {
1772 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1774 Project expected = new Project();
1775 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1776 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1778 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1780 ServiceInstance serviceInstance = new ServiceInstance();
1782 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1784 assertEquals(expected, serviceInstance.getProject());
1788 public void testMapCustomer() throws Exception {
1789 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1790 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1792 Customer expected = new Customer();
1793 ServiceSubscription serviceSubscription = new ServiceSubscription();
1795 String globalCustomerId = "globalCustomerId";
1796 String subscriptionServiceType = "subscriptionServiceType";
1798 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1799 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1800 subscriptionServiceType);
1801 doReturn(expected).when(bbInputSetupMapperLayer)
1802 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1803 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1804 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1806 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1808 assertEquals(expected, actual);
1809 assertEquals(serviceSubscription, expected.getServiceSubscription());
1813 public void testPopulateLookupKeyMapWithIds() {
1814 Map<ResourceKey, String> expected = new HashMap<>();
1815 Map<ResourceKey, String> actual = new HashMap<>();
1816 String serviceInstanceId = "serviceInstanceId";
1817 String networkId = "networkId";
1818 String vnfId = "vnfId";
1819 String vfModuleId = "vfModuleId";
1820 String volumeGroupId = "volumeGroupId";
1821 String configurationId = "configurationId";
1822 String instanceGroupId = "instancegroupId";
1824 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1825 expected.put(ResourceKey.NETWORK_ID, networkId);
1826 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1827 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1828 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1829 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1830 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
1832 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1833 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1834 workflowResourceIds.setNetworkId(networkId);
1835 workflowResourceIds.setVnfId(vnfId);
1836 workflowResourceIds.setVfModuleId(vfModuleId);
1837 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1838 workflowResourceIds.setConfigurationId(configurationId);
1839 workflowResourceIds.setInstanceGroupId(instanceGroupId);
1841 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1843 assertThat(actual, sameBeanAs(expected));
1847 public void testgetGBBMacro() throws Exception {
1848 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1849 GeneralBuildingBlock.class);
1850 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1851 ExecuteBuildingBlock.class);
1852 RequestDetails requestDetails = mapper
1853 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
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 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1864 String resourceId = "123";
1865 String vnfType = "vnfType";
1866 Service service = Mockito.mock(Service.class);
1867 String requestAction = "createInstance";
1869 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1870 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1871 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1872 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1873 executeBB.setConfigurationResourceKeys(configResourceKeys);
1875 executeBB.setRequestDetails(requestDetails);
1876 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1877 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
1878 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1879 doReturn(service).when(SPY_bbInputSetupUtils)
1880 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1881 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1882 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1883 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1884 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1887 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1888 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1889 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1890 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1891 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1893 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1894 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1895 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1896 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1897 isA(org.onap.so.serviceinstancebeans.Platform.class),
1898 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1899 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any(), any(String.class));
1901 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1902 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1903 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1904 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1905 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1906 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1908 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1909 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1910 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1911 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1912 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1913 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(),ArgumentMatchers.isNull(),
1914 any(String.class), any());
1916 Configuration configuration = new Configuration();
1917 configuration.setConfigurationId("configurationId");
1918 gBB.getServiceInstance().getConfigurations().add(configuration);
1919 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1920 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1921 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1922 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1923 configurationCustList.add(configurationCust);
1924 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1925 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1927 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1928 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1929 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1930 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1931 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1935 public void testgetGBBMacroCloudConfiguration() throws Exception {
1936 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1937 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1938 CloudConfiguration cloudConfig = null;
1939 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1940 aaiCloudRegion.setCloudOwner("test-owner-name");
1941 Resources resources = serviceMacro.getResources();
1942 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
1943 CloudRegion expected = new CloudRegion();
1944 expected.setLcpCloudRegionId("mdt1");
1945 expected.setCloudOwner("test-owner-name");
1946 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1948 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1949 assertThat(actual, sameBeanAs(expected));
1951 serviceMacro = mapper.readValue(
1952 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1953 resources = serviceMacro.getResources();
1955 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1956 assertThat(actual, sameBeanAs(expected));
1958 serviceMacro = mapper.readValue(
1959 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1960 resources = serviceMacro.getResources();
1962 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1963 assertThat(actual, sameBeanAs(expected));
1965 serviceMacro = mapper.readValue(
1966 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1967 resources = serviceMacro.getResources();
1969 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1974 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1975 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1976 GeneralBuildingBlock.class);
1977 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1978 ExecuteBuildingBlock.class);
1979 RequestDetails requestDetails = mapper
1980 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1981 requestDetails.getRequestParameters().getUserParams().clear();
1982 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1983 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1984 aaiVnf.setModelCustomizationId("modelCustId");
1985 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1986 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1987 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1988 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1989 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1990 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1991 String resourceId = "123";
1992 String vnfType = "vnfType";
1993 Service service = Mockito.mock(Service.class);
1994 String requestAction = "createInstance";
1996 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1997 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
1998 doReturn(service).when(SPY_bbInputSetupUtils)
1999 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2001 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2002 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2003 executeBB.getBuildingBlock().setIsVirtualLink(Boolean.FALSE);
2004 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2005 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2006 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2009 @Test(expected = Exception.class)
2010 public void testgetGBBMacroException() throws Exception {
2011 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2012 GeneralBuildingBlock.class);
2013 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2014 ExecuteBuildingBlock.class);
2015 RequestDetails requestDetails = mapper
2016 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2017 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2018 String resourceId = "123";
2019 String vnfType = "vnfType";
2020 Service service = Mockito.mock(Service.class);
2021 String requestAction = "createInstance";
2023 executeBB.getBuildingBlock().setBpmnFlowName("Network");
2024 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2025 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2029 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
2030 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2031 GeneralBuildingBlock.class);
2032 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2033 ExecuteBuildingBlock.class);
2034 RequestDetails requestDetails = mapper
2035 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2036 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2037 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2038 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2039 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2040 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2041 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2042 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2043 aaiVnf.setModelCustomizationId("modelCustId");
2044 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2045 String resourceId = "123";
2046 String vnfType = null;
2047 Service service = Mockito.mock(Service.class);
2048 String requestAction = "createInstance";
2051 executeBB.setRequestDetails(requestDetails);
2052 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2053 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2054 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2055 doReturn(service).when(SPY_bbInputSetupUtils)
2056 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2057 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
2058 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2059 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
2060 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2062 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2063 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2064 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2065 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
2066 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2068 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
2069 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2070 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2071 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
2072 isA(org.onap.so.serviceinstancebeans.Platform.class),
2073 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
2074 isA(ServiceInstance.class), any(),ArgumentMatchers.isNull(), any(String.class), ArgumentMatchers.isNull(), any(), any(String.class));
2076 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2077 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
2078 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2079 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2080 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
2081 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
2083 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2084 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
2085 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2086 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2087 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
2088 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
2089 ArgumentMatchers.isNull(), any());
2093 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
2094 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2095 GeneralBuildingBlock.class);
2096 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2097 ExecuteBuildingBlock.class);
2098 RequestDetails requestDetails = mapper
2099 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2100 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2101 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2102 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2103 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2104 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2105 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2106 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2107 aaiVnf.setModelCustomizationId("modelCustId");
2108 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2109 String resourceId = "123";
2110 String vnfType = "vnfType";
2111 Service service = Mockito.mock(Service.class);
2112 String requestAction = "createInstance";
2114 executeBB.setRequestDetails(requestDetails);
2115 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2116 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2117 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2118 doReturn(service).when(SPY_bbInputSetupUtils)
2119 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2120 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
2121 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2122 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
2123 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2125 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2126 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2127 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2128 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
2129 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2131 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
2132 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2133 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2134 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
2135 isA(org.onap.so.serviceinstancebeans.Platform.class),
2136 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
2137 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any(),
2140 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2141 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
2142 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2143 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2144 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
2145 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
2147 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2148 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
2149 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2150 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2151 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
2152 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
2153 any(String.class), any());
2157 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2158 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2159 GeneralBuildingBlock.class);
2160 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2161 ExecuteBuildingBlock.class);
2162 RequestDetails requestDetails = mapper
2163 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2164 requestDetails.getRequestParameters().setUserParams(null);
2165 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2166 aaiVnf.setModelCustomizationId("modelCustId");
2167 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2168 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2169 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2170 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2171 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2172 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2173 String resourceId = "123";
2174 String vnfType = "vnfType";
2175 Service service = Mockito.mock(Service.class);
2176 String requestAction = "deactivateInstance";
2177 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2178 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2179 doReturn(service).when(SPY_bbInputSetupUtils)
2180 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2181 String generatedId = "12131";
2183 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
2184 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2185 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2186 requestAction, resourceId, vnfType);
2187 assertThat(actual, sameBeanAs(gBB));
2191 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
2192 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2193 GeneralBuildingBlock.class);
2194 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2195 ExecuteBuildingBlock.class);
2196 RequestDetails requestDetails = mapper
2197 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2198 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2199 requestDetails.getRequestParameters().setUserParams(null);
2200 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2201 aaiVnf.setModelCustomizationId("modelCustId");
2202 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2203 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2204 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2205 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2206 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2207 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2208 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2210 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2211 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2212 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2213 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2214 executeBB.setConfigurationResourceKeys(configResourceKeys);
2216 String resourceId = "123";
2217 String vnfType = "vnfType";
2218 Service service = Mockito.mock(Service.class);
2219 String requestAction = "createInstance";
2220 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2221 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2224 doReturn(service).when(SPY_bbInputSetupUtils)
2225 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2226 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2227 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2228 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2229 networkCustList.add(networkCust);
2230 doReturn(networkCustList).when(service).getNetworkCustomizations();
2231 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2232 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2234 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2235 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2236 executeBB.getBuildingBlock().setIsVirtualLink(false);
2237 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2238 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2239 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2241 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2242 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2243 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2244 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2245 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2246 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2248 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2249 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2250 executeBB.getBuildingBlock().setIsVirtualLink(true);
2251 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2252 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2253 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2255 executeBB.getBuildingBlock().setBpmnFlowName("CreateNetworkBB");
2256 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2257 executeBB.getBuildingBlock().setIsVirtualLink(true);
2258 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2259 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2260 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2264 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2265 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2266 GeneralBuildingBlock.class);
2267 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2268 ExecuteBuildingBlock.class);
2269 RequestDetails requestDetails = mapper
2270 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2271 requestDetails.getRequestParameters().setUserParams(null);
2272 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2273 aaiVnf.setModelCustomizationId("modelCustId");
2274 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2275 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2276 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2277 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2278 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2279 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2280 String resourceId = "123";
2281 String vnfType = "vnfType";
2282 Service service = Mockito.mock(Service.class);
2283 String requestAction = "deleteInstance";
2285 executeBB.setRequestDetails(requestDetails);
2286 ServiceInstance serviceInstance = gBB.getServiceInstance();
2287 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2288 aaiServiceInstance.setModelVersionId("modelVersionId");
2289 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2290 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2291 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2292 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2293 executeBB, requestAction, null);
2295 CloudConfiguration cloudConfig = new CloudConfiguration();
2296 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2297 requestDetails.setCloudConfiguration(cloudConfig);
2298 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2299 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
2300 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2301 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2302 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2303 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2304 any(String.class), isA(String.class),
2305 isA(CloudConfiguration.class));
2307 requestAction = "activateInstance";
2308 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2309 executeBB, requestAction, null);
2310 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2311 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2312 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2313 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2314 any(String.class), isA(String.class),
2315 isA(CloudConfiguration.class));
2317 requestAction = "unassignInstance";
2318 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2319 executeBB, requestAction, null);
2320 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2321 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2322 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2323 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2324 any(String.class), isA(String.class),
2325 isA(CloudConfiguration.class));
2327 requestAction = "activateFabricConfiguration";
2328 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2329 executeBB, requestAction, null);
2330 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2331 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2332 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2333 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2334 any(String.class), isA(String.class),
2335 isA(CloudConfiguration.class));
2338 @Test(expected = IllegalArgumentException.class)
2339 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2340 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2341 GeneralBuildingBlock.class);
2342 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2343 ExecuteBuildingBlock.class);
2344 RequestDetails requestDetails = mapper
2345 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2346 requestDetails.getRequestParameters().setUserParams(null);
2347 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2348 aaiVnf.setModelCustomizationId("modelCustId");
2349 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2350 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2351 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2352 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2353 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2354 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2355 String resourceId = "123";
2356 String vnfType = "vnfType";
2357 Service service = Mockito.mock(Service.class);
2358 String requestAction = "assignInstance";
2359 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2360 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2361 doReturn(service).when(SPY_bbInputSetupUtils)
2362 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2363 String generatedId = "12131";
2365 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2366 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2369 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2370 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2371 GeneralBuildingBlock.class);
2372 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2373 ExecuteBuildingBlock.class);
2374 RequestDetails requestDetails = mapper
2375 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2376 requestDetails.getRequestParameters().setUserParams(null);
2377 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2378 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2379 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2380 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2381 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2382 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2383 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2384 Service service = Mockito.mock(Service.class);
2385 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2386 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2387 String requestAction = "unassignInstance";
2388 executeBB.setRequestDetails(requestDetails);
2390 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2391 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2392 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2393 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2394 executeBB.setConfigurationResourceKeys(configResourceKeys);
2396 ServiceInstance serviceInstance = gBB.getServiceInstance();
2397 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2398 aaiServiceInstance.setModelVersionId("modelVersionId");
2399 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2400 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2401 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2402 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2403 executeBB, requestAction, null);
2405 L3Network network = new L3Network();
2406 network.setNetworkId("networkId");
2407 gBB.getServiceInstance().getNetworks().add(network);
2408 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2409 aaiNetwork.setModelCustomizationId("modelCustId");
2410 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2411 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2412 any(Service.class));
2414 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2415 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2416 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2417 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2418 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2419 any(Service.class));
2421 GenericVnf vnf = new GenericVnf();
2422 vnf.setVnfId("vnfId");
2423 gBB.getServiceInstance().getVnfs().add(vnf);
2424 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2425 aaiVnf.setModelCustomizationId("modelCustId");
2426 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2427 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2428 any(Service.class));
2430 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2431 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2432 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2433 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2434 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2435 any(Service.class));
2437 VfModule vfModule = new VfModule();
2438 vfModule.setVfModuleId("vfModuleId");
2439 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2440 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2441 aaiVfModule.setModelCustomizationId("modelCustId");
2442 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2444 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2445 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2446 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2447 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2448 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2449 any(Service.class));
2450 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2451 any(Service.class), any(String.class));
2453 CloudRegion cloudRegion = new CloudRegion();
2454 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2455 cloudRegion.setCloudOwner("CloudOwner");
2456 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2457 VolumeGroup volumeGroup = new VolumeGroup();
2458 volumeGroup.setVolumeGroupId("volumeGroupId");
2459 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2460 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2461 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2462 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2463 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2465 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2466 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2467 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2468 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2469 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2470 any(Service.class));
2471 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2472 isA(Service.class), isA(String.class));
2474 Configuration configuration = new Configuration();
2475 configuration.setConfigurationId("configurationId");
2476 gBB.getServiceInstance().getConfigurations().add(configuration);
2477 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2478 aaiConfiguration.setModelCustomizationId("modelCustId");
2479 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2480 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2482 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2483 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2484 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2485 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2486 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2487 any(Service.class), isA(ConfigurationResourceKeys.class));
2491 public void testGetVnfId() {
2492 String expected = "vnfId";
2493 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2494 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2495 executeBB.setRequestId("requestId");
2496 InfraActiveRequests request = new InfraActiveRequests();
2497 request.setVnfId(expected);
2498 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2500 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2502 assertEquals("VnfId is set correctly", expected, actual);
2506 public void testCreateVfModule() {
2507 String vfModuleId = "vfModuleId";
2508 String instanceName = "vfModuleName";
2509 Map<String, String> cloudParams = new HashMap<>();
2510 cloudParams.put("param1", "param1Value");
2511 VfModule expected = new VfModule();
2512 expected.setVfModuleId(vfModuleId);
2513 expected.setVfModuleName(instanceName);
2514 expected.setCloudParams(cloudParams);
2515 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2516 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2517 List<Map<String, String>> instanceParams = new ArrayList<>();
2518 instanceParams.add(cloudParams);
2520 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2522 assertThat(actual, sameBeanAs(expected));
2523 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2525 expected.getCloudParams().clear();
2526 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2527 assertThat(actual, sameBeanAs(expected));
2531 public void testCreateVolumeGroup() {
2532 String volumeGroupId = "volumeGroupId";
2533 String instanceName = "vfModuleName";
2534 String vnfType = "vnfType";
2535 Map<String, String> cloudParams = new HashMap<>();
2536 cloudParams.put("param1", "param1Value");
2537 VolumeGroup expected = new VolumeGroup();
2538 expected.setVolumeGroupId(volumeGroupId);
2539 expected.setVolumeGroupName(instanceName);
2540 expected.setCloudParams(cloudParams);
2541 expected.setVnfType(vnfType);
2542 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2543 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2544 List<Map<String, String>> instanceParams = new ArrayList<>();
2545 instanceParams.add(cloudParams);
2547 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2549 assertThat(actual, sameBeanAs(expected));
2550 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2552 expected.getCloudParams().clear();
2553 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2554 assertThat(actual, sameBeanAs(expected));
2558 public void testCreateNetwork() {
2559 String networkId = "networkId";
2560 String instanceName = "networkName";
2561 Map<String, String> cloudParams = new HashMap<>();
2562 cloudParams.put("param1", "param1Value");
2563 L3Network expected = new L3Network();
2564 expected.setNetworkId(networkId);
2565 expected.setNetworkName(instanceName);
2566 expected.setCloudParams(cloudParams);
2567 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2568 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2569 List<Map<String, String>> instanceParams = new ArrayList<>();
2570 instanceParams.add(cloudParams);
2571 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2573 assertThat(actual, sameBeanAs(expected));
2574 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2576 expected.getCloudParams().clear();
2577 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2578 assertThat(actual, sameBeanAs(expected));
2582 public void testCreateGenericVnf() {
2583 String vnfId = "vnfId";
2584 String instanceName = "vnfName";
2585 String vnfType = "vnfType";
2586 String platformName = "platformName";
2587 String lineOfBusinessName = "lineOfBusinessName";
2588 String productFamilyId = "productFamilyId";
2589 Platform platform = new Platform();
2590 platform.setPlatformName(platformName);
2591 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2592 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2593 Map<String, String> cloudParams = new HashMap<>();
2594 cloudParams.put("param1", "param1Value");
2595 GenericVnf expected = new GenericVnf();
2596 expected.setVnfId(vnfId);
2597 expected.setVnfName(instanceName);
2598 expected.setVnfType(vnfType);
2599 expected.setCloudParams(cloudParams);
2600 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2601 expected.setPlatform(platform);
2602 expected.setLineOfBusiness(lineOfBusiness);
2603 expected.setProvStatus("PREPROV");
2604 expected.setServiceId(productFamilyId);
2605 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2606 List<Map<String, String>> instanceParams = new ArrayList<>();
2607 instanceParams.add(cloudParams);
2608 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2609 platform.setPlatformName(platformName);
2610 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2611 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2613 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2614 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2616 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams,
2619 assertThat(actual, sameBeanAs(expected));
2620 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2622 expected.getCloudParams().clear();
2623 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null, productFamilyId);
2624 assertThat(actual, sameBeanAs(expected));
2628 public void testMapCatalogVfModule() {
2629 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2630 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2631 VfModule vfModule = new VfModule();
2632 ModelInfo modelInfo = new ModelInfo();
2633 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2634 Service service = new Service();
2635 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2636 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2637 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2638 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2639 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2640 service.getVnfCustomizations().add(vnfResourceCust);
2641 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2643 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2645 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2647 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2649 modelInfo.setModelCustomizationUuid(null);
2650 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2652 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2654 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2658 public void testPopulateVfModule() throws Exception {
2659 String vnfId = "vnfId";
2660 String vfModuleId = "vfModuleId";
2661 String volumeGroupId = "volumeGroupId";
2662 String vfModuleCustomizationId = "vfModuleCustomizationId";
2663 ModelInfo modelInfo = new ModelInfo();
2664 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2665 Service service = new Service();
2666 String bbName = AssignFlows.VF_MODULE.toString();
2667 ServiceInstance serviceInstance = new ServiceInstance();
2668 GenericVnf vnf = new GenericVnf();
2669 vnf.setVnfId(vnfId);
2670 VolumeGroup volumeGroup = new VolumeGroup();
2671 volumeGroup.setVolumeGroupId(volumeGroupId);
2672 vnf.getVolumeGroups().add(volumeGroup);
2673 serviceInstance.getVnfs().add(vnf);
2674 VfModule vfModule1 = new VfModule();
2675 vfModule1.setVfModuleId("vfModuleId1");
2676 VfModule vfModule2 = new VfModule();
2677 vfModule2.setVfModuleId("vfModuleId2");
2678 vnf.getVfModules().add(vfModule1);
2679 vnf.getVfModules().add(vfModule2);
2680 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2681 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2682 String resourceId = vfModuleId;
2683 RelatedInstanceList[] relatedInstanceList = null;
2684 String instanceName = "vfModuleName";
2685 List<Map<String, String>> instanceParams = null;
2686 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2688 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2689 vnfAAI.setModelCustomizationId("vnfModelCustId");
2690 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2691 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2692 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
2693 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
2695 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2696 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2697 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2698 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
2699 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2700 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2702 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2703 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2705 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2706 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2707 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));