2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.servicedecomposition.tasks;
27 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
28 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertNotNull;
31 import static org.junit.Assert.assertNull;
32 import static org.mockito.ArgumentMatchers.any;
33 import static org.mockito.ArgumentMatchers.eq;
34 import static org.mockito.ArgumentMatchers.isA;
35 import static org.mockito.Mockito.doNothing;
36 import static org.mockito.Mockito.doReturn;
37 import static org.mockito.Mockito.times;
38 import static org.mockito.Mockito.verify;
39 import static org.onap.so.bpmn.servicedecomposition.tasks.BaseBBInputSetupTestHelper.prepareConfigurationResourceKeys;
40 import static org.onap.so.bpmn.servicedecomposition.tasks.BaseBBInputSetupTestHelper.prepareLookupKeyMap;
42 import java.io.IOException;
43 import java.util.ArrayList;
44 import java.util.Arrays;
45 import java.util.HashMap;
46 import java.util.List;
48 import java.util.Optional;
49 import org.camunda.bpm.engine.delegate.DelegateExecution;
50 import org.junit.Assert;
51 import org.junit.Rule;
52 import org.junit.Test;
53 import org.junit.rules.ExpectedException;
54 import org.junit.runner.RunWith;
55 import org.mockito.ArgumentMatchers;
56 import org.mockito.InjectMocks;
57 import org.mockito.Mock;
58 import org.mockito.Mockito;
59 import org.mockito.Spy;
60 import org.mockito.junit.MockitoJUnitRunner;
61 import org.onap.aaiclient.client.aai.AAICommonObjectMapperProvider;
62 import org.onap.aaiclient.client.aai.AAIObjectType;
63 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
64 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
65 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
66 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
68 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
71 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
72 import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
73 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
74 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
75 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
76 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
77 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
78 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
79 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
80 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
81 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
82 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
83 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
84 import org.onap.so.bpmn.servicedecomposition.bbobjects.Vnfc;
85 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
86 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
87 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
88 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
89 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
90 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
91 import org.onap.so.bpmn.servicedecomposition.entities.ServiceModel;
92 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
93 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
94 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
95 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
96 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
97 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
98 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
99 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
100 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy;
101 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
102 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
103 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.ServiceModelNotFoundException;
104 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
105 import org.onap.so.db.catalog.beans.CollectionResource;
106 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
107 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
108 import org.onap.so.db.catalog.beans.ConfigurationResource;
109 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
110 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
111 import org.onap.so.db.catalog.beans.InstanceGroupType;
112 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
113 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
114 import org.onap.so.db.catalog.beans.OrchestrationStatus;
115 import org.onap.so.db.catalog.beans.Service;
116 import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
117 import org.onap.so.db.catalog.beans.VfModuleCustomization;
118 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
119 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
120 import org.onap.so.db.request.beans.InfraActiveRequests;
121 import org.onap.so.serviceinstancebeans.CloudConfiguration;
122 import org.onap.so.serviceinstancebeans.ModelInfo;
123 import org.onap.so.serviceinstancebeans.ModelType;
124 import org.onap.so.serviceinstancebeans.RelatedInstance;
125 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
126 import org.onap.so.serviceinstancebeans.RequestDetails;
127 import org.onap.so.serviceinstancebeans.RequestInfo;
128 import org.onap.so.serviceinstancebeans.RequestParameters;
129 import org.onap.so.serviceinstancebeans.Resources;
130 import org.onap.so.serviceinstancebeans.SubscriberInfo;
131 import com.fasterxml.jackson.core.JsonParseException;
132 import com.fasterxml.jackson.core.JsonProcessingException;
133 import com.fasterxml.jackson.databind.JsonMappingException;
134 import com.fasterxml.jackson.databind.ObjectMapper;
136 @RunWith(MockitoJUnitRunner.class)
137 public class BBInputSetupTest {
138 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
140 protected ObjectMapper mapper = new ObjectMapper();
141 private static final String CLOUD_OWNER = "CloudOwner";
142 private static final String REQUEST_ID = "b20bbd26-af25-4a50-a9fe-222a3c0f9771";
146 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
149 private BBInputSetupUtils SPY_bbInputSetupUtils;
152 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
155 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
158 public ExpectedException expectedException = ExpectedException.none();
161 public void testGetVolumeGroupIdRelatedToVfModule() {
162 String expected = "volumeGroupId";
163 String modelCustomizationId = "modelCustomizationId";
164 ModelInfo modelInfo = new ModelInfo();
165 modelInfo.setModelCustomizationId(modelCustomizationId);
166 String cloudOwner = "cloudOwner";
167 String cloudRegionId = "cloudRegionId";
168 String volumeGroupId = "volumeGroupId";
169 GenericVnf vnf = new GenericVnf();
170 VolumeGroup volumeGroup = new VolumeGroup();
171 volumeGroup.setVolumeGroupId(expected);
172 vnf.getVolumeGroups().add(volumeGroup);
173 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
174 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
175 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
176 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
177 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId,
180 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner,
181 cloudRegionId, lookupKeyMap);
183 assertEquals(expected, actual.get());
187 public void testGetAlaCarteServiceInstance() throws Exception {
188 ServiceInstance expected =
189 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
190 ServiceInstance.class);
191 RequestDetails requestDetails = new RequestDetails();
192 RequestInfo requestInfo = new RequestInfo();
193 requestInfo.setInstanceName("SharansInstanceName");
194 requestDetails.setRequestInfo(requestInfo);
195 Customer customer = new Customer();
196 String serviceInstanceId = "SharansInstanceId";
197 boolean aLaCarte = true;
198 Service service = new Service();
199 service.setModelUUID("modelUUID");
200 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
201 modelInfoServiceInstance.setModelUuid("modelUUID");
202 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
203 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
204 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
205 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
206 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
207 Service differentService = new Service();
208 differentService.setModelUUID("modelUUIDDifferent");
210 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
211 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
212 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
213 doReturn(differentService).when(SPY_bbInputSetupUtils)
214 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
215 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
216 .mapCatalogServiceIntoServiceInstance(differentService);
218 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
219 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
220 assertThat(actual, sameBeanAs(expected));
223 @Test(expected = Exception.class)
224 public void testGetAlaCarteServiceInstanceException() throws Exception {
225 ServiceInstance expected =
226 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
227 ServiceInstance.class);
228 RequestDetails requestDetails = new RequestDetails();
229 RequestInfo requestInfo = new RequestInfo();
230 requestInfo.setInstanceName("SharansInstanceName");
231 requestDetails.setRequestInfo(requestInfo);
232 Customer customer = new Customer();
233 String serviceInstanceId = "SharansInstanceId";
234 boolean aLaCarte = true;
235 Service service = new Service();
236 service.setModelUUID("modelUUID");
237 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
238 modelInfoServiceInstance.setModelUuid("modelUUID");
239 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
240 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
241 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
242 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
243 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
244 Service differentService = new Service();
245 differentService.setModelUUID("modelUUIDDifferent");
247 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
248 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
249 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
250 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
252 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
253 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
254 assertThat(actual, sameBeanAs(expected));
258 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
259 RequestDetails requestDetails = mapper.readValue(
260 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
261 SubscriberInfo subscriberInfo = new SubscriberInfo();
262 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
263 RequestParameters requestParams = new RequestParameters();
264 requestParams.setSubscriptionServiceType("subscriptionServiceType");
265 requestDetails.setRequestParameters(requestParams);
266 requestDetails.setSubscriberInfo(subscriberInfo);
267 String resourceId = "resourceId";
268 Customer expected = new Customer();
269 expected.setGlobalCustomerId("globalCustomerId");
270 ServiceSubscription serviceSubscription = new ServiceSubscription();
271 serviceSubscription.setServiceType("subscriptionServiceType");
273 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
274 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
276 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
278 assertThat(actual, sameBeanAs(expected));
280 requestDetails.setSubscriberInfo(null);
283 assertThat(actual, sameBeanAs(expected));
288 public void testSetHomingFlag() throws IOException {
289 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
290 GeneralBuildingBlock.class);
291 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
292 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
293 GenericVnf genericVnfExpected = new GenericVnf();
294 genericVnfExpected.setVnfId("vnfId");
295 genericVnfExpected.setCallHoming(true);
296 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
297 boolean homing = true;
298 GenericVnf genericVnfActual = new GenericVnf();
299 genericVnfActual.setVnfId("vnfId");
300 genericVnfActual.setCallHoming(false);
301 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
302 GeneralBuildingBlock.class);
303 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
305 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
306 assertThat(actual, sameBeanAs(expected));
310 public void testGetExecuteBBFromExecution() throws IOException {
311 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignServiceInstanceBB");
312 ExecuteBuildingBlock expected =
313 new ExecuteBuildingBlock().setBuildingBlock(bb).setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
314 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
315 doReturn(expected).when(execution).getVariable(any(String.class));
316 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
317 assertThat(actual, sameBeanAs(expected));
321 public void testGetGBB() throws Exception {
322 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
323 GeneralBuildingBlock.class);
325 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
326 RequestDetails requestDetails = new RequestDetails();
327 ModelInfo modelInfo = new ModelInfo();
328 modelInfo.setModelType(ModelType.service);
329 requestDetails.setModelInfo(modelInfo);
330 RequestParameters requestParams = new RequestParameters();
331 requestParams.setaLaCarte(true);
332 requestDetails.setRequestParameters(requestParams);
333 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
334 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
335 String resourceId = "123";
336 String requestAction = "createInstance";
337 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
338 requestAction, resourceId);
339 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),
341 boolean aLaCarte = true;
342 GeneralBuildingBlock actual =
343 SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte, resourceId, null);
345 assertThat(actual, sameBeanAs(expected));
349 public void testGetGBBCM() throws Exception {
350 GeneralBuildingBlock expected = mapper
351 .readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"), GeneralBuildingBlock.class);
353 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
354 RequestDetails requestDetails = new RequestDetails();
355 requestDetails.setModelInfo(null);
356 RequestParameters requestParams = new RequestParameters();
357 requestParams.setaLaCarte(true);
358 requestDetails.setRequestParameters(requestParams);
359 RequestInfo requestInfo = new RequestInfo();
360 requestInfo.setSuppressRollback(true);
361 requestInfo.setSource("VID");
362 requestDetails.setRequestInfo(requestInfo);
363 CloudConfiguration cloudConfiguration = new CloudConfiguration();
364 cloudConfiguration.setLcpCloudRegionId("myRegionId");
365 requestDetails.setCloudConfiguration(cloudConfiguration);
366 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
367 String resourceId = "123";
368 String requestAction = "createInstance";
370 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
372 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils)
373 .getAAIGenericVnf(ArgumentMatchers.isA(String.class));
374 doReturn(null).when(bbInputSetupMapperLayer)
375 .mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
376 GeneralBuildingBlock actual =
377 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
378 assertThat(actual, sameBeanAs(expected));
382 public void testGetGBBCMAddMembersAction() throws Exception {
383 GeneralBuildingBlock expected = mapper.readValue(
384 new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"), GeneralBuildingBlock.class);
385 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
386 ExecuteBuildingBlock.class);
387 RequestDetails requestDetails = mapper.readValue(
388 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
389 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
390 String requestAction = "addMembers";
391 String instanceGroupId = "instance-group-001";
393 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
394 workflowResourceIds.setInstanceGroupId(instanceGroupId);
395 executeBB.setWorkflowResourceIds(workflowResourceIds);
397 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
399 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
400 aaiInstanceGroup.setId(instanceGroupId);
401 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
403 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
404 aaiServiceInstance.setServiceInstanceId("service-instance-001");
405 aaiServiceInstance.setServiceInstanceName("test service instance 1");
406 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
408 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
409 vnf1.setVnfId("vnf-001");
410 vnf1.setVnfName("test vnf 1");
412 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
413 vnf2.setVnfId("vnf-002");
414 vnf2.setVnfName("test vnf 2");
416 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
417 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
418 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
419 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
421 GeneralBuildingBlock actual =
422 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, instanceGroupId);
424 assertThat(actual, sameBeanAs(expected));
428 public void testGetGBBALaCarteNonService() throws Exception {
429 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
430 GeneralBuildingBlock.class);
431 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
432 ExecuteBuildingBlock.class);
433 RequestDetails requestDetails = mapper.readValue(
434 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
435 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
436 String requestAction = "createInstance";
437 Service service = Mockito.mock(Service.class);
438 ServiceModel serviceModel = new ServiceModel();
439 serviceModel.setCurrentService(service);
440 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
441 String resourceId = "123";
442 String vnfType = "vnfType";
443 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
444 aaiServiceInstance.setModelVersionId("modelVersionId");
445 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
446 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
447 doReturn(service).when(SPY_bbInputSetupUtils)
448 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
449 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
450 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
451 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
452 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
454 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
455 requestAction, resourceId, vnfType);
457 assertThat(actual, sameBeanAs(expected));
461 public void testGetGBBALaCarteNonServiceIsReplace() throws Exception {
462 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
463 GeneralBuildingBlock.class);
464 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
465 ExecuteBuildingBlock.class);
466 RequestDetails requestDetails = mapper.readValue(
467 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
468 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
469 String requestAction = "replaceInstance";
470 Service service = Mockito.mock(Service.class);
471 ServiceModel serviceModel = new ServiceModel();
472 serviceModel.setCurrentService(service);
473 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
474 String resourceId = "123";
475 String vnfType = "vnfType";
476 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
477 aaiServiceInstance.setModelVersionId("modelVersionId");
478 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
479 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
480 doReturn(service).when(SPY_bbInputSetupUtils)
481 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
482 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID("modelUUID");
483 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
485 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
486 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
487 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
489 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
490 requestAction, resourceId, vnfType);
492 verify(SPY_bbInputSetup, times(1)).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
494 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
495 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID("modelUUID");
497 assertThat(actual, sameBeanAs(expected));
501 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
502 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
503 ExecuteBuildingBlock.class);
504 RequestDetails requestDetails = mapper.readValue(
505 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
506 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
507 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
508 String requestAction = "createInstance";
509 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
510 aaiServiceInstance.setModelVersionId("modelVersionId");
511 String resourceId = "123";
512 String vnfType = "vnfType";
514 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
515 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
517 expectedException.expect(ServiceModelNotFoundException.class);
518 expectedException.expectMessage(
519 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
521 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
526 public void testGetGBBALaCarteNonServiceServiceInstanceNotFoundInAAI() throws Exception {
527 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
528 ExecuteBuildingBlock.class);
529 RequestDetails requestDetails = mapper.readValue(
530 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
531 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
532 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
533 String requestAction = "createInstance";
534 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
535 aaiServiceInstance.setModelVersionId("modelVersionId");
536 String resourceId = "123";
537 String vnfType = "vnfType";
539 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
541 expectedException.expect(NoServiceInstanceFoundException.class);
542 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
544 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
549 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
550 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
551 GeneralBuildingBlock.class);
552 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
553 ExecuteBuildingBlock.class);
554 RequestDetails requestDetails = mapper.readValue(
555 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
556 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
557 String requestAction = "createInstance";
558 Service service = Mockito.mock(Service.class);
559 ServiceModel serviceModel = new ServiceModel();
560 serviceModel.setCurrentService(service);
561 String resourceId = "123";
562 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
563 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
564 aaiServiceInstance.setModelVersionId("modelVersionId");
565 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
566 String vnfType = "vnfType";
567 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
568 doReturn(service).when(SPY_bbInputSetupUtils)
569 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
570 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
572 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
574 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
575 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
577 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
578 requestAction, resourceId, vnfType);
580 assertThat(actual, sameBeanAs(expected));
584 public void testGetGBBALaCarteService() throws Exception {
585 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
586 GeneralBuildingBlock.class);
587 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
588 ExecuteBuildingBlock.class);
589 RequestDetails requestDetails = mapper.readValue(
590 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
591 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
593 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
594 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
595 new org.onap.so.serviceinstancebeans.OwningEntity();
596 requestDetails.setProject(requestProject);
597 requestDetails.setOwningEntity(requestOwningEntity);
599 Service service = Mockito.mock(Service.class);
600 Customer customer = Mockito.mock(Customer.class);
601 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
602 Project project = Mockito.mock(Project.class);
603 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
604 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
605 String resourceId = "123";
606 String requestAction = "createInstance";
607 executeBB.setaLaCarte(true);
608 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
609 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
611 doReturn(service).when(SPY_bbInputSetupUtils)
612 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
613 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
614 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
616 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
617 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
618 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
619 executeBB.getBuildingBlock().getBpmnFlowName());
620 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
622 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
623 requestAction, resourceId);
625 assertThat(actual, sameBeanAs(expected));
629 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
630 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
631 GeneralBuildingBlock.class);
632 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
633 ExecuteBuildingBlock.class);
634 RequestDetails requestDetails = mapper.readValue(
635 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
636 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
638 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
639 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
640 new org.onap.so.serviceinstancebeans.OwningEntity();
641 requestDetails.setProject(requestProject);
642 requestDetails.setOwningEntity(requestOwningEntity);
644 Service service = Mockito.mock(Service.class);
645 Customer customer = Mockito.mock(Customer.class);
646 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
647 Project project = Mockito.mock(Project.class);
648 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
649 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
650 String resourceId = "123";
651 String requestAction = "createInstance";
652 executeBB.setaLaCarte(true);
653 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
654 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
656 doReturn(null).when(SPY_bbInputSetupUtils)
657 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
658 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
659 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
660 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
661 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
663 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
664 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
665 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
666 executeBB.getBuildingBlock().getBpmnFlowName());
667 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
669 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
670 requestAction, resourceId);
672 assertThat(actual, sameBeanAs(expected));
676 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
677 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
678 GeneralBuildingBlock.class);
679 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
680 ExecuteBuildingBlock.class);
681 RequestDetails requestDetails = mapper.readValue(
682 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
683 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
685 Service service = Mockito.mock(Service.class);
686 Customer customer = Mockito.mock(Customer.class);
687 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
688 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
689 String resourceId = "123";
690 String requestAction = "createInstance";
691 executeBB.setaLaCarte(true);
692 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
693 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
695 Map<String, String> uriKeys = new HashMap<>();
696 uriKeys.put("global-customer-id", "globalCustomerId");
697 uriKeys.put("service-type", "serviceType");
699 doReturn(service).when(SPY_bbInputSetupUtils)
700 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
702 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
704 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
705 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
706 executeBB.getBuildingBlock().getBpmnFlowName());
707 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
709 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
710 requestAction, resourceId);
712 assertThat(actual, sameBeanAs(expected));
716 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
717 RequestDetails requestDetails = new RequestDetails();
718 RequestInfo requestInfo = new RequestInfo();
719 requestInfo.setInstanceName("SharansInstanceName");
720 requestDetails.setRequestInfo(requestInfo);
721 Customer customer = new Customer();
722 String serviceInstanceId = "SharansInstanceId";
723 boolean aLaCarte = true;
724 ServiceInstance expected = new ServiceInstance();
725 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
726 Service service = new Service();
727 service.setModelUUID("modelUUID");
728 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
730 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
731 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
734 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null, lookupKeyMap,
737 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
738 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
739 assertThat(actual, sameBeanAs(expected));
743 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
744 RequestDetails requestDetails = new RequestDetails();
745 RequestInfo requestInfo = new RequestInfo();
746 requestInfo.setInstanceName("SharansInstanceName");
747 requestDetails.setRequestInfo(requestInfo);
748 Customer customer = new Customer();
749 String serviceInstanceId = "SharansInstanceId";
750 boolean aLaCarte = true;
751 Service service = new Service();
752 service.setModelUUID("modelUUID");
753 ServiceInstance expected = new ServiceInstance();
754 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
755 serviceInstanceAAI.setModelVersionId("modelUUID");
756 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
757 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
759 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
760 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
761 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
763 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
764 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
765 assertThat(actual, sameBeanAs(expected));
769 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
770 RequestDetails requestDetails = new RequestDetails();
771 RequestInfo requestInfo = new RequestInfo();
772 requestInfo.setInstanceName("SharansInstanceName");
773 requestDetails.setRequestInfo(requestInfo);
774 Customer customer = new Customer();
775 String serviceInstanceId = "SharansInstanceId";
776 boolean aLaCarte = true;
777 Service service = new Service();
778 service.setModelUUID("modelUUID");
779 ServiceInstance expected = new ServiceInstance();
780 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
781 serviceInstanceAAI.setModelVersionId("modelUUID");
782 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
783 String bbName = "ActivateServiceInstanceBB";
785 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
786 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
788 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
789 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
790 assertThat(actual, sameBeanAs(expected));
794 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
795 RequestDetails requestDetails = new RequestDetails();
796 RequestInfo requestInfo = new RequestInfo();
797 requestDetails.setRequestInfo(requestInfo);
798 Customer customer = new Customer();
799 String serviceInstanceId = "SharansInstanceId";
800 boolean aLaCarte = true;
801 Service service = new Service();
802 service.setModelUUID("modelUUID");
803 ServiceInstance expected = new ServiceInstance();
804 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
805 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
806 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
807 String bbName = "ActivateServiceInstanceBB";
808 Service differentService = new Service();
809 differentService.setModelUUID("modelUUIDDifferent");
811 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
814 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
815 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
816 assertThat(actual, sameBeanAs(expected));
820 public void testGetServiceInstanceHelperCreateScenarioExistingWithName() throws Exception {
821 RequestDetails requestDetails = new RequestDetails();
822 RequestInfo requestInfo = new RequestInfo();
823 requestDetails.setRequestInfo(requestInfo);
824 ServiceSubscription serviceSub = new ServiceSubscription();
825 Customer customer = new Customer();
826 customer.setServiceSubscription(serviceSub);
827 ServiceInstance expected = new ServiceInstance();
828 expected.setServiceInstanceId("serviceInstanceId");
829 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
830 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
832 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByIdAndCustomer(Mockito.any(),
833 Mockito.any(), Mockito.any());
834 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
835 new HashMap<>(), "SharansInstanceId", false, new Service(), "ActivateServiceInstanceBB");
836 assertThat(actual, sameBeanAs(expected));
839 @Test(expected = Exception.class)
840 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
841 RequestDetails requestDetails = new RequestDetails();
842 RequestInfo requestInfo = new RequestInfo();
843 requestDetails.setRequestInfo(requestInfo);
844 Customer customer = new Customer();
845 String serviceInstanceId = "SharansInstanceId";
846 boolean aLaCarte = true;
847 Service service = new Service();
848 service.setModelUUID("modelUUID");
849 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
850 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
851 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
852 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
854 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
855 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
859 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
860 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
861 String instanceName = "instanceName";
862 String vnfType = "vnfType";
863 String resourceId = "networkId";
864 String productFamilyId = "productFamilyId";
865 String applicationId = "applicationId";
866 Service service = Mockito.mock(Service.class);
867 ServiceModel serviceModel = new ServiceModel();
868 serviceModel.setCurrentService(service);
869 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
870 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
871 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
872 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
873 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
874 CloudConfiguration cloudConfiguration = new CloudConfiguration();
875 org.onap.so.serviceinstancebeans.Platform platform =
876 Mockito.mock(org.onap.so.serviceinstancebeans.Platform.class);
877 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
878 Mockito.mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
879 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
881 doReturn(modelInfo).when(requestDetails).getModelInfo();
882 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
883 doReturn(requestInfo).when(requestDetails).getRequestInfo();
884 doReturn(instanceName).when(requestInfo).getInstanceName();
885 doReturn(platform).when(requestDetails).getPlatform();
886 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
887 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
888 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
889 doReturn(applicationId).when(requestInfo).getApplicationId();
891 doReturn(ModelType.network).when(modelInfo).getModelType();
892 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
893 .setRequestDetails(requestDetails).setService(service).setBbName(bbName)
894 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId)
895 .setVnfType(vnfType).setIsReplace(false).setApplicationId(applicationId).build();
897 doNothing().when(SPY_bbInputSetup).populateL3Network(parameter);
898 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
899 parameter.setInstanceName(instanceName);
900 parameter.setModelInfo(modelInfo);
901 verify(SPY_bbInputSetup, times(1)).populateL3Network(parameter);
902 assertEquals("NetworkId populated", true,
903 lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
905 doReturn(ModelType.vnf).when(modelInfo).getModelType();
906 resourceId = "vnfId";
907 doNothing().when(SPY_bbInputSetup).populateGenericVnf(parameter);
908 parameter.setResourceId(resourceId);
909 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
910 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(parameter);
911 assertEquals("VnfId populated", true,
912 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
913 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
914 resourceId = "volumeGroupId";
915 parameter.setResourceId(resourceId);
916 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
917 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
918 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(parameter);
919 assertEquals("VolumeGroupId populated", true,
920 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
922 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
923 resourceId = "vfModuleId";
924 parameter.setResourceId(resourceId);
925 doNothing().when(SPY_bbInputSetup).populateVfModule(parameter);
926 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
927 verify(SPY_bbInputSetup, times(1)).populateVfModule(parameter);
928 assertEquals("VfModuleId populated", true,
929 lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
931 String bbNameAssignVolume = AssignFlows.VOLUME_GROUP.toString();
932 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
933 resourceId = "vfModuleId";
934 parameter.setResourceId(resourceId);
935 parameter.setBbName(bbNameAssignVolume);
936 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
937 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
938 verify(SPY_bbInputSetup, times(2)).populateVolumeGroup(parameter);
939 assertEquals(resourceId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
943 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
944 GeneralBuildingBlock expected =
945 mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
946 GeneralBuildingBlock.class);
947 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
948 ExecuteBuildingBlock.class);
949 RequestDetails requestDetails = mapper.readValue(
950 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
951 RequestContext requestContext =
952 mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"), RequestContext.class);
953 ServiceInstance serviceInstance =
954 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
955 ServiceInstance.class);
956 CloudConfiguration cloudConfiguration = new CloudConfiguration();
957 cloudConfiguration.setTenantId("tenantId");
958 requestDetails.setCloudConfiguration(cloudConfiguration);
959 OrchestrationContext orchestrationContext = new OrchestrationContext();
960 orchestrationContext.setIsRollbackEnabled(false);
962 CloudRegion cloudRegion = new CloudRegion();
963 cloudRegion.setCloudOwner("test-owner-name");
964 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
965 cloudRegion.setComplex("complexName");
966 cloudRegion.setTenantId("tenantId");
968 Map<String, String> uriKeys = new HashMap<>();
969 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "global-customer-id");
970 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "service-type");
972 Customer customer = new Customer();
973 ServiceSubscription serviceSubscription = new ServiceSubscription();
974 serviceSubscription.setServiceType("subscriptionServiceType");
975 customer.setGlobalCustomerId("globalCustomerId");
976 customer.setSubscriberName("subscriberName");
977 customer.setSubscriberType("subscriberType");
978 customer.setServiceSubscription(serviceSubscription);
980 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant =
981 new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
982 tenant.setTenantContext("tenantContext");
983 tenant.setTenantId("tenantId");
984 tenant.setTenantName("tenantName");
986 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
987 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
988 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
989 aaiTenant.setTenantId("tenantId");
990 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
991 tenants.add(aaiTenant);
993 String requestAction = "createInstance";
995 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
996 .getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
997 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),
998 uriKeys.get("service-type"));
999 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
1000 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
1001 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
1002 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(),
1004 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
1005 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
1006 doReturn(tenants).when(aaiTenants).getTenant();
1007 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setServiceInstance(serviceInstance)
1008 .setRequestDetails(requestDetails).setExecuteBB(executeBB).setRequestAction(requestAction).build();
1009 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(parameter);
1011 assertThat(actual, sameBeanAs(expected));
1015 public void testGetServiceInstanceNOAAI() throws Exception {
1016 ServiceInstance expected =
1017 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1018 ServiceInstance.class);
1019 Service service = mapper.readValue(
1020 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1021 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
1022 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
1023 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
1024 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1026 BuildingBlock buildingBlock = new BuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
1027 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setaLaCarte(true).setBuildingBlock(buildingBlock);
1028 RequestDetails requestDetails = new RequestDetails();
1029 RequestInfo reqInfo = new RequestInfo();
1030 reqInfo.setInstanceName("serviceInstanceName");
1031 requestDetails.setRequestInfo(reqInfo);
1032 ModelInfo modelInfo = new ModelInfo();
1033 modelInfo.setModelType(ModelType.service);
1034 requestDetails.setModelInfo(modelInfo);
1035 doReturn(null).when(SPY_bbInputSetupUtils)
1036 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
1037 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
1038 .mapCatalogServiceIntoServiceInstance(service);
1039 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
1040 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
1041 boolean aLaCarte = true;
1043 ServiceInstance actual =
1044 SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project, owningEntity,
1045 lookupKeyMap, serviceInstanceId, aLaCarte, executeBB.getBuildingBlock().getBpmnFlowName());
1047 assertThat(actual, sameBeanAs(expected));
1051 public void testGetServiceSubscription() throws IOException {
1052 ServiceSubscription expected = new ServiceSubscription();
1053 RequestDetails requestDetails = new RequestDetails();
1054 RequestParameters params = new RequestParameters();
1055 params.setSubscriptionServiceType("subscriptionServiceType");
1056 requestDetails.setRequestParameters(params);
1057 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription =
1058 new org.onap.aai.domain.yang.ServiceSubscription();
1059 Customer customer = new Customer();
1060 customer.setGlobalCustomerId("globalCustomerId");
1061 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
1062 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
1063 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
1065 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
1066 assertThat(actual, sameBeanAs(expected));
1070 public void testGetCustomer() throws IOException {
1071 Customer expected = new Customer();
1072 RequestDetails requestDetails = new RequestDetails();
1073 SubscriberInfo subscriberInfo = new SubscriberInfo();
1074 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
1075 requestDetails.setSubscriberInfo(subscriberInfo);
1076 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
1077 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
1078 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
1079 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
1081 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
1082 assertThat(actual, sameBeanAs(expected));
1086 public void testGetExistingServiceInstance() throws Exception {
1087 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1088 ServiceInstance expected = new ServiceInstance();
1090 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
1093 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
1094 assertThat(actual, sameBeanAs(expected));
1098 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
1099 Service service = Mockito.mock(Service.class);
1100 String key = "collectionCustId";
1101 ServiceInstance serviceInstance =
1102 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1103 ServiceInstance.class);
1104 String resourceId = "123";
1105 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
1106 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
1107 assertNull(serviceInstance.getCollection());
1108 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
1110 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
1111 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
1112 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
1114 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1115 networkCollection.setModelCustomizationUUID(key);
1116 networkCollection.setCollectionResource(new CollectionResource());
1117 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1118 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1119 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1120 networkCollection.getCollectionResource().getInstanceGroup()
1121 .setCollectionInstanceGroupCustomizations(new ArrayList<>());
1122 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1123 customizations.add(networkCollection);
1124 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1125 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setService(service)
1126 .setServiceInstance(serviceInstance).setResourceId(resourceId).setKey(key)
1127 .setBbName(AssignFlows.NETWORK_COLLECTION.toString()).build();
1129 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(parameter);
1130 assertNotNull(serviceInstance.getCollection());
1131 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1133 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1134 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1135 serviceInstance.getCollection().getInstanceGroup(), key);
1139 public void testPopulateInstanceGroup() throws Exception {
1140 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1141 Service service = Mockito.mock(Service.class);
1142 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1143 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1144 serviceInstance.setServiceInstanceId("si-001");
1145 serviceInstance.setServiceInstanceName("test service instance");
1146 serviceInstance.setInstanceGroups(instanceGroups);
1148 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1149 .setService(service).setServiceInstance(serviceInstance).setResourceId("instance-group-001")
1150 .setInstanceName("test instance group").build();
1151 SPY_bbInputSetup.populateInstanceGroup(parameter);
1152 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class),
1153 isA(Service.class));
1154 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1158 public void testIsVlanTagging() throws Exception {
1159 boolean expected = true;
1160 Service service = Mockito.mock(Service.class);
1161 String key = "collectionCustId";
1162 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1163 networkCollection.setModelCustomizationUUID(key);
1164 networkCollection.setCollectionResource(new CollectionResource());
1165 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1166 networkCollection.getCollectionResource().getInstanceGroup()
1167 .setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1168 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1169 customizations.add(networkCollection);
1170 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1171 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1172 assertEquals("Is Vlan Tagging check.", expected, actual);
1176 public void testPopulateVolumeGroup() throws Exception {
1177 RequestDetails requestDetails = new RequestDetails();
1178 RelatedInstanceList ril = new RelatedInstanceList();
1179 RelatedInstance ri = new RelatedInstance();
1180 ModelInfo mi = new ModelInfo();
1181 mi.setModelType(ModelType.vnf);
1182 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1183 mi.setModelCustomizationId("vnfModelCustomizationUUID");
1184 ri.setModelInfo(mi);
1185 ril.setRelatedInstance(ri);
1186 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] {ril});
1188 ModelInfo modelInfo = new ModelInfo();
1189 modelInfo.setModelCustomizationId("volumeGroupCustId");
1191 RequestInfo reqInfo = new RequestInfo();
1192 reqInfo.setInstanceName("volumeGroupName");
1193 requestDetails.setModelInfo(modelInfo);
1194 requestDetails.setRequestInfo(reqInfo);
1196 ServiceInstance serviceInstance = new ServiceInstance();
1197 GenericVnf vnf = new GenericVnf();
1198 vnf.setVnfId("genericVnfId");
1200 VolumeGroup vg = new VolumeGroup();
1201 vg.setVolumeGroupName("volumeGroupName");
1202 vg.setVolumeGroupId("volumeGroupId");
1203 vg.setModelInfoVfModule(new ModelInfoVfModule());
1204 vg.getModelInfoVfModule().setModelCustomizationUUID("volumeGroupCustId");
1205 vnf.getVolumeGroups().add(vg);
1206 serviceInstance.getVnfs().add(vnf);
1208 Service service = mapper.readValue(
1209 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1210 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1211 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1213 ServiceModel serviceModel = new ServiceModel();
1214 serviceModel.setCurrentService(service);
1215 String bbName = AssignFlows.VOLUME_GROUP.toString();
1216 String resourceId = "123";
1217 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo), eq(service),
1218 eq("vnfModelCustomizationUUID"));
1219 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1220 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1221 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1223 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1224 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1225 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1226 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRequestDetails(requestDetails)
1227 .setInstanceName(reqInfo.getInstanceName()).setServiceModel(serviceModel).build();
1228 SPY_bbInputSetup.populateVolumeGroup(parameter);
1229 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(eq(vg), isA(ModelInfo.class), eq(service),
1230 eq("vnfModelCustomizationUUID"));
1231 vnf.getVolumeGroups().clear();
1232 SPY_bbInputSetup.populateVolumeGroup(parameter);
1233 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1234 "vnfModelCustomizationUUID");
1238 public void testMapCatalogVolumeGroup() {
1239 VolumeGroup volumeGroup = new VolumeGroup();
1240 RequestDetails requestDetails = new RequestDetails();
1241 ModelInfo modelInfo = new ModelInfo();
1242 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1243 requestDetails.setModelInfo(modelInfo);
1244 Service service = new Service();
1245 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1246 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1247 service.getVnfCustomizations().add(resourceCust);
1248 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1249 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1250 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1251 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1253 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1255 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1257 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1261 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1262 String instanceName = "networkName";
1263 ModelInfo modelInfo = new ModelInfo();
1264 modelInfo.setModelType(ModelType.network);
1266 ServiceInstance serviceInstance = new ServiceInstance();
1267 L3Network network = new L3Network();
1268 network.setNetworkId("networkId");
1269 network.setNetworkName("networkName");
1270 serviceInstance.getNetworks().add(network);
1271 String resourceId = "123";
1273 Service service = mapper.readValue(
1274 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1275 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1276 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1277 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1279 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1281 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1282 .setInstanceName(instanceName).setModelInfo(modelInfo).setService(service).setBbName(bbName)
1283 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).build();
1284 SPY_bbInputSetup.populateL3Network(parameter);
1286 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1288 SPY_bbInputSetup.populateL3Network(parameter);
1289 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1291 instanceName = "networkName2";
1292 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null, parameter);
1293 SPY_bbInputSetup.populateL3Network(parameter);
1294 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1298 public void testMapCatalogNetwork() {
1299 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1300 L3Network network = new L3Network();
1302 RequestDetails requestDetails = new RequestDetails();
1303 ModelInfo modelInfo = new ModelInfo();
1304 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1305 requestDetails.setModelInfo(modelInfo);
1306 Service service = new Service();
1307 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1308 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1309 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1311 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1313 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1315 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1319 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1320 String instanceName = "configurationName";
1321 ModelInfo modelInfo = new ModelInfo();
1322 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1324 ServiceInstance serviceInstance = new ServiceInstance();
1325 Configuration configuration = new Configuration();
1326 configuration.setConfigurationId("configurationId");
1327 configuration.setConfigurationName("configurationName");
1328 serviceInstance.getConfigurations().add(configuration);
1329 String resourceId = "configurationId";
1330 String vnfcName = "vnfcName";
1332 Service service = mapper.readValue(
1333 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1334 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1335 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1336 service.getConfigurationCustomizations().add(configurationCust);
1337 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1338 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1339 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1341 ServiceModel serviceModel = new ServiceModel();
1342 serviceModel.setCurrentService(service);
1344 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1345 configResourceKeys.setVnfcName(vnfcName);
1346 Vnfc vnfc = new Vnfc();
1347 vnfc.setVnfcName(vnfcName);
1348 RequestDetails requestDetails = new RequestDetails();
1349 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1350 configResourceKeys);
1351 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1352 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1353 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1354 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1355 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1356 .setServiceModel(serviceModel).build();
1357 SPY_bbInputSetup.populateConfiguration(parameter);
1358 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1359 configResourceKeys);
1361 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1363 SPY_bbInputSetup.populateConfiguration(parameter);
1364 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
1365 configResourceKeys);
1367 instanceName = "configurationName2";
1368 resourceId = "resourceId2";
1369 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1370 parameter.setInstanceName(instanceName);
1371 parameter.setResourceId(resourceId);
1372 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1373 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1374 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
1375 configResourceKeys);
1376 SPY_bbInputSetup.populateConfiguration(parameter);
1377 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
1378 configResourceKeys);
1382 public void testPopulateConfigurationReplace() throws JsonParseException, JsonMappingException, IOException {
1383 String instanceName = "configurationName";
1384 ModelInfo modelInfo = new ModelInfo();
1385 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1387 ServiceInstance serviceInstance = new ServiceInstance();
1388 Configuration configuration = new Configuration();
1389 configuration.setConfigurationId("configurationId");
1390 configuration.setConfigurationName("configurationName");
1391 serviceInstance.getConfigurations().add(configuration);
1392 String resourceId = "configurationId";
1393 String vnfcName = "vnfcName";
1395 Service service = mapper.readValue(
1396 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1397 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1398 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1399 service.getConfigurationCustomizations().add(configurationCust);
1400 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1401 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1402 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1404 ServiceModel serviceModel = new ServiceModel();
1405 serviceModel.setNewService(service);
1407 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1408 configResourceKeys.setVnfcName(vnfcName);
1409 Vnfc vnfc = new Vnfc();
1410 vnfc.setVnfcName(vnfcName);
1411 RequestDetails requestDetails = mapper.readValue(
1412 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
1413 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1414 configResourceKeys);
1415 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1416 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1417 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1418 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1419 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1420 .setServiceModel(serviceModel).setIsReplace(true).build();
1421 SPY_bbInputSetup.populateConfiguration(parameter);
1422 configResourceKeys.setVnfResourceCustomizationUUID("my-test-uuid");
1423 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1424 configResourceKeys);
1428 public void testMapCatalogConfiguration() {
1429 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1430 L3Network network = new L3Network();
1432 RequestDetails requestDetails = new RequestDetails();
1433 ModelInfo modelInfo = new ModelInfo();
1434 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1435 requestDetails.setModelInfo(modelInfo);
1436 Service service = new Service();
1437 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1438 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1439 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1441 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1443 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1445 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1449 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1450 String instanceName = "configurationName";
1451 ModelInfo modelInfo = new ModelInfo();
1452 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1454 ServiceInstance serviceInstance = new ServiceInstance();
1455 Configuration configuration = new Configuration();
1456 configuration.setConfigurationId("configurationId");
1457 configuration.setConfigurationName("configurationName");
1458 configuration.setConfigurationSubType("Fabric Config");
1459 serviceInstance.getConfigurations().add(configuration);
1460 String resourceId = "configurationId";
1461 String vnfcName = "vnfcName";
1463 Service service = mapper.readValue(
1464 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1465 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1466 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1467 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1468 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1469 configResourceKeys.setVnfcName(vnfcName);
1470 Vnfc vnfc = new Vnfc();
1471 vnfc.setVnfcName(vnfcName);
1472 RequestDetails requestDetails = new RequestDetails();
1474 ServiceModel serviceModel = new ServiceModel();
1475 serviceModel.setCurrentService(service);
1477 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1478 new CvnfcConfigurationCustomization();
1479 ConfigurationResource configurationResource = new ConfigurationResource();
1480 configurationResource.setModelUUID("modelUUID");
1481 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1482 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1484 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1485 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1486 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1487 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1488 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1489 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1490 .setServiceModel(serviceModel).build();
1491 SPY_bbInputSetup.populateConfiguration(parameter);
1492 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1493 configResourceKeys);
1497 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1498 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1499 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1500 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1501 String instanceName = "vnfName";
1502 ModelInfo modelInfo = new ModelInfo();
1503 modelInfo.setModelType(ModelType.vnf);
1504 ServiceInstance serviceInstance = new ServiceInstance();
1505 GenericVnf vnf = new GenericVnf();
1506 vnf.setVnfId("genericVnfId");
1507 vnf.setVnfName("vnfName");
1508 serviceInstance.getVnfs().add(vnf);
1509 String vnfType = "vnfType";
1510 String applicationId = "applicationId";
1511 RequestDetails requestDetails =
1512 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1514 Service service = mapper.readValue(
1515 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1516 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1517 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1518 String bbName = AssignFlows.VNF.toString();
1521 ServiceModel serviceModel = new ServiceModel();
1522 serviceModel.setCurrentService(service);
1524 Platform expectedPlatform = new Platform();
1525 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1526 String resourceId = "123";
1527 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1528 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1529 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1530 vnfAAI.setModelCustomizationId("modelCustId");
1531 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1532 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1533 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1534 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1535 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1536 new org.onap.so.db.catalog.beans.InstanceGroup();
1537 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1538 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1539 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1540 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1541 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1542 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1543 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1544 .setServiceModel(serviceModel).build();
1545 SPY_bbInputSetup.populateGenericVnf(parameter);
1547 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1549 SPY_bbInputSetup.populateGenericVnf(parameter);
1550 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1552 instanceName = "vnfName2";
1553 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1554 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1556 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1557 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1559 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1561 SPY_bbInputSetup.populateGenericVnf(parameter);
1562 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1563 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1564 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1566 assertEquals("modelCustId", modelInfo.getModelCustomizationUuid());
1571 public void testPopulateGenericVnfReplace() throws JsonParseException, JsonMappingException, IOException {
1572 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1573 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1574 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1575 String instanceName = "vnfName";
1576 ModelInfo modelInfo = new ModelInfo();
1577 modelInfo.setModelType(ModelType.vnf);
1578 ServiceInstance serviceInstance = new ServiceInstance();
1579 GenericVnf vnf = new GenericVnf();
1580 vnf.setVnfId("genericVnfId");
1581 vnf.setVnfName("vnfName");
1582 serviceInstance.getVnfs().add(vnf);
1583 String vnfType = "vnfType";
1584 String applicationId = "applicationId";
1585 RequestDetails requestDetails =
1586 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1588 Service service = mapper.readValue(
1589 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1590 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1591 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1592 String bbName = AssignFlows.VNF.toString();
1594 String resourceId = "123";
1595 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1596 vnfAAI.setModelCustomizationId("modelCustId");
1597 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1598 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1599 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1600 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1601 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1602 new org.onap.so.db.catalog.beans.InstanceGroup();
1603 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1605 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1606 .setInstanceName(instanceName).setPlatform(platform).setLineOfBusiness(lineOfBusiness)
1607 .setService(service).setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1608 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1609 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1610 .setApplicationId(applicationId).setIsReplace(true).build();
1612 SPY_bbInputSetup.populateGenericVnf(parameter);
1614 assertEquals("my-test-uuid", modelInfo.getModelCustomizationUuid());
1619 public void testMapVnfcCollectionInstanceGroup() {
1620 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1621 GenericVnf genericVnf = new GenericVnf();
1622 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1623 Service service = Mockito.mock(Service.class);
1624 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1625 instanceGroup.setModelUUID("modelUUID");
1626 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1627 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1628 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1629 vnfcInstanceGroupCust.setFunction("function");
1630 vnfcInstanceGroupCust.setDescription("description");
1631 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1633 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1634 modelInfoInstanceGroup.setModelUUID("modelUUID");
1635 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1636 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1637 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1638 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null,
1641 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1643 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1647 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1648 throws JsonParseException, JsonMappingException, IOException {
1649 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1650 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1651 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1652 String instanceName = "vnfName";
1653 ModelInfo modelInfo = new ModelInfo();
1654 modelInfo.setModelType(ModelType.vnf);
1656 ServiceInstance serviceInstance = new ServiceInstance();
1657 GenericVnf vnf = new GenericVnf();
1658 vnf.setVnfId("genericVnfId");
1659 vnf.setVnfName("vnfName");
1660 serviceInstance.getVnfs().add(vnf);
1661 String vnfType = null;
1662 RequestDetails requestDetails =
1663 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1665 Service service = mapper.readValue(
1666 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1667 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1668 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1669 String bbName = AssignFlows.VNF.toString();
1671 Platform expectedPlatform = new Platform();
1672 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1673 String resourceId = "123";
1674 String applicationId = "applicationId";
1675 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1676 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1677 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1678 vnfAAI.setModelCustomizationId("modelCustId");
1679 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1680 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1681 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1682 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1683 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1684 new org.onap.so.db.catalog.beans.InstanceGroup();
1685 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1686 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1687 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1688 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1689 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1690 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1691 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1692 SPY_bbInputSetup.populateGenericVnf(parameter);
1694 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1696 SPY_bbInputSetup.populateGenericVnf(parameter);
1697 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1699 instanceName = "vnfName2";
1700 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1701 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1703 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1704 vnfAAI.setModelCustomizationId("modelCustId2");
1705 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1706 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1707 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1708 SPY_bbInputSetup.populateGenericVnf(parameter);
1709 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1710 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1711 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1715 public void testMapCatalogVnf() {
1716 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1717 GenericVnf genericVnf = new GenericVnf();
1718 RequestDetails requestDetails = new RequestDetails();
1719 ModelInfo modelInfo = new ModelInfo();
1720 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1721 requestDetails.setModelInfo(modelInfo);
1722 Service service = new Service();
1723 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1724 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1725 service.getVnfCustomizations().add(resourceCust);
1726 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1728 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1730 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1732 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1736 public void testMapCatalogCollectionAndInstanceGroup() {
1737 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1738 modelInfoCollection.setCollectionFunction("collectionFunction");
1739 modelInfoCollection.setCollectionRole("collectionRole");
1740 modelInfoCollection.setCollectionType("collectionType");
1741 modelInfoCollection.setDescription("description");
1742 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1743 modelInfoCollection.setQuantity(0);
1745 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1746 modelInfoInstanceGroup.setFunction("function");
1747 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1748 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1749 modelInfoInstanceGroup.setModelUUID("modelUUID");
1750 modelInfoInstanceGroup.setType("VNFC");
1751 modelInfoInstanceGroup.setDescription("description");
1753 InstanceGroup instanceGroup = new InstanceGroup();
1754 Collection collection = new Collection();
1755 collection.setInstanceGroup(instanceGroup);
1757 CollectionResource collectionResource = new CollectionResource();
1758 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1759 new org.onap.so.db.catalog.beans.InstanceGroup();
1760 collectionResource.setToscaNodeType("NetworkCollection");
1761 collectionResource.setInstanceGroup(catalogInstanceGroup);
1763 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1764 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1765 collectionCust.setCollectionResource(collectionResource);
1767 Service service = new Service();
1768 service.getCollectionResourceCustomizations().add(collectionCust);
1769 ServiceInstance serviceInstance = new ServiceInstance();
1770 serviceInstance.setCollection(collection);
1772 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1773 CollectionResourceInstanceGroupCustomization instanceGroupCust =
1774 new CollectionResourceInstanceGroupCustomization();
1775 instanceGroupCust.setFunction("function");
1776 instanceGroupCust.setDescription("description");
1778 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1779 collectionResource);
1781 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer)
1782 .mapCatalogInstanceGroupToInstanceGroup(collectionCust, catalogInstanceGroup);
1784 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1785 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1786 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1788 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1789 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1793 public void testAddRelationshipsToSI() throws Exception {
1794 ServiceInstance serviceInstance = new ServiceInstance();
1795 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1796 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1798 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1799 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1800 relationshipList.getRelationship().add(relationship);
1801 serviceInstanceAAI.setRelationshipList(relationshipList);
1803 Map<String, String> uriKeys = new HashMap<>();
1804 uriKeys.put("global-customer-id", "globalCustomerId");
1805 uriKeys.put("service-type", "serviceType");
1808 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1809 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1810 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1811 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1812 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1814 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1816 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1817 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1818 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1819 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1820 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1821 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1825 public void testMapConfigurations() throws JsonProcessingException {
1826 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1827 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1828 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1829 relationshipList.getRelationship().add(relationship);
1830 expectedAAI.setRelationshipList(relationshipList);
1832 Configuration expected = new Configuration();
1833 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1834 AAIResultWrapper configurationWrapper =
1835 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1837 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1838 doReturn(expected).when(bbInputSetupMapperLayer)
1839 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1841 List<Configuration> configurations = new ArrayList<>();
1843 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), configurations);
1845 assertEquals(expected, configurations.get(0));
1849 public void testMapGenericVnfs() throws JsonProcessingException {
1850 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1851 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1852 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1853 relationshipList.getRelationship().add(relationship);
1854 expectedAAI.setRelationshipList(relationshipList);
1856 GenericVnf expected = new GenericVnf();
1857 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1858 AAIResultWrapper vnfWrapper =
1859 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1861 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1862 doReturn(expected).when(bbInputSetupMapperLayer)
1863 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1864 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1865 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1866 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1868 List<GenericVnf> genericVnfs = new ArrayList<>();
1870 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), genericVnfs);
1872 assertEquals(expected, genericVnfs.get(0));
1873 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1874 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1875 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1879 public void testMapPnfs() throws JsonProcessingException {
1880 org.onap.aai.domain.yang.Pnf expectedAAI = new org.onap.aai.domain.yang.Pnf();
1881 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1882 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1883 relationshipList.getRelationship().add(relationship);
1884 expectedAAI.setRelationshipList(relationshipList);
1886 Pnf expected = new Pnf();
1887 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.PNF, "pnfId");
1888 AAIResultWrapper pnfWrapper =
1889 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1891 doReturn(pnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1892 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPnfIntoPnf(isA(org.onap.aai.domain.yang.Pnf.class));
1894 List<Pnf> pnfs = new ArrayList<>();
1896 SPY_bbInputSetup.mapPnfs(Arrays.asList(aaiResourceUri), pnfs);
1898 assertEquals(expected, pnfs.get(0));
1902 public void testMapVolumeGroups() throws JsonProcessingException {
1903 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1905 VolumeGroup expected = new VolumeGroup();
1906 AAIResultWrapper vnfWrapper =
1907 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1909 doReturn(expected).when(bbInputSetupMapperLayer)
1910 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1912 List<VolumeGroup> volumeGroupsList =
1913 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}));
1915 assertEquals(expected, volumeGroupsList.get(0));
1919 public void testMapLineOfBusiness() throws JsonProcessingException {
1920 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1922 LineOfBusiness expected = new LineOfBusiness();
1923 AAIResultWrapper vnfWrapper =
1924 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1926 doReturn(expected).when(bbInputSetupMapperLayer)
1927 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1929 GenericVnf vnf = new GenericVnf();
1931 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1933 assertEquals(expected, vnf.getLineOfBusiness());
1937 public void testMapPlatform() throws JsonProcessingException {
1938 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1940 Platform expected = new Platform();
1941 AAIResultWrapper vnfWrapper =
1942 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1944 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1946 GenericVnf vnf = new GenericVnf();
1948 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1950 assertEquals(expected, vnf.getPlatform());
1954 public void testMapCollection() throws JsonProcessingException {
1955 List<AAIResultWrapper> collections = new ArrayList<>();
1956 ServiceInstance serviceInstance = new ServiceInstance();
1958 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1959 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList =
1960 new org.onap.aai.domain.yang.RelationshipList();
1961 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship =
1962 new org.onap.aai.domain.yang.Relationship();
1963 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1964 aaiCollection.setRelationshipList(collectionRelationshipList);
1966 collections.add(new AAIResultWrapper(
1967 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1969 Collection collection = new Collection();
1970 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1971 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1972 InstanceGroup instanceGroup = new InstanceGroup();
1973 instanceGroupsList.add(instanceGroup);
1974 NetworkCollectionResourceCustomization networkCollectionCust =
1975 Mockito.mock(NetworkCollectionResourceCustomization.class);
1976 CollectionResource collectionResource = new CollectionResource();
1977 doReturn(collection).when(bbInputSetupMapperLayer)
1978 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1979 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1980 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils)
1981 .getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1982 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1983 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer)
1984 .mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1986 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1988 assertEquals(collection, serviceInstance.getCollection());
1989 assertEquals(instanceGroup, collection.getInstanceGroup());
1991 instanceGroupsList.clear();
1992 collection = new Collection();
1994 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1995 assertEquals(collection, serviceInstance.getCollection());
1996 assertNull(collection.getInstanceGroup());
2000 public void testMapL3Networks() throws JsonProcessingException {
2001 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
2002 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
2003 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
2004 relationshipList.getRelationship().add(relationship);
2005 expectedAAI.setRelationshipList(relationshipList);
2007 L3Network expected = new L3Network();
2008 List<L3Network> l3Networks = new ArrayList<>();
2009 AAIResultWrapper l3NetworksWrapper =
2010 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2011 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
2013 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
2014 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
2015 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2016 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
2017 eq(expected.getContrailNetworkRouteTableReferences()));
2019 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), l3Networks);
2021 assertEquals(expected, l3Networks.get(0));
2022 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2023 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
2024 eq(expected.getContrailNetworkRouteTableReferences()));
2028 public void testMapRouteTableReferences() throws JsonProcessingException {
2029 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
2031 RouteTableReference expected = new RouteTableReference();
2032 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
2033 AAIResultWrapper vnfWrapper =
2034 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2036 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
2037 isA(org.onap.aai.domain.yang.RouteTableReference.class));
2039 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}),
2040 contrailNetworkRouteTableReferences);
2042 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
2046 public void testMapOwningEntity() throws JsonProcessingException {
2047 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
2049 OwningEntity expected = new OwningEntity();
2050 AAIResultWrapper vnfWrapper =
2051 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2053 doReturn(expected).when(bbInputSetupMapperLayer)
2054 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
2056 ServiceInstance serviceInstance = new ServiceInstance();
2058 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2060 assertEquals(expected, serviceInstance.getOwningEntity());
2064 public void testMapProject() throws JsonProcessingException {
2065 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
2067 Project expected = new Project();
2068 AAIResultWrapper vnfWrapper =
2069 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2071 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
2073 ServiceInstance serviceInstance = new ServiceInstance();
2075 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2077 assertEquals(expected, serviceInstance.getProject());
2081 public void testMapCustomer() throws Exception {
2082 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
2083 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI =
2084 new org.onap.aai.domain.yang.ServiceSubscription();
2086 Customer expected = new Customer();
2087 ServiceSubscription serviceSubscription = new ServiceSubscription();
2089 String globalCustomerId = "globalCustomerId";
2090 String subscriptionServiceType = "subscriptionServiceType";
2092 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
2093 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
2094 subscriptionServiceType);
2095 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
2096 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
2097 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
2099 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
2101 assertEquals(expected, actual);
2102 assertEquals(serviceSubscription, expected.getServiceSubscription());
2106 public void testPopulateLookupKeyMapWithIds() {
2107 Map<ResourceKey, String> expected = new HashMap<>();
2108 Map<ResourceKey, String> actual = new HashMap<>();
2109 String serviceInstanceId = "serviceInstanceId";
2110 String networkId = "networkId";
2111 String vnfId = "vnfId";
2112 String pnfId = "pnfId";
2113 String vfModuleId = "vfModuleId";
2114 String volumeGroupId = "volumeGroupId";
2115 String configurationId = "configurationId";
2116 String instanceGroupId = "instancegroupId";
2118 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
2119 expected.put(ResourceKey.NETWORK_ID, networkId);
2120 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2121 expected.put(ResourceKey.PNF, pnfId);
2122 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
2123 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
2124 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
2125 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
2127 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2128 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
2129 workflowResourceIds.setNetworkId(networkId);
2130 workflowResourceIds.setVnfId(vnfId);
2131 workflowResourceIds.setPnfId(pnfId);
2132 workflowResourceIds.setVfModuleId(vfModuleId);
2133 workflowResourceIds.setVolumeGroupId(volumeGroupId);
2134 workflowResourceIds.setConfigurationId(configurationId);
2135 workflowResourceIds.setInstanceGroupId(instanceGroupId);
2137 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
2139 assertThat(actual, sameBeanAs(expected));
2143 public void testGBBMacroNoUserParamsVrfConfiguration() throws Exception {
2144 String resourceId = "123";
2145 String vnfType = "vnfType";
2146 String requestAction = "createInstance";
2147 Service service = Mockito.mock(Service.class);
2148 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2149 GeneralBuildingBlock.class);
2150 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2151 ExecuteBuildingBlock.class);
2152 RequestDetails requestDetails = mapper
2153 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacroVrf.json"), RequestDetails.class);
2154 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2156 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2157 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2158 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2159 buildingBlock.setBpmnFlowName("AssignVrfConfigurationBB");
2160 buildingBlock.setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2162 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2163 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2164 doReturn(service).when(SPY_bbInputSetupUtils)
2165 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2167 RelatedInstance relatedVpnBinding = new RelatedInstance();
2168 relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
2169 RelatedInstance relatedLocalNetwork = new RelatedInstance();
2170 relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
2171 org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
2172 aaiVpnBinding.setVpnId("vpnBindingId");
2173 org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
2174 aaiLocalNetwork.setNetworkId("localNetworkId");
2175 Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
2176 Optional.of(new org.onap.aai.domain.yang.VpnBinding());
2177 aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
2178 ServiceProxy proxy = new ServiceProxy();
2179 proxy.setType("transport");
2180 proxy.setServiceInstance(new ServiceInstance());
2181 proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2182 proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
2183 doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2184 ModelType.vpnBinding);
2185 doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2187 doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
2188 doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
2189 doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
2190 doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
2192 Configuration configuration = new Configuration();
2193 configuration.setConfigurationId("configurationId");
2194 gBB.getServiceInstance().getConfigurations().add(configuration);
2195 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
2196 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
2197 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2198 configurationCustList.add(configurationCust);
2199 doNothing().when(SPY_bbInputSetup).populateConfiguration(any(BBInputSetupParameter.class));
2201 gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2202 verify(SPY_bbInputSetup, times(1)).populateConfiguration(any(BBInputSetupParameter.class));
2203 assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
2204 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
2205 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
2207 assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
2211 public void testGetServiceProxy() {
2212 ServiceProxy expected = new ServiceProxy();
2213 expected.setType("TRANSPORT");
2214 expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
2215 expected.getModelInfoServiceProxy().setModelUuid("modelUUID");
2216 expected.getModelInfoServiceProxy().setModelInstanceName("modelInstanceName");
2217 expected.setServiceInstance(new ServiceInstance());
2218 expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2219 expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
2220 expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
2221 Service service = new Service();
2222 ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
2223 serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
2224 serviceProxyCatalog.setModelInstanceName("modelInstanceName");
2225 Service sourceService = new Service();
2226 sourceService.setModelUUID("modelUUID");
2227 sourceService.setServiceType("TRANSPORT");
2228 serviceProxyCatalog.setSourceService(sourceService);
2229 service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
2230 service.getServiceProxyCustomizations().add(serviceProxyCatalog);
2231 ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
2232 assertThat(actual, sameBeanAs(expected));
2236 public void testgetGBBMacroCloudConfiguration() throws Exception {
2237 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2238 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2239 CloudConfiguration cloudConfig = null;
2240 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
2241 aaiCloudRegion.setCloudOwner("test-owner-name");
2242 Resources resources = serviceMacro.getResources();
2243 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
2244 CloudRegion expected = new CloudRegion();
2245 expected.setLcpCloudRegionId("mdt1");
2246 expected.setCloudOwner("test-owner-name");
2247 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
2249 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2250 assertThat(actual, sameBeanAs(expected));
2252 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroVnfs.json"),
2253 org.onap.so.serviceinstancebeans.Service.class);
2254 resources = serviceMacro.getResources();
2256 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2257 assertThat(actual, sameBeanAs(expected));
2259 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNetworks.json"),
2260 org.onap.so.serviceinstancebeans.Service.class);
2261 resources = serviceMacro.getResources();
2263 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2264 assertThat(actual, sameBeanAs(expected));
2266 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"),
2267 org.onap.so.serviceinstancebeans.Service.class);
2268 resources = serviceMacro.getResources();
2270 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2275 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
2276 String resourceId = "123";
2277 String vnfType = "vnfType";
2278 String requestAction = "createInstance";
2279 Service service = Mockito.mock(Service.class);
2280 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2281 GeneralBuildingBlock.class);
2282 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2283 ExecuteBuildingBlock.class);
2284 RequestDetails requestDetails = mapper
2285 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2286 requestDetails.getRequestParameters().getUserParams().clear();
2287 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2288 aaiVnf.setModelCustomizationId("modelCustId");
2289 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2290 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2291 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2292 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2294 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2295 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2296 doReturn(service).when(SPY_bbInputSetupUtils)
2297 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2299 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2300 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2301 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2304 @Test(expected = Exception.class)
2305 public void testgetGBBMacroException() throws Exception {
2306 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2307 ExecuteBuildingBlock.class);
2308 RequestDetails requestDetails = mapper
2309 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2310 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2311 String resourceId = "123";
2312 String vnfType = "vnfType";
2313 String requestAction = "createInstance";
2315 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2316 buildingBlock.setBpmnFlowName("Network").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2318 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2322 public void test_getGBBMacroForVnfTypeNull_populateL3Network_shouldBeCalled() throws Exception {
2324 String resourceId = "123";
2325 String vnfType = "null";
2326 String requestAction = "createInstance";
2327 Service service = Mockito.mock(Service.class);
2328 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2329 GeneralBuildingBlock.class);
2330 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2332 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2333 RequestDetails requestDetails = mapper
2334 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2335 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2336 ExecuteBuildingBlock.class);
2337 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2338 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2339 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2340 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2342 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2343 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2344 doReturn(service).when(SPY_bbInputSetupUtils)
2345 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2347 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2349 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(BBInputSetupParameter.class));
2353 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2354 String resourceId = "123";
2355 String vnfType = "vnfType";
2356 String requestAction = "deactivateInstance";
2357 Service service = Mockito.mock(Service.class);
2358 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2359 GeneralBuildingBlock.class);
2360 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2361 ExecuteBuildingBlock.class);
2362 RequestDetails requestDetails = mapper
2363 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2364 requestDetails.getRequestParameters().setUserParams(null);
2365 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2366 aaiVnf.setModelCustomizationId("modelCustId");
2367 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2368 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2369 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2370 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2371 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2372 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2373 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2374 buildingBlock.setBpmnFlowName("DeactivateServiceInstanceBB").setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2376 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2377 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2378 doReturn(service).when(SPY_bbInputSetupUtils)
2379 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2381 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2382 requestAction, resourceId, vnfType);
2383 assertThat(actual, sameBeanAs(gBB));
2387 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled() throws Exception {
2389 String resourceId = "123";
2390 String vnfType = "vnfType";
2391 String requestAction = "createInstance";
2392 Service service = Mockito.mock(Service.class);
2393 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2394 GeneralBuildingBlock.class);
2395 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2396 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2397 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2398 networkCustList.add(networkCust);
2400 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2401 RequestDetails requestDetails = mapper
2402 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2403 requestDetails.getRequestParameters().setUserParams(null);
2404 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2405 ExecuteBuildingBlock.class);
2406 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2407 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2408 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2409 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2411 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2412 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2413 doReturn(service).when(SPY_bbInputSetupUtils)
2414 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2415 doReturn(networkCustList).when(service).getNetworkCustomizations();
2416 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2417 doNothing().when(SPY_bbInputSetup).populateL3Network(any(BBInputSetupParameter.class));
2419 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2421 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2422 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2426 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLink() throws Exception {
2428 String resourceId = "123";
2429 String vnfType = "vnfType";
2430 String requestAction = "createInstance";
2431 Service service = Mockito.mock(Service.class);
2432 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2433 GeneralBuildingBlock.class);
2434 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2435 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2436 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2437 networkCustList.add(networkCust);
2438 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2439 Mockito.mock(CollectionNetworkResourceCustomization.class);
2440 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2441 aaiVnf.setModelCustomizationId("modelCustId");
2442 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2443 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2445 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2446 RequestDetails requestDetails = mapper
2447 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2448 requestDetails.getRequestParameters().setUserParams(null);
2449 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2450 ExecuteBuildingBlock.class);
2451 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2452 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2453 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2454 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(true);
2456 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2457 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2458 doReturn(service).when(SPY_bbInputSetupUtils)
2459 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2460 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2461 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2462 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer)
2463 .mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2464 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer)
2465 .mapCatalogNetworkToNetwork(networkResourceCustomization);
2467 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2469 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2470 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2474 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLinkAndOtherFlowName()
2477 String otherFlowName = "CreateNetworkBB";
2478 String resourceId = "123";
2479 String vnfType = "vnfType";
2480 String requestAction = "createInstance";
2481 Service service = Mockito.mock(Service.class);
2482 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2483 GeneralBuildingBlock.class);
2484 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2485 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2486 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2487 networkCustList.add(networkCust);
2488 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2489 Mockito.mock(CollectionNetworkResourceCustomization.class);
2491 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2492 RequestDetails requestDetails = mapper
2493 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2494 requestDetails.getRequestParameters().setUserParams(null);
2495 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2496 ExecuteBuildingBlock.class);
2497 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2498 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2499 buildingBlock.setBpmnFlowName(otherFlowName).setKey("ab153b6e-c364-44c0-bef6-1f2982117f04")
2500 .setIsVirtualLink(true);
2502 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2503 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2504 doReturn(service).when(SPY_bbInputSetupUtils)
2505 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2506 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2507 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2509 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2511 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2512 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2515 @Test(expected = IllegalArgumentException.class)
2516 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2517 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2518 GeneralBuildingBlock.class);
2519 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2520 ExecuteBuildingBlock.class);
2521 RequestDetails requestDetails = mapper
2522 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2523 requestDetails.getRequestParameters().setUserParams(null);
2524 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2525 aaiVnf.setModelCustomizationId("modelCustId");
2526 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2527 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2528 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2529 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2530 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2531 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2532 String resourceId = "123";
2533 String vnfType = "vnfType";
2534 Service service = Mockito.mock(Service.class);
2535 String requestAction = "assignInstance";
2536 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2537 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2538 doReturn(service).when(SPY_bbInputSetupUtils)
2539 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2540 String generatedId = "12131";
2542 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2546 public void test_getGBBMacroNoUserParamsExistingService_forCatalogNetwork() throws Exception {
2548 String requestAction = "unassignInstance";
2549 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2550 GeneralBuildingBlock.class);
2551 L3Network network = new L3Network();
2552 network.setNetworkId("networkId");
2553 gBB.getServiceInstance().getNetworks().add(network);
2554 ServiceInstance serviceInstance = gBB.getServiceInstance();
2555 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2556 ExecuteBuildingBlock.class);
2557 RequestDetails requestDetails = mapper
2558 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2559 requestDetails.getRequestParameters().setUserParams(null);
2560 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2561 Service service = Mockito.mock(Service.class);
2562 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2563 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2564 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2565 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2566 aaiNetwork.setModelCustomizationId("modelCustId");
2568 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2569 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2570 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2571 buildingBlock.setBpmnFlowName("DeleteNetworkBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2573 aaiServiceInstance.setModelVersionId("modelVersionId");
2574 doReturn(service).when(SPY_bbInputSetupUtils)
2575 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2576 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2577 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2578 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2579 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2580 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2581 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2582 any(Service.class));
2584 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2585 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2587 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2588 any(Service.class));
2592 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
2594 String requestAction = "unassignInstance";
2595 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2596 GeneralBuildingBlock.class);
2597 L3Network network = new L3Network();
2598 network.setNetworkId("networkId");
2599 gBB.getServiceInstance().getNetworks().add(network);
2600 ServiceInstance serviceInstance = gBB.getServiceInstance();
2601 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2602 ExecuteBuildingBlock.class);
2603 RequestDetails requestDetails = mapper
2604 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2605 requestDetails.getRequestParameters().setUserParams(null);
2606 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2607 Service service = Mockito.mock(Service.class);
2608 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2609 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2610 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2611 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2612 aaiNetwork.setModelCustomizationId("modelCustId");
2613 GenericVnf vnf = new GenericVnf();
2614 vnf.setVnfId("vnfId");
2615 gBB.getServiceInstance().getVnfs().add(vnf);
2616 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2617 aaiVnf.setModelCustomizationId("modelCustId");
2619 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2620 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2621 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2622 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2623 buildingBlock.setBpmnScope("VNF");
2625 aaiServiceInstance.setModelVersionId("modelVersionId");
2626 doReturn(service).when(SPY_bbInputSetupUtils)
2627 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2628 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2629 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2630 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2631 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2632 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2633 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2634 any(Service.class));
2636 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2637 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2639 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2640 any(Service.class));
2644 public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
2646 String requestAction = "unassignInstance";
2647 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2648 GeneralBuildingBlock.class);
2649 L3Network network = new L3Network();
2650 network.setNetworkId("networkId");
2651 gBB.getServiceInstance().getNetworks().add(network);
2652 ServiceInstance serviceInstance = gBB.getServiceInstance();
2653 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2654 ExecuteBuildingBlock.class);
2655 RequestDetails requestDetails = mapper
2656 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2657 requestDetails.getRequestParameters().setUserParams(null);
2658 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2659 Service service = Mockito.mock(Service.class);
2660 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2661 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2662 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2663 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2664 aaiNetwork.setModelCustomizationId("modelCustId");
2665 GenericVnf vnf = new GenericVnf();
2666 vnf.setVnfId("vnfId");
2667 gBB.getServiceInstance().getVnfs().add(vnf);
2668 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2669 aaiVnf.setModelCustomizationId("modelCustId");
2671 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2672 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2673 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2674 buildingBlock.setBpmnFlowName("ActivateVnfBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2676 aaiServiceInstance.setModelVersionId("modelVersionId");
2677 doReturn(service).when(SPY_bbInputSetupUtils)
2678 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2679 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2680 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2681 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2682 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2683 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2684 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2685 any(Service.class));
2687 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2688 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2690 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2691 any(Service.class));
2695 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
2697 String requestAction = "unassignInstance";
2698 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2699 GeneralBuildingBlock.class);
2700 L3Network network = new L3Network();
2701 network.setNetworkId("networkId");
2702 gBB.getServiceInstance().getNetworks().add(network);
2703 ServiceInstance serviceInstance = gBB.getServiceInstance();
2704 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2705 ExecuteBuildingBlock.class);
2706 RequestDetails requestDetails = mapper
2707 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2708 requestDetails.getRequestParameters().setUserParams(null);
2709 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2710 Service service = Mockito.mock(Service.class);
2711 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2712 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2713 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2714 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2715 aaiNetwork.setModelCustomizationId("modelCustId");
2716 GenericVnf vnf = new GenericVnf();
2717 vnf.setVnfId("vnfId");
2718 gBB.getServiceInstance().getVnfs().add(vnf);
2719 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2720 aaiVnf.setModelCustomizationId("modelCustId");
2721 VfModule vfModule = new VfModule();
2722 vfModule.setVfModuleId("vfModuleId");
2723 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2724 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2725 aaiVfModule.setModelCustomizationId("modelCustId");
2727 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2728 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2729 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2730 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2731 buildingBlock.setBpmnScope("VfModule");
2733 aaiServiceInstance.setModelVersionId("modelVersionId");
2734 doReturn(service).when(SPY_bbInputSetupUtils)
2735 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2736 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2737 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2738 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2739 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2740 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2741 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2742 any(Service.class));
2743 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2745 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2746 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2748 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2749 any(Service.class));
2750 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2751 any(Service.class), any(String.class));
2755 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() throws Exception {
2757 String requestAction = "unassignInstance";
2758 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2759 GeneralBuildingBlock.class);
2760 L3Network network = new L3Network();
2761 network.setNetworkId("networkId");
2762 gBB.getServiceInstance().getNetworks().add(network);
2763 ServiceInstance serviceInstance = gBB.getServiceInstance();
2764 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2765 ExecuteBuildingBlock.class);
2766 RequestDetails requestDetails = mapper
2767 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2768 requestDetails.getRequestParameters().setUserParams(null);
2769 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2770 Service service = Mockito.mock(Service.class);
2771 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2772 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2773 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2774 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2775 aaiNetwork.setModelCustomizationId("modelCustId");
2776 GenericVnf vnf = new GenericVnf();
2777 vnf.setVnfId("vnfId");
2778 gBB.getServiceInstance().getVnfs().add(vnf);
2779 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2780 aaiVnf.setModelCustomizationId("modelCustId");
2781 VfModule vfModule = new VfModule();
2782 vfModule.setVfModuleId("vfModuleId");
2783 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2784 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2785 aaiVfModule.setModelCustomizationId("modelCustId");
2787 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2788 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2789 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2790 buildingBlock.setBpmnFlowName("UnassignVfModuleBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2792 aaiServiceInstance.setModelVersionId("modelVersionId");
2793 doReturn(service).when(SPY_bbInputSetupUtils)
2794 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2795 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2796 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2797 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2798 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2799 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2800 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2801 any(Service.class));
2802 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2804 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2805 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2807 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2808 any(Service.class));
2809 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2810 any(Service.class), any(String.class));
2814 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVolumeGroupBB() throws Exception {
2816 String requestAction = "unassignInstance";
2817 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2818 GeneralBuildingBlock.class);
2819 L3Network network = new L3Network();
2820 network.setNetworkId("networkId");
2821 gBB.getServiceInstance().getNetworks().add(network);
2822 ServiceInstance serviceInstance = gBB.getServiceInstance();
2823 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2824 ExecuteBuildingBlock.class);
2825 RequestDetails requestDetails = mapper
2826 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2827 requestDetails.getRequestParameters().setUserParams(null);
2828 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2829 Service service = Mockito.mock(Service.class);
2830 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2831 GenericVnf vnf = new GenericVnf();
2832 vnf.setVnfId("vnfId");
2833 gBB.getServiceInstance().getVnfs().add(vnf);
2834 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2835 aaiVnf.setModelCustomizationId("modelCustId");
2836 VfModule vfModule = new VfModule();
2837 vfModule.setVfModuleId("vfModuleId");
2838 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2839 CloudRegion cloudRegion = new CloudRegion();
2840 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2841 cloudRegion.setCloudOwner("CloudOwner");
2842 VolumeGroup volumeGroup = new VolumeGroup();
2843 volumeGroup.setVolumeGroupId("volumeGroupId");
2844 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2845 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2846 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2848 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2849 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2850 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2851 buildingBlock.setBpmnFlowName("UnassignVolumeGroupBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2853 aaiServiceInstance.setModelVersionId("modelVersionId");
2854 doReturn(service).when(SPY_bbInputSetupUtils)
2855 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2856 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2857 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2858 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2859 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2860 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2861 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2862 any(Service.class));
2863 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2864 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2865 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2868 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2869 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2871 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2872 any(Service.class));
2873 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2874 isA(Service.class), isA(String.class));
2878 public void test_getGBBMacroNoUserParamsExistingService_forActivateFabricConfigurationBB() throws Exception {
2880 String requestAction = "unassignInstance";
2881 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2882 GeneralBuildingBlock.class);
2883 L3Network network = new L3Network();
2884 network.setNetworkId("networkId");
2885 gBB.getServiceInstance().getNetworks().add(network);
2886 ServiceInstance serviceInstance = gBB.getServiceInstance();
2887 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2888 ExecuteBuildingBlock.class);
2889 RequestDetails requestDetails = mapper
2890 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2891 requestDetails.getRequestParameters().setUserParams(null);
2892 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2893 Service service = Mockito.mock(Service.class);
2894 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2895 GenericVnf vnf = new GenericVnf();
2896 vnf.setVnfId("vnfId");
2897 gBB.getServiceInstance().getVnfs().add(vnf);
2898 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2899 aaiVnf.setModelCustomizationId("modelCustId");
2900 VfModule vfModule = new VfModule();
2901 vfModule.setVfModuleId("vfModuleId");
2902 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2903 VolumeGroup volumeGroup = new VolumeGroup();
2904 volumeGroup.setVolumeGroupId("volumeGroupId");
2905 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2906 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2907 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2908 Configuration configuration = new Configuration();
2909 configuration.setConfigurationId("configurationId");
2910 gBB.getServiceInstance().getConfigurations().add(configuration);
2911 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2912 aaiConfiguration.setModelCustomizationId("modelCustId");
2914 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2915 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2916 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2917 buildingBlock.setBpmnFlowName("ActivateFabricConfigurationBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2919 aaiServiceInstance.setModelVersionId("modelVersionId");
2920 doReturn(service).when(SPY_bbInputSetupUtils)
2921 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2922 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2923 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2924 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2925 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2926 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2927 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class),
2928 isA(Service.class), isA(ConfigurationResourceKeys.class));
2931 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2932 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2934 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2935 any(Service.class), isA(ConfigurationResourceKeys.class));
2939 public void testGetGBBMacroExistingServiceServiceinstancenotFoundInAai() throws Exception {
2940 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2941 ExecuteBuildingBlock.class);
2942 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2943 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2945 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2946 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2948 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2950 expectedException.expect(NoServiceInstanceFoundException.class);
2951 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
2953 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2954 cloudConfiguration);
2958 public void testGetGBBMacroExistingServiceServiceModelNotFound() throws Exception {
2959 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2960 ExecuteBuildingBlock.class);
2961 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2962 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2963 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2964 aaiServiceInstance.setModelVersionId("modelVersionId");
2966 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2967 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2969 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2970 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2972 expectedException.expect(ServiceModelNotFoundException.class);
2973 expectedException.expectMessage(
2974 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
2976 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2977 cloudConfiguration);
2981 public void testGetVnfId() {
2982 String expected = "vnfId";
2983 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
2984 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2985 InfraActiveRequests request = new InfraActiveRequests();
2986 request.setVnfId(expected);
2987 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2989 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2991 assertEquals("VnfId is set correctly", expected, actual);
2995 public void testCreateVfModule() {
2996 String vfModuleId = "vfModuleId";
2997 String instanceName = "vfModuleName";
2998 Map<String, String> cloudParams = new HashMap<>();
2999 cloudParams.put("param1", "param1Value");
3000 VfModule expected = new VfModule();
3001 expected.setVfModuleId(vfModuleId);
3002 expected.setVfModuleName(instanceName);
3003 expected.setCloudParams(cloudParams);
3004 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3005 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3006 List<Map<String, String>> instanceParams = new ArrayList<>();
3007 instanceParams.add(cloudParams);
3009 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
3011 assertThat(actual, sameBeanAs(expected));
3012 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3014 expected.getCloudParams().clear();
3015 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
3016 assertThat(actual, sameBeanAs(expected));
3020 public void testCreateVolumeGroup() {
3021 String volumeGroupId = "volumeGroupId";
3022 String instanceName = "vfModuleName";
3023 String vnfType = "vnfType";
3024 Map<String, String> cloudParams = new HashMap<>();
3025 cloudParams.put("param1", "param1Value");
3026 VolumeGroup expected = new VolumeGroup();
3027 expected.setVolumeGroupId(volumeGroupId);
3028 expected.setVolumeGroupName(instanceName);
3029 expected.setCloudParams(cloudParams);
3030 expected.setVnfType(vnfType);
3031 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3032 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3033 List<Map<String, String>> instanceParams = new ArrayList<>();
3034 instanceParams.add(cloudParams);
3036 VolumeGroup actual =
3037 SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
3039 assertThat(actual, sameBeanAs(expected));
3040 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3042 expected.getCloudParams().clear();
3043 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
3044 assertThat(actual, sameBeanAs(expected));
3048 public void testCreateNetwork() {
3049 String networkId = "networkId";
3050 String instanceName = "networkName";
3051 Map<String, String> cloudParams = new HashMap<>();
3052 cloudParams.put("param1", "param1Value");
3053 L3Network expected = new L3Network();
3054 expected.setNetworkId(networkId);
3055 expected.setNetworkName(instanceName);
3056 expected.setCloudParams(cloudParams);
3057 Platform platform = new Platform();
3058 platform.setPlatformName("platformName");
3059 expected.setPlatform(platform);
3060 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3061 lineOfBusiness.setLineOfBusinessName("lineOfBusiness");
3062 expected.setLineOfBusiness(lineOfBusiness);
3063 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3064 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3065 List<Map<String, String>> instanceParams = new ArrayList<>();
3066 instanceParams.add(cloudParams);
3067 org.onap.so.serviceinstancebeans.Platform platformRequest = new org.onap.so.serviceinstancebeans.Platform();
3068 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusinessRequest =
3069 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3070 lineOfBusinessRequest.setLineOfBusinessName("lineOfBusiness");
3071 platformRequest.setPlatformName("platformName");
3072 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3073 .setPlatform(platformRequest).setLineOfBusiness(lineOfBusinessRequest).build();
3075 SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams, parameter);
3077 assertThat(actual, sameBeanAs(expected));
3078 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
3080 expected.getCloudParams().clear();
3082 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null, parameter);
3083 assertThat(actual, sameBeanAs(expected));
3087 public void testCreateGenericVnf() {
3088 String vnfId = "vnfId";
3089 String instanceName = "vnfName";
3090 String vnfType = "vnfType";
3091 String platformName = "platformName";
3092 String lineOfBusinessName = "lineOfBusinessName";
3093 String productFamilyId = "productFamilyId";
3094 String applicationId = "applicationId";
3095 Platform platform = new Platform();
3096 platform.setPlatformName(platformName);
3097 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3098 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3099 Map<String, String> cloudParams = new HashMap<>();
3100 cloudParams.put("param1", "param1Value");
3101 GenericVnf expected = new GenericVnf();
3102 expected.setVnfId(vnfId);
3103 expected.setVnfName(instanceName);
3104 expected.setVnfType(vnfType);
3105 expected.setCloudParams(cloudParams);
3106 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3107 expected.setPlatform(platform);
3108 expected.setLineOfBusiness(lineOfBusiness);
3109 expected.setProvStatus("PREPROV");
3110 expected.setServiceId(productFamilyId);
3111 expected.setApplicationId(applicationId);
3112 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3113 List<Map<String, String>> instanceParams = new ArrayList<>();
3114 instanceParams.add(cloudParams);
3115 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
3116 platform.setPlatformName(platformName);
3117 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness =
3118 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3119 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3121 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
3122 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
3124 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
3125 requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
3127 assertThat(actual, sameBeanAs(expected));
3128 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
3130 expected.getCloudParams().clear();
3131 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
3132 vnfId, vnfType, null, productFamilyId, applicationId);
3133 assertThat(actual, sameBeanAs(expected));
3137 public void testMapCatalogVfModule() {
3138 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3139 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3140 VfModule vfModule = new VfModule();
3141 ModelInfo modelInfo = new ModelInfo();
3142 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3143 Service service = new Service();
3144 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3145 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3146 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3147 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3148 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
3149 service.getVnfCustomizations().add(vnfResourceCust);
3150 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3152 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3154 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3156 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3158 modelInfo.setModelCustomizationUuid(null);
3159 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
3161 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3163 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3167 public void testMapCatalogVfModuleIfNoVfUnderVnf() {
3168 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3169 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3170 VfModule vfModule = new VfModule();
3171 ModelInfo modelInfo = new ModelInfo();
3172 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3173 Service service = new Service();
3174 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3175 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3176 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3177 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3178 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3179 doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
3180 .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
3181 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3183 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3185 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3187 verify(SPY_bbInputSetupUtils, times(1))
3188 .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
3192 public void testPopulateVfModule() throws Exception {
3193 String vnfId = "vnfId";
3194 String vfModuleId = "vfModuleId";
3195 String volumeGroupId = "volumeGroupId";
3196 String vfModuleCustomizationId = "vfModuleCustomizationId";
3197 ModelInfo modelInfo = new ModelInfo();
3198 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3199 Service service = new Service();
3200 ServiceModel serviceModel = new ServiceModel();
3201 serviceModel.setCurrentService(service);
3202 String bbName = AssignFlows.VF_MODULE.toString();
3203 ServiceInstance serviceInstance = new ServiceInstance();
3204 GenericVnf vnf = new GenericVnf();
3205 vnf.setVnfId(vnfId);
3206 VolumeGroup volumeGroup = new VolumeGroup();
3207 volumeGroup.setVolumeGroupId(volumeGroupId);
3208 vnf.getVolumeGroups().add(volumeGroup);
3209 serviceInstance.getVnfs().add(vnf);
3210 VfModule vfModule1 = new VfModule();
3211 vfModule1.setVfModuleId("vfModuleId1");
3212 VfModule vfModule2 = new VfModule();
3213 vfModule2.setVfModuleId("vfModuleId2");
3214 vnf.getVfModules().add(vfModule1);
3215 vnf.getVfModules().add(vfModule2);
3216 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3217 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3218 String resourceId = vfModuleId;
3219 RelatedInstanceList[] relatedInstanceList = null;
3220 String instanceName = "vfModuleName";
3221 List<Map<String, String>> instanceParams = null;
3222 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3224 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3225 vnfAAI.setModelCustomizationId("vnfModelCustId");
3226 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3227 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3228 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3229 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3231 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3232 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3233 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3234 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3235 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3236 isA(Service.class));
3237 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3238 isA(Service.class), isA(String.class));
3240 SPY_bbInputSetup.populateVfModule(new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3241 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
3242 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3243 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3244 .setCloudConfiguration(cloudConfiguration).setServiceModel(serviceModel).build());
3246 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3247 isA(Service.class), isA(String.class));
3248 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3249 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3250 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3251 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3255 public void testPopulateVfModuleIsReplaceCorrectPopulationOfVfs() throws Exception {
3256 String vnfId = "vnfId";
3257 String vfModuleId = "vfModuleId";
3258 String volumeGroupId = "volumeGroupId";
3259 String vfModuleCustomizationId = "vfModuleCustomizationId";
3260 ModelInfo modelInfo = new ModelInfo();
3261 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3262 Service currentService = new Service();
3263 currentService.setModelUUID("currentUUID");
3264 Service newService = new Service();
3265 newService.setModelUUID("newUUID");
3266 ServiceModel serviceModel = new ServiceModel();
3267 serviceModel.setCurrentService(currentService);
3268 serviceModel.setNewService(newService);
3269 String bbName = "ActivateVfModuleBB";
3270 ServiceInstance serviceInstance = new ServiceInstance();
3271 GenericVnf vnf = new GenericVnf();
3272 vnf.setVnfId(vnfId);
3273 VolumeGroup volumeGroup = new VolumeGroup();
3274 volumeGroup.setVolumeGroupId(volumeGroupId);
3275 vnf.getVolumeGroups().add(volumeGroup);
3276 serviceInstance.getVnfs().add(vnf);
3277 VfModule vfModule1 = new VfModule();
3278 vfModule1.setVfModuleId("vfModuleId1");
3279 VfModule vfModule2 = new VfModule();
3280 vfModule2.setVfModuleId("vfModuleId2");
3281 vnf.getVfModules().add(vfModule1);
3282 vnf.getVfModules().add(vfModule2);
3283 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3284 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3285 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId1");
3286 String resourceId = vfModuleId;
3287 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3288 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3289 RelatedInstance relatedInstance = new RelatedInstance();
3290 relatedInstance.setInstanceId(vnfId);
3292 ModelInfo vnfModelInfo = new ModelInfo();
3293 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3294 vnfModelInfo.setModelType(ModelType.vnf);
3295 relatedInstance.setModelInfo(vnfModelInfo);
3296 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3297 relatedInstanceList[0] = relatedInstanceListObj;
3299 String instanceName = "vfModuleName";
3300 List<Map<String, String>> instanceParams = null;
3301 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3303 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3304 vnfAAI.setModelCustomizationId("vnfModelCustId");
3305 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3306 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3307 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3308 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3310 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3311 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3312 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3313 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3314 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3315 isA(Service.class));
3316 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3317 isA(Service.class), isA(String.class));
3319 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3320 .setService(newService).setBbName(bbName).setServiceInstance(serviceInstance)
3321 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3322 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3323 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3324 SPY_bbInputSetup.populateVfModule(parameter);
3326 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3327 eq(currentService), eq("vnfModelCustId"));
3328 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), eq(newService),
3329 eq("vnfCustomizationId"));
3330 assertEquals("Lookup Key Map populated with VfModule Id", "vfModuleId1",
3331 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3332 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3333 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3337 public void testPopulateVfModuleIsReplace() throws Exception {
3338 String vnfId = "vnfId";
3339 String vfModuleId = "vfModuleId";
3340 String volumeGroupId = "volumeGroupId";
3341 String vfModuleCustomizationId = "vfModuleCustomizationId";
3342 ModelInfo modelInfo = new ModelInfo();
3343 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3344 Service currentService = new Service();
3345 Service newService = new Service();
3346 ServiceModel serviceModel = new ServiceModel();
3347 serviceModel.setCurrentService(currentService);
3348 currentService.setModelUUID("currentUUID");
3349 serviceModel.setNewService(newService);
3350 currentService.setModelUUID("newUUID");
3351 String bbName = AssignFlows.VF_MODULE.toString();
3352 ServiceInstance serviceInstance = new ServiceInstance();
3353 GenericVnf vnf = new GenericVnf();
3354 vnf.setVnfId(vnfId);
3355 VolumeGroup volumeGroup = new VolumeGroup();
3356 volumeGroup.setVolumeGroupId(volumeGroupId);
3357 vnf.getVolumeGroups().add(volumeGroup);
3358 serviceInstance.getVnfs().add(vnf);
3359 VfModule vfModule1 = new VfModule();
3360 vfModule1.setVfModuleId("vfModuleId1");
3361 VfModule vfModule2 = new VfModule();
3362 vfModule2.setVfModuleId("vfModuleId2");
3363 vnf.getVfModules().add(vfModule1);
3364 vnf.getVfModules().add(vfModule2);
3365 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3366 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3367 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModuleId);
3368 String resourceId = vfModuleId;
3369 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3370 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3371 RelatedInstance relatedInstance = new RelatedInstance();
3372 relatedInstance.setInstanceId(vnfId);
3374 ModelInfo vnfModelInfo = new ModelInfo();
3375 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3376 vnfModelInfo.setModelType(ModelType.vnf);
3377 relatedInstance.setModelInfo(vnfModelInfo);
3378 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3379 relatedInstanceList[0] = relatedInstanceListObj;
3381 String instanceName = "vfModuleName";
3382 List<Map<String, String>> instanceParams = null;
3383 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3385 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3386 vnfAAI.setModelCustomizationId("vnfModelCustId");
3387 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3388 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3389 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3390 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3392 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3393 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3394 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3395 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3396 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3397 isA(Service.class));
3398 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3399 isA(Service.class), isA(String.class));
3401 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3402 .setService(newService).setServiceInstance(serviceInstance).setBbName(bbName)
3403 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3404 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3405 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3408 SPY_bbInputSetup.populateVfModule(parameter);
3410 verify(SPY_bbInputSetup, times(2)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3411 eq(serviceModel.getCurrentService()), isA(String.class));
3412 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3413 eq(serviceModel.getNewService()), isA(String.class));
3414 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3415 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3416 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3417 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3421 public void testGettingVnfcToConfiguration() throws Exception {
3423 String vnfcName = "vnfcName";
3424 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
3425 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfcName);
3426 AAIResultWrapper configurationWrapper =
3427 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
3429 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3430 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3431 Assert.assertNull(vnfc);
3433 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3434 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3435 Assert.assertNotNull(vnfc);