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();
1340 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1341 configResourceKeys.setVnfcName(vnfcName);
1342 Vnfc vnfc = new Vnfc();
1343 vnfc.setVnfcName(vnfcName);
1344 RequestDetails requestDetails = new RequestDetails();
1345 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1346 configResourceKeys);
1347 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1348 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1349 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1350 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1351 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails).build();
1352 SPY_bbInputSetup.populateConfiguration(parameter);
1353 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1354 configResourceKeys);
1356 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1358 SPY_bbInputSetup.populateConfiguration(parameter);
1359 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
1360 configResourceKeys);
1362 instanceName = "configurationName2";
1363 resourceId = "resourceId2";
1364 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1365 parameter.setInstanceName(instanceName);
1366 parameter.setResourceId(resourceId);
1367 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1368 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1369 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
1370 configResourceKeys);
1371 SPY_bbInputSetup.populateConfiguration(parameter);
1372 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
1373 configResourceKeys);
1377 public void testMapCatalogConfiguration() {
1378 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1379 L3Network network = new L3Network();
1381 RequestDetails requestDetails = new RequestDetails();
1382 ModelInfo modelInfo = new ModelInfo();
1383 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1384 requestDetails.setModelInfo(modelInfo);
1385 Service service = new Service();
1386 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1387 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1388 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1390 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1392 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1394 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1398 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1399 String instanceName = "configurationName";
1400 ModelInfo modelInfo = new ModelInfo();
1401 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1403 ServiceInstance serviceInstance = new ServiceInstance();
1404 Configuration configuration = new Configuration();
1405 configuration.setConfigurationId("configurationId");
1406 configuration.setConfigurationName("configurationName");
1407 configuration.setConfigurationSubType("Fabric Config");
1408 serviceInstance.getConfigurations().add(configuration);
1409 String resourceId = "configurationId";
1410 String vnfcName = "vnfcName";
1412 Service service = mapper.readValue(
1413 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1414 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1415 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1416 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1417 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1418 configResourceKeys.setVnfcName(vnfcName);
1419 Vnfc vnfc = new Vnfc();
1420 vnfc.setVnfcName(vnfcName);
1421 RequestDetails requestDetails = new RequestDetails();
1423 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1424 new CvnfcConfigurationCustomization();
1425 ConfigurationResource configurationResource = new ConfigurationResource();
1426 configurationResource.setModelUUID("modelUUID");
1427 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1428 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1430 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1431 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1432 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1433 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1434 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1435 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails).build();
1436 SPY_bbInputSetup.populateConfiguration(parameter);
1437 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1438 configResourceKeys);
1442 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1443 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1444 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1445 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1446 String instanceName = "vnfName";
1447 ModelInfo modelInfo = new ModelInfo();
1448 modelInfo.setModelType(ModelType.vnf);
1449 ServiceInstance serviceInstance = new ServiceInstance();
1450 GenericVnf vnf = new GenericVnf();
1451 vnf.setVnfId("genericVnfId");
1452 vnf.setVnfName("vnfName");
1453 serviceInstance.getVnfs().add(vnf);
1454 String vnfType = "vnfType";
1455 String applicationId = "applicationId";
1456 RequestDetails requestDetails =
1457 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1459 Service service = mapper.readValue(
1460 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1461 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1462 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1463 String bbName = AssignFlows.VNF.toString();
1465 Platform expectedPlatform = new Platform();
1466 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1467 String resourceId = "123";
1468 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1469 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1470 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1471 vnfAAI.setModelCustomizationId("modelCustId");
1472 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1473 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1474 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1475 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1476 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1477 new org.onap.so.db.catalog.beans.InstanceGroup();
1478 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1479 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1480 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1481 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1482 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1483 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1484 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1485 SPY_bbInputSetup.populateGenericVnf(parameter);
1487 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1489 SPY_bbInputSetup.populateGenericVnf(parameter);
1490 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1492 instanceName = "vnfName2";
1493 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1494 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1496 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1497 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1499 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1501 SPY_bbInputSetup.populateGenericVnf(parameter);
1502 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1503 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1504 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1506 assertEquals("modelCustId", modelInfo.getModelCustomizationUuid());
1511 public void testPopulateGenericVnfReplace() throws JsonParseException, JsonMappingException, IOException {
1512 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1513 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1514 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1515 String instanceName = "vnfName";
1516 ModelInfo modelInfo = new ModelInfo();
1517 modelInfo.setModelType(ModelType.vnf);
1518 ServiceInstance serviceInstance = new ServiceInstance();
1519 GenericVnf vnf = new GenericVnf();
1520 vnf.setVnfId("genericVnfId");
1521 vnf.setVnfName("vnfName");
1522 serviceInstance.getVnfs().add(vnf);
1523 String vnfType = "vnfType";
1524 String applicationId = "applicationId";
1525 RequestDetails requestDetails =
1526 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1528 Service service = mapper.readValue(
1529 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1530 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1531 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1532 String bbName = AssignFlows.VNF.toString();
1534 String resourceId = "123";
1535 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1536 vnfAAI.setModelCustomizationId("modelCustId");
1537 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1538 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1539 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1540 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1541 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1542 new org.onap.so.db.catalog.beans.InstanceGroup();
1543 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1545 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1546 .setInstanceName(instanceName).setPlatform(platform).setLineOfBusiness(lineOfBusiness)
1547 .setService(service).setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1548 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1549 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1550 .setApplicationId(applicationId).setIsReplace(true).build();
1552 SPY_bbInputSetup.populateGenericVnf(parameter);
1554 assertEquals("my-test-uuid", modelInfo.getModelCustomizationUuid());
1559 public void testMapVnfcCollectionInstanceGroup() {
1560 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1561 GenericVnf genericVnf = new GenericVnf();
1562 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1563 Service service = Mockito.mock(Service.class);
1564 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1565 instanceGroup.setModelUUID("modelUUID");
1566 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1567 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1568 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1569 vnfcInstanceGroupCust.setFunction("function");
1570 vnfcInstanceGroupCust.setDescription("description");
1571 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1573 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1574 modelInfoInstanceGroup.setModelUUID("modelUUID");
1575 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1576 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1577 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1578 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null,
1581 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1583 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1587 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1588 throws JsonParseException, JsonMappingException, IOException {
1589 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1590 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1591 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1592 String instanceName = "vnfName";
1593 ModelInfo modelInfo = new ModelInfo();
1594 modelInfo.setModelType(ModelType.vnf);
1596 ServiceInstance serviceInstance = new ServiceInstance();
1597 GenericVnf vnf = new GenericVnf();
1598 vnf.setVnfId("genericVnfId");
1599 vnf.setVnfName("vnfName");
1600 serviceInstance.getVnfs().add(vnf);
1601 String vnfType = null;
1602 RequestDetails requestDetails =
1603 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1605 Service service = mapper.readValue(
1606 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1607 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1608 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1609 String bbName = AssignFlows.VNF.toString();
1611 Platform expectedPlatform = new Platform();
1612 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1613 String resourceId = "123";
1614 String applicationId = "applicationId";
1615 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1616 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1617 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1618 vnfAAI.setModelCustomizationId("modelCustId");
1619 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1620 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1621 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1622 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1623 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1624 new org.onap.so.db.catalog.beans.InstanceGroup();
1625 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1626 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1627 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1628 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1629 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1630 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1631 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1632 SPY_bbInputSetup.populateGenericVnf(parameter);
1634 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1636 SPY_bbInputSetup.populateGenericVnf(parameter);
1637 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1639 instanceName = "vnfName2";
1640 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1641 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1643 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1644 vnfAAI.setModelCustomizationId("modelCustId2");
1645 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1646 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1647 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1648 SPY_bbInputSetup.populateGenericVnf(parameter);
1649 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1650 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1651 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1655 public void testMapCatalogVnf() {
1656 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1657 GenericVnf genericVnf = new GenericVnf();
1658 RequestDetails requestDetails = new RequestDetails();
1659 ModelInfo modelInfo = new ModelInfo();
1660 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1661 requestDetails.setModelInfo(modelInfo);
1662 Service service = new Service();
1663 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1664 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1665 service.getVnfCustomizations().add(resourceCust);
1666 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1668 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1670 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1672 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1676 public void testMapCatalogCollectionAndInstanceGroup() {
1677 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1678 modelInfoCollection.setCollectionFunction("collectionFunction");
1679 modelInfoCollection.setCollectionRole("collectionRole");
1680 modelInfoCollection.setCollectionType("collectionType");
1681 modelInfoCollection.setDescription("description");
1682 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1683 modelInfoCollection.setQuantity(0);
1685 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1686 modelInfoInstanceGroup.setFunction("function");
1687 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1688 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1689 modelInfoInstanceGroup.setModelUUID("modelUUID");
1690 modelInfoInstanceGroup.setType("VNFC");
1691 modelInfoInstanceGroup.setDescription("description");
1693 InstanceGroup instanceGroup = new InstanceGroup();
1694 Collection collection = new Collection();
1695 collection.setInstanceGroup(instanceGroup);
1697 CollectionResource collectionResource = new CollectionResource();
1698 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1699 new org.onap.so.db.catalog.beans.InstanceGroup();
1700 collectionResource.setToscaNodeType("NetworkCollection");
1701 collectionResource.setInstanceGroup(catalogInstanceGroup);
1703 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1704 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1705 collectionCust.setCollectionResource(collectionResource);
1707 Service service = new Service();
1708 service.getCollectionResourceCustomizations().add(collectionCust);
1709 ServiceInstance serviceInstance = new ServiceInstance();
1710 serviceInstance.setCollection(collection);
1712 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1713 CollectionResourceInstanceGroupCustomization instanceGroupCust =
1714 new CollectionResourceInstanceGroupCustomization();
1715 instanceGroupCust.setFunction("function");
1716 instanceGroupCust.setDescription("description");
1718 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1719 collectionResource);
1721 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer)
1722 .mapCatalogInstanceGroupToInstanceGroup(collectionCust, catalogInstanceGroup);
1724 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1725 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1726 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1728 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1729 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1733 public void testAddRelationshipsToSI() throws Exception {
1734 ServiceInstance serviceInstance = new ServiceInstance();
1735 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1736 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1738 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1739 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1740 relationshipList.getRelationship().add(relationship);
1741 serviceInstanceAAI.setRelationshipList(relationshipList);
1743 Map<String, String> uriKeys = new HashMap<>();
1744 uriKeys.put("global-customer-id", "globalCustomerId");
1745 uriKeys.put("service-type", "serviceType");
1748 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1749 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1750 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1751 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1752 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1754 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1756 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1757 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1758 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1759 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1760 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1761 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1765 public void testMapConfigurations() throws JsonProcessingException {
1766 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1767 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1768 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1769 relationshipList.getRelationship().add(relationship);
1770 expectedAAI.setRelationshipList(relationshipList);
1772 Configuration expected = new Configuration();
1773 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1774 AAIResultWrapper configurationWrapper =
1775 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1777 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1778 doReturn(expected).when(bbInputSetupMapperLayer)
1779 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1781 List<Configuration> configurations = new ArrayList<>();
1783 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), configurations);
1785 assertEquals(expected, configurations.get(0));
1789 public void testMapGenericVnfs() throws JsonProcessingException {
1790 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1791 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1792 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1793 relationshipList.getRelationship().add(relationship);
1794 expectedAAI.setRelationshipList(relationshipList);
1796 GenericVnf expected = new GenericVnf();
1797 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1798 AAIResultWrapper vnfWrapper =
1799 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1801 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1802 doReturn(expected).when(bbInputSetupMapperLayer)
1803 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1804 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1805 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1806 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1808 List<GenericVnf> genericVnfs = new ArrayList<>();
1810 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), genericVnfs);
1812 assertEquals(expected, genericVnfs.get(0));
1813 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1814 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1815 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1819 public void testMapPnfs() throws JsonProcessingException {
1820 org.onap.aai.domain.yang.Pnf expectedAAI = new org.onap.aai.domain.yang.Pnf();
1821 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1822 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1823 relationshipList.getRelationship().add(relationship);
1824 expectedAAI.setRelationshipList(relationshipList);
1826 Pnf expected = new Pnf();
1827 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.PNF, "pnfId");
1828 AAIResultWrapper pnfWrapper =
1829 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1831 doReturn(pnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1832 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPnfIntoPnf(isA(org.onap.aai.domain.yang.Pnf.class));
1834 List<Pnf> pnfs = new ArrayList<>();
1836 SPY_bbInputSetup.mapPnfs(Arrays.asList(aaiResourceUri), pnfs);
1838 assertEquals(expected, pnfs.get(0));
1842 public void testMapVolumeGroups() throws JsonProcessingException {
1843 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1845 VolumeGroup expected = new VolumeGroup();
1846 AAIResultWrapper vnfWrapper =
1847 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1849 doReturn(expected).when(bbInputSetupMapperLayer)
1850 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1852 List<VolumeGroup> volumeGroupsList =
1853 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}));
1855 assertEquals(expected, volumeGroupsList.get(0));
1859 public void testMapLineOfBusiness() throws JsonProcessingException {
1860 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1862 LineOfBusiness expected = new LineOfBusiness();
1863 AAIResultWrapper vnfWrapper =
1864 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1866 doReturn(expected).when(bbInputSetupMapperLayer)
1867 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1869 GenericVnf vnf = new GenericVnf();
1871 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1873 assertEquals(expected, vnf.getLineOfBusiness());
1877 public void testMapPlatform() throws JsonProcessingException {
1878 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1880 Platform expected = new Platform();
1881 AAIResultWrapper vnfWrapper =
1882 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1884 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1886 GenericVnf vnf = new GenericVnf();
1888 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1890 assertEquals(expected, vnf.getPlatform());
1894 public void testMapCollection() throws JsonProcessingException {
1895 List<AAIResultWrapper> collections = new ArrayList<>();
1896 ServiceInstance serviceInstance = new ServiceInstance();
1898 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1899 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList =
1900 new org.onap.aai.domain.yang.RelationshipList();
1901 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship =
1902 new org.onap.aai.domain.yang.Relationship();
1903 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1904 aaiCollection.setRelationshipList(collectionRelationshipList);
1906 collections.add(new AAIResultWrapper(
1907 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1909 Collection collection = new Collection();
1910 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1911 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1912 InstanceGroup instanceGroup = new InstanceGroup();
1913 instanceGroupsList.add(instanceGroup);
1914 NetworkCollectionResourceCustomization networkCollectionCust =
1915 Mockito.mock(NetworkCollectionResourceCustomization.class);
1916 CollectionResource collectionResource = new CollectionResource();
1917 doReturn(collection).when(bbInputSetupMapperLayer)
1918 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1919 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1920 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils)
1921 .getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1922 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1923 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer)
1924 .mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1926 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1928 assertEquals(collection, serviceInstance.getCollection());
1929 assertEquals(instanceGroup, collection.getInstanceGroup());
1931 instanceGroupsList.clear();
1932 collection = new Collection();
1934 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1935 assertEquals(collection, serviceInstance.getCollection());
1936 assertNull(collection.getInstanceGroup());
1940 public void testMapL3Networks() throws JsonProcessingException {
1941 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1942 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1943 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1944 relationshipList.getRelationship().add(relationship);
1945 expectedAAI.setRelationshipList(relationshipList);
1947 L3Network expected = new L3Network();
1948 List<L3Network> l3Networks = new ArrayList<>();
1949 AAIResultWrapper l3NetworksWrapper =
1950 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1951 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1953 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1954 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1955 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1956 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1957 eq(expected.getContrailNetworkRouteTableReferences()));
1959 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), l3Networks);
1961 assertEquals(expected, l3Networks.get(0));
1962 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1963 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1964 eq(expected.getContrailNetworkRouteTableReferences()));
1968 public void testMapRouteTableReferences() throws JsonProcessingException {
1969 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1971 RouteTableReference expected = new RouteTableReference();
1972 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1973 AAIResultWrapper vnfWrapper =
1974 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1976 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1977 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1979 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}),
1980 contrailNetworkRouteTableReferences);
1982 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1986 public void testMapOwningEntity() throws JsonProcessingException {
1987 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1989 OwningEntity expected = new OwningEntity();
1990 AAIResultWrapper vnfWrapper =
1991 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1993 doReturn(expected).when(bbInputSetupMapperLayer)
1994 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1996 ServiceInstance serviceInstance = new ServiceInstance();
1998 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2000 assertEquals(expected, serviceInstance.getOwningEntity());
2004 public void testMapProject() throws JsonProcessingException {
2005 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
2007 Project expected = new Project();
2008 AAIResultWrapper vnfWrapper =
2009 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2011 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
2013 ServiceInstance serviceInstance = new ServiceInstance();
2015 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2017 assertEquals(expected, serviceInstance.getProject());
2021 public void testMapCustomer() throws Exception {
2022 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
2023 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI =
2024 new org.onap.aai.domain.yang.ServiceSubscription();
2026 Customer expected = new Customer();
2027 ServiceSubscription serviceSubscription = new ServiceSubscription();
2029 String globalCustomerId = "globalCustomerId";
2030 String subscriptionServiceType = "subscriptionServiceType";
2032 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
2033 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
2034 subscriptionServiceType);
2035 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
2036 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
2037 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
2039 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
2041 assertEquals(expected, actual);
2042 assertEquals(serviceSubscription, expected.getServiceSubscription());
2046 public void testPopulateLookupKeyMapWithIds() {
2047 Map<ResourceKey, String> expected = new HashMap<>();
2048 Map<ResourceKey, String> actual = new HashMap<>();
2049 String serviceInstanceId = "serviceInstanceId";
2050 String networkId = "networkId";
2051 String vnfId = "vnfId";
2052 String pnfId = "pnfId";
2053 String vfModuleId = "vfModuleId";
2054 String volumeGroupId = "volumeGroupId";
2055 String configurationId = "configurationId";
2056 String instanceGroupId = "instancegroupId";
2058 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
2059 expected.put(ResourceKey.NETWORK_ID, networkId);
2060 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2061 expected.put(ResourceKey.PNF, pnfId);
2062 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
2063 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
2064 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
2065 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
2067 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2068 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
2069 workflowResourceIds.setNetworkId(networkId);
2070 workflowResourceIds.setVnfId(vnfId);
2071 workflowResourceIds.setPnfId(pnfId);
2072 workflowResourceIds.setVfModuleId(vfModuleId);
2073 workflowResourceIds.setVolumeGroupId(volumeGroupId);
2074 workflowResourceIds.setConfigurationId(configurationId);
2075 workflowResourceIds.setInstanceGroupId(instanceGroupId);
2077 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
2079 assertThat(actual, sameBeanAs(expected));
2083 public void testGBBMacroNoUserParamsVrfConfiguration() throws Exception {
2084 String resourceId = "123";
2085 String vnfType = "vnfType";
2086 String requestAction = "createInstance";
2087 Service service = Mockito.mock(Service.class);
2088 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2089 GeneralBuildingBlock.class);
2090 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2091 ExecuteBuildingBlock.class);
2092 RequestDetails requestDetails = mapper
2093 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacroVrf.json"), RequestDetails.class);
2094 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2096 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2097 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2098 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2099 buildingBlock.setBpmnFlowName("AssignVrfConfigurationBB");
2100 buildingBlock.setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2102 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2103 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2104 doReturn(service).when(SPY_bbInputSetupUtils)
2105 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2107 RelatedInstance relatedVpnBinding = new RelatedInstance();
2108 relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
2109 RelatedInstance relatedLocalNetwork = new RelatedInstance();
2110 relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
2111 org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
2112 aaiVpnBinding.setVpnId("vpnBindingId");
2113 org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
2114 aaiLocalNetwork.setNetworkId("localNetworkId");
2115 Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
2116 Optional.of(new org.onap.aai.domain.yang.VpnBinding());
2117 aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
2118 ServiceProxy proxy = new ServiceProxy();
2119 proxy.setType("transport");
2120 proxy.setServiceInstance(new ServiceInstance());
2121 proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2122 proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
2123 doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2124 ModelType.vpnBinding);
2125 doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2127 doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
2128 doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
2129 doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
2130 doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
2132 Configuration configuration = new Configuration();
2133 configuration.setConfigurationId("configurationId");
2134 gBB.getServiceInstance().getConfigurations().add(configuration);
2135 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
2136 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
2137 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2138 configurationCustList.add(configurationCust);
2139 doNothing().when(SPY_bbInputSetup).populateConfiguration(any(BBInputSetupParameter.class));
2141 gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2142 verify(SPY_bbInputSetup, times(1)).populateConfiguration(any(BBInputSetupParameter.class));
2143 assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
2144 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
2145 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
2147 assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
2151 public void testGetServiceProxy() {
2152 ServiceProxy expected = new ServiceProxy();
2153 expected.setType("TRANSPORT");
2154 expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
2155 expected.getModelInfoServiceProxy().setModelUuid("modelUUID");
2156 expected.getModelInfoServiceProxy().setModelInstanceName("modelInstanceName");
2157 expected.setServiceInstance(new ServiceInstance());
2158 expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2159 expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
2160 expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
2161 Service service = new Service();
2162 ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
2163 serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
2164 serviceProxyCatalog.setModelInstanceName("modelInstanceName");
2165 Service sourceService = new Service();
2166 sourceService.setModelUUID("modelUUID");
2167 sourceService.setServiceType("TRANSPORT");
2168 serviceProxyCatalog.setSourceService(sourceService);
2169 service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
2170 service.getServiceProxyCustomizations().add(serviceProxyCatalog);
2171 ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
2172 assertThat(actual, sameBeanAs(expected));
2176 public void testgetGBBMacroCloudConfiguration() throws Exception {
2177 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2178 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2179 CloudConfiguration cloudConfig = null;
2180 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
2181 aaiCloudRegion.setCloudOwner("test-owner-name");
2182 Resources resources = serviceMacro.getResources();
2183 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
2184 CloudRegion expected = new CloudRegion();
2185 expected.setLcpCloudRegionId("mdt1");
2186 expected.setCloudOwner("test-owner-name");
2187 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
2189 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2190 assertThat(actual, sameBeanAs(expected));
2192 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroVnfs.json"),
2193 org.onap.so.serviceinstancebeans.Service.class);
2194 resources = serviceMacro.getResources();
2196 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2197 assertThat(actual, sameBeanAs(expected));
2199 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNetworks.json"),
2200 org.onap.so.serviceinstancebeans.Service.class);
2201 resources = serviceMacro.getResources();
2203 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2204 assertThat(actual, sameBeanAs(expected));
2206 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"),
2207 org.onap.so.serviceinstancebeans.Service.class);
2208 resources = serviceMacro.getResources();
2210 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2215 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
2216 String resourceId = "123";
2217 String vnfType = "vnfType";
2218 String requestAction = "createInstance";
2219 Service service = Mockito.mock(Service.class);
2220 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2221 GeneralBuildingBlock.class);
2222 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2223 ExecuteBuildingBlock.class);
2224 RequestDetails requestDetails = mapper
2225 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2226 requestDetails.getRequestParameters().getUserParams().clear();
2227 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2228 aaiVnf.setModelCustomizationId("modelCustId");
2229 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2230 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2231 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2232 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2234 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2235 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2236 doReturn(service).when(SPY_bbInputSetupUtils)
2237 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2239 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2240 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2241 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2244 @Test(expected = Exception.class)
2245 public void testgetGBBMacroException() throws Exception {
2246 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2247 ExecuteBuildingBlock.class);
2248 RequestDetails requestDetails = mapper
2249 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2250 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2251 String resourceId = "123";
2252 String vnfType = "vnfType";
2253 String requestAction = "createInstance";
2255 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2256 buildingBlock.setBpmnFlowName("Network").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2258 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2262 public void test_getGBBMacroForVnfTypeNull_populateL3Network_shouldBeCalled() throws Exception {
2264 String resourceId = "123";
2265 String vnfType = "null";
2266 String requestAction = "createInstance";
2267 Service service = Mockito.mock(Service.class);
2268 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2269 GeneralBuildingBlock.class);
2270 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2272 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2273 RequestDetails requestDetails = mapper
2274 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2275 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2276 ExecuteBuildingBlock.class);
2277 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2278 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2279 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2280 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2282 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2283 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2284 doReturn(service).when(SPY_bbInputSetupUtils)
2285 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2287 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2289 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(BBInputSetupParameter.class));
2293 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2294 String resourceId = "123";
2295 String vnfType = "vnfType";
2296 String requestAction = "deactivateInstance";
2297 Service service = Mockito.mock(Service.class);
2298 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2299 GeneralBuildingBlock.class);
2300 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2301 ExecuteBuildingBlock.class);
2302 RequestDetails requestDetails = mapper
2303 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2304 requestDetails.getRequestParameters().setUserParams(null);
2305 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2306 aaiVnf.setModelCustomizationId("modelCustId");
2307 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2308 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2309 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2310 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2311 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2312 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2313 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2314 buildingBlock.setBpmnFlowName("DeactivateServiceInstanceBB").setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2316 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2317 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2318 doReturn(service).when(SPY_bbInputSetupUtils)
2319 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2321 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2322 requestAction, resourceId, vnfType);
2323 assertThat(actual, sameBeanAs(gBB));
2327 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled() throws Exception {
2329 String resourceId = "123";
2330 String vnfType = "vnfType";
2331 String requestAction = "createInstance";
2332 Service service = Mockito.mock(Service.class);
2333 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2334 GeneralBuildingBlock.class);
2335 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2336 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2337 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2338 networkCustList.add(networkCust);
2340 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2341 RequestDetails requestDetails = mapper
2342 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2343 requestDetails.getRequestParameters().setUserParams(null);
2344 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2345 ExecuteBuildingBlock.class);
2346 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2347 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2348 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2349 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2351 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2352 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2353 doReturn(service).when(SPY_bbInputSetupUtils)
2354 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2355 doReturn(networkCustList).when(service).getNetworkCustomizations();
2356 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2357 doNothing().when(SPY_bbInputSetup).populateL3Network(any(BBInputSetupParameter.class));
2359 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2361 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2362 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2366 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLink() throws Exception {
2368 String resourceId = "123";
2369 String vnfType = "vnfType";
2370 String requestAction = "createInstance";
2371 Service service = Mockito.mock(Service.class);
2372 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2373 GeneralBuildingBlock.class);
2374 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2375 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2376 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2377 networkCustList.add(networkCust);
2378 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2379 Mockito.mock(CollectionNetworkResourceCustomization.class);
2380 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2381 aaiVnf.setModelCustomizationId("modelCustId");
2382 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2383 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2385 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2386 RequestDetails requestDetails = mapper
2387 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2388 requestDetails.getRequestParameters().setUserParams(null);
2389 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2390 ExecuteBuildingBlock.class);
2391 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2392 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2393 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2394 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(true);
2396 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2397 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2398 doReturn(service).when(SPY_bbInputSetupUtils)
2399 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2400 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2401 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2402 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer)
2403 .mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2404 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer)
2405 .mapCatalogNetworkToNetwork(networkResourceCustomization);
2407 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2409 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2410 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2414 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLinkAndOtherFlowName()
2417 String otherFlowName = "CreateNetworkBB";
2418 String resourceId = "123";
2419 String vnfType = "vnfType";
2420 String requestAction = "createInstance";
2421 Service service = Mockito.mock(Service.class);
2422 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2423 GeneralBuildingBlock.class);
2424 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2425 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2426 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2427 networkCustList.add(networkCust);
2428 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2429 Mockito.mock(CollectionNetworkResourceCustomization.class);
2431 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2432 RequestDetails requestDetails = mapper
2433 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2434 requestDetails.getRequestParameters().setUserParams(null);
2435 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2436 ExecuteBuildingBlock.class);
2437 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2438 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2439 buildingBlock.setBpmnFlowName(otherFlowName).setKey("ab153b6e-c364-44c0-bef6-1f2982117f04")
2440 .setIsVirtualLink(true);
2442 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2443 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2444 doReturn(service).when(SPY_bbInputSetupUtils)
2445 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2446 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2447 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2449 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2451 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2452 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2455 @Test(expected = IllegalArgumentException.class)
2456 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2457 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2458 GeneralBuildingBlock.class);
2459 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2460 ExecuteBuildingBlock.class);
2461 RequestDetails requestDetails = mapper
2462 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2463 requestDetails.getRequestParameters().setUserParams(null);
2464 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2465 aaiVnf.setModelCustomizationId("modelCustId");
2466 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2467 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2468 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2469 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2470 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2471 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2472 String resourceId = "123";
2473 String vnfType = "vnfType";
2474 Service service = Mockito.mock(Service.class);
2475 String requestAction = "assignInstance";
2476 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2477 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2478 doReturn(service).when(SPY_bbInputSetupUtils)
2479 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2480 String generatedId = "12131";
2482 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2486 public void test_getGBBMacroNoUserParamsExistingService_forCatalogNetwork() throws Exception {
2488 String requestAction = "unassignInstance";
2489 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2490 GeneralBuildingBlock.class);
2491 L3Network network = new L3Network();
2492 network.setNetworkId("networkId");
2493 gBB.getServiceInstance().getNetworks().add(network);
2494 ServiceInstance serviceInstance = gBB.getServiceInstance();
2495 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2496 ExecuteBuildingBlock.class);
2497 RequestDetails requestDetails = mapper
2498 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2499 requestDetails.getRequestParameters().setUserParams(null);
2500 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2501 Service service = Mockito.mock(Service.class);
2502 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2503 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2504 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2505 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2506 aaiNetwork.setModelCustomizationId("modelCustId");
2508 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2509 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2510 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2511 buildingBlock.setBpmnFlowName("DeleteNetworkBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2513 aaiServiceInstance.setModelVersionId("modelVersionId");
2514 doReturn(service).when(SPY_bbInputSetupUtils)
2515 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2516 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2517 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2518 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2519 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2520 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2521 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2522 any(Service.class));
2524 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2525 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2527 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2528 any(Service.class));
2532 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
2534 String requestAction = "unassignInstance";
2535 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2536 GeneralBuildingBlock.class);
2537 L3Network network = new L3Network();
2538 network.setNetworkId("networkId");
2539 gBB.getServiceInstance().getNetworks().add(network);
2540 ServiceInstance serviceInstance = gBB.getServiceInstance();
2541 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2542 ExecuteBuildingBlock.class);
2543 RequestDetails requestDetails = mapper
2544 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2545 requestDetails.getRequestParameters().setUserParams(null);
2546 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2547 Service service = Mockito.mock(Service.class);
2548 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2549 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2550 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2551 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2552 aaiNetwork.setModelCustomizationId("modelCustId");
2553 GenericVnf vnf = new GenericVnf();
2554 vnf.setVnfId("vnfId");
2555 gBB.getServiceInstance().getVnfs().add(vnf);
2556 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2557 aaiVnf.setModelCustomizationId("modelCustId");
2559 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2560 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2561 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2562 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2563 buildingBlock.setBpmnScope("VNF");
2565 aaiServiceInstance.setModelVersionId("modelVersionId");
2566 doReturn(service).when(SPY_bbInputSetupUtils)
2567 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2568 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2569 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2570 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2571 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2572 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2573 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2574 any(Service.class));
2576 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2577 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2579 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2580 any(Service.class));
2584 public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
2586 String requestAction = "unassignInstance";
2587 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2588 GeneralBuildingBlock.class);
2589 L3Network network = new L3Network();
2590 network.setNetworkId("networkId");
2591 gBB.getServiceInstance().getNetworks().add(network);
2592 ServiceInstance serviceInstance = gBB.getServiceInstance();
2593 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2594 ExecuteBuildingBlock.class);
2595 RequestDetails requestDetails = mapper
2596 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2597 requestDetails.getRequestParameters().setUserParams(null);
2598 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2599 Service service = Mockito.mock(Service.class);
2600 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2601 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2602 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2603 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2604 aaiNetwork.setModelCustomizationId("modelCustId");
2605 GenericVnf vnf = new GenericVnf();
2606 vnf.setVnfId("vnfId");
2607 gBB.getServiceInstance().getVnfs().add(vnf);
2608 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2609 aaiVnf.setModelCustomizationId("modelCustId");
2611 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2612 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2613 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2614 buildingBlock.setBpmnFlowName("ActivateVnfBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2616 aaiServiceInstance.setModelVersionId("modelVersionId");
2617 doReturn(service).when(SPY_bbInputSetupUtils)
2618 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2619 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2620 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2621 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2622 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2623 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2624 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2625 any(Service.class));
2627 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2628 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2630 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2631 any(Service.class));
2635 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
2637 String requestAction = "unassignInstance";
2638 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2639 GeneralBuildingBlock.class);
2640 L3Network network = new L3Network();
2641 network.setNetworkId("networkId");
2642 gBB.getServiceInstance().getNetworks().add(network);
2643 ServiceInstance serviceInstance = gBB.getServiceInstance();
2644 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2645 ExecuteBuildingBlock.class);
2646 RequestDetails requestDetails = mapper
2647 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2648 requestDetails.getRequestParameters().setUserParams(null);
2649 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2650 Service service = Mockito.mock(Service.class);
2651 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2652 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2653 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2654 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2655 aaiNetwork.setModelCustomizationId("modelCustId");
2656 GenericVnf vnf = new GenericVnf();
2657 vnf.setVnfId("vnfId");
2658 gBB.getServiceInstance().getVnfs().add(vnf);
2659 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2660 aaiVnf.setModelCustomizationId("modelCustId");
2661 VfModule vfModule = new VfModule();
2662 vfModule.setVfModuleId("vfModuleId");
2663 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2664 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2665 aaiVfModule.setModelCustomizationId("modelCustId");
2667 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2668 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2669 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2670 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2671 buildingBlock.setBpmnScope("VfModule");
2673 aaiServiceInstance.setModelVersionId("modelVersionId");
2674 doReturn(service).when(SPY_bbInputSetupUtils)
2675 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2676 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2677 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2678 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2679 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2680 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2681 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2682 any(Service.class));
2683 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2685 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2686 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2688 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2689 any(Service.class));
2690 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2691 any(Service.class), any(String.class));
2695 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() 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("UnassignVfModuleBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2732 aaiServiceInstance.setModelVersionId("modelVersionId");
2733 doReturn(service).when(SPY_bbInputSetupUtils)
2734 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2735 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2736 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2737 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2738 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2739 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2740 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2741 any(Service.class));
2742 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2744 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2745 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2747 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2748 any(Service.class));
2749 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2750 any(Service.class), any(String.class));
2754 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVolumeGroupBB() throws Exception {
2756 String requestAction = "unassignInstance";
2757 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2758 GeneralBuildingBlock.class);
2759 L3Network network = new L3Network();
2760 network.setNetworkId("networkId");
2761 gBB.getServiceInstance().getNetworks().add(network);
2762 ServiceInstance serviceInstance = gBB.getServiceInstance();
2763 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2764 ExecuteBuildingBlock.class);
2765 RequestDetails requestDetails = mapper
2766 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2767 requestDetails.getRequestParameters().setUserParams(null);
2768 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2769 Service service = Mockito.mock(Service.class);
2770 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2771 GenericVnf vnf = new GenericVnf();
2772 vnf.setVnfId("vnfId");
2773 gBB.getServiceInstance().getVnfs().add(vnf);
2774 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2775 aaiVnf.setModelCustomizationId("modelCustId");
2776 VfModule vfModule = new VfModule();
2777 vfModule.setVfModuleId("vfModuleId");
2778 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2779 CloudRegion cloudRegion = new CloudRegion();
2780 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2781 cloudRegion.setCloudOwner("CloudOwner");
2782 VolumeGroup volumeGroup = new VolumeGroup();
2783 volumeGroup.setVolumeGroupId("volumeGroupId");
2784 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2785 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2786 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2788 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2789 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2790 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2791 buildingBlock.setBpmnFlowName("UnassignVolumeGroupBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2793 aaiServiceInstance.setModelVersionId("modelVersionId");
2794 doReturn(service).when(SPY_bbInputSetupUtils)
2795 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2796 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2797 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2798 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2799 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2800 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2801 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2802 any(Service.class));
2803 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2804 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2805 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2808 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2809 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2811 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2812 any(Service.class));
2813 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2814 isA(Service.class), isA(String.class));
2818 public void test_getGBBMacroNoUserParamsExistingService_forActivateFabricConfigurationBB() throws Exception {
2820 String requestAction = "unassignInstance";
2821 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2822 GeneralBuildingBlock.class);
2823 L3Network network = new L3Network();
2824 network.setNetworkId("networkId");
2825 gBB.getServiceInstance().getNetworks().add(network);
2826 ServiceInstance serviceInstance = gBB.getServiceInstance();
2827 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2828 ExecuteBuildingBlock.class);
2829 RequestDetails requestDetails = mapper
2830 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2831 requestDetails.getRequestParameters().setUserParams(null);
2832 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2833 Service service = Mockito.mock(Service.class);
2834 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2835 GenericVnf vnf = new GenericVnf();
2836 vnf.setVnfId("vnfId");
2837 gBB.getServiceInstance().getVnfs().add(vnf);
2838 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2839 aaiVnf.setModelCustomizationId("modelCustId");
2840 VfModule vfModule = new VfModule();
2841 vfModule.setVfModuleId("vfModuleId");
2842 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2843 VolumeGroup volumeGroup = new VolumeGroup();
2844 volumeGroup.setVolumeGroupId("volumeGroupId");
2845 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2846 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2847 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2848 Configuration configuration = new Configuration();
2849 configuration.setConfigurationId("configurationId");
2850 gBB.getServiceInstance().getConfigurations().add(configuration);
2851 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2852 aaiConfiguration.setModelCustomizationId("modelCustId");
2854 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2855 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2856 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2857 buildingBlock.setBpmnFlowName("ActivateFabricConfigurationBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2859 aaiServiceInstance.setModelVersionId("modelVersionId");
2860 doReturn(service).when(SPY_bbInputSetupUtils)
2861 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2862 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2863 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2864 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2865 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2866 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2867 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class),
2868 isA(Service.class), isA(ConfigurationResourceKeys.class));
2871 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2872 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2874 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2875 any(Service.class), isA(ConfigurationResourceKeys.class));
2879 public void testGetGBBMacroExistingServiceServiceinstancenotFoundInAai() throws Exception {
2880 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2881 ExecuteBuildingBlock.class);
2882 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2883 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2885 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2886 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2888 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2890 expectedException.expect(NoServiceInstanceFoundException.class);
2891 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
2893 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2894 cloudConfiguration);
2898 public void testGetGBBMacroExistingServiceServiceModelNotFound() throws Exception {
2899 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2900 ExecuteBuildingBlock.class);
2901 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2902 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2903 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2904 aaiServiceInstance.setModelVersionId("modelVersionId");
2906 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2907 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2909 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2910 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2912 expectedException.expect(ServiceModelNotFoundException.class);
2913 expectedException.expectMessage(
2914 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
2916 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2917 cloudConfiguration);
2921 public void testGetVnfId() {
2922 String expected = "vnfId";
2923 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
2924 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2925 InfraActiveRequests request = new InfraActiveRequests();
2926 request.setVnfId(expected);
2927 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2929 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2931 assertEquals("VnfId is set correctly", expected, actual);
2935 public void testCreateVfModule() {
2936 String vfModuleId = "vfModuleId";
2937 String instanceName = "vfModuleName";
2938 Map<String, String> cloudParams = new HashMap<>();
2939 cloudParams.put("param1", "param1Value");
2940 VfModule expected = new VfModule();
2941 expected.setVfModuleId(vfModuleId);
2942 expected.setVfModuleName(instanceName);
2943 expected.setCloudParams(cloudParams);
2944 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2945 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2946 List<Map<String, String>> instanceParams = new ArrayList<>();
2947 instanceParams.add(cloudParams);
2949 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2951 assertThat(actual, sameBeanAs(expected));
2952 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2954 expected.getCloudParams().clear();
2955 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2956 assertThat(actual, sameBeanAs(expected));
2960 public void testCreateVolumeGroup() {
2961 String volumeGroupId = "volumeGroupId";
2962 String instanceName = "vfModuleName";
2963 String vnfType = "vnfType";
2964 Map<String, String> cloudParams = new HashMap<>();
2965 cloudParams.put("param1", "param1Value");
2966 VolumeGroup expected = new VolumeGroup();
2967 expected.setVolumeGroupId(volumeGroupId);
2968 expected.setVolumeGroupName(instanceName);
2969 expected.setCloudParams(cloudParams);
2970 expected.setVnfType(vnfType);
2971 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2972 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2973 List<Map<String, String>> instanceParams = new ArrayList<>();
2974 instanceParams.add(cloudParams);
2976 VolumeGroup actual =
2977 SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2979 assertThat(actual, sameBeanAs(expected));
2980 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2982 expected.getCloudParams().clear();
2983 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2984 assertThat(actual, sameBeanAs(expected));
2988 public void testCreateNetwork() {
2989 String networkId = "networkId";
2990 String instanceName = "networkName";
2991 Map<String, String> cloudParams = new HashMap<>();
2992 cloudParams.put("param1", "param1Value");
2993 L3Network expected = new L3Network();
2994 expected.setNetworkId(networkId);
2995 expected.setNetworkName(instanceName);
2996 expected.setCloudParams(cloudParams);
2997 Platform platform = new Platform();
2998 platform.setPlatformName("platformName");
2999 expected.setPlatform(platform);
3000 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3001 lineOfBusiness.setLineOfBusinessName("lineOfBusiness");
3002 expected.setLineOfBusiness(lineOfBusiness);
3003 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3004 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3005 List<Map<String, String>> instanceParams = new ArrayList<>();
3006 instanceParams.add(cloudParams);
3007 org.onap.so.serviceinstancebeans.Platform platformRequest = new org.onap.so.serviceinstancebeans.Platform();
3008 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusinessRequest =
3009 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3010 lineOfBusinessRequest.setLineOfBusinessName("lineOfBusiness");
3011 platformRequest.setPlatformName("platformName");
3012 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3013 .setPlatform(platformRequest).setLineOfBusiness(lineOfBusinessRequest).build();
3015 SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams, parameter);
3017 assertThat(actual, sameBeanAs(expected));
3018 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
3020 expected.getCloudParams().clear();
3022 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null, parameter);
3023 assertThat(actual, sameBeanAs(expected));
3027 public void testCreateGenericVnf() {
3028 String vnfId = "vnfId";
3029 String instanceName = "vnfName";
3030 String vnfType = "vnfType";
3031 String platformName = "platformName";
3032 String lineOfBusinessName = "lineOfBusinessName";
3033 String productFamilyId = "productFamilyId";
3034 String applicationId = "applicationId";
3035 Platform platform = new Platform();
3036 platform.setPlatformName(platformName);
3037 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3038 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3039 Map<String, String> cloudParams = new HashMap<>();
3040 cloudParams.put("param1", "param1Value");
3041 GenericVnf expected = new GenericVnf();
3042 expected.setVnfId(vnfId);
3043 expected.setVnfName(instanceName);
3044 expected.setVnfType(vnfType);
3045 expected.setCloudParams(cloudParams);
3046 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3047 expected.setPlatform(platform);
3048 expected.setLineOfBusiness(lineOfBusiness);
3049 expected.setProvStatus("PREPROV");
3050 expected.setServiceId(productFamilyId);
3051 expected.setApplicationId(applicationId);
3052 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3053 List<Map<String, String>> instanceParams = new ArrayList<>();
3054 instanceParams.add(cloudParams);
3055 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
3056 platform.setPlatformName(platformName);
3057 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness =
3058 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3059 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3061 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
3062 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
3064 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
3065 requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
3067 assertThat(actual, sameBeanAs(expected));
3068 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
3070 expected.getCloudParams().clear();
3071 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
3072 vnfId, vnfType, null, productFamilyId, applicationId);
3073 assertThat(actual, sameBeanAs(expected));
3077 public void testMapCatalogVfModule() {
3078 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3079 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3080 VfModule vfModule = new VfModule();
3081 ModelInfo modelInfo = new ModelInfo();
3082 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3083 Service service = new Service();
3084 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3085 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3086 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3087 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3088 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
3089 service.getVnfCustomizations().add(vnfResourceCust);
3090 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3092 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3094 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3096 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3098 modelInfo.setModelCustomizationUuid(null);
3099 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
3101 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3103 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3107 public void testMapCatalogVfModuleIfNoVfUnderVnf() {
3108 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3109 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3110 VfModule vfModule = new VfModule();
3111 ModelInfo modelInfo = new ModelInfo();
3112 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3113 Service service = new Service();
3114 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3115 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3116 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3117 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3118 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3119 doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
3120 .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
3121 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3123 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3125 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3127 verify(SPY_bbInputSetupUtils, times(1))
3128 .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
3132 public void testPopulateVfModule() throws Exception {
3133 String vnfId = "vnfId";
3134 String vfModuleId = "vfModuleId";
3135 String volumeGroupId = "volumeGroupId";
3136 String vfModuleCustomizationId = "vfModuleCustomizationId";
3137 ModelInfo modelInfo = new ModelInfo();
3138 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3139 Service service = new Service();
3140 ServiceModel serviceModel = new ServiceModel();
3141 serviceModel.setCurrentService(service);
3142 String bbName = AssignFlows.VF_MODULE.toString();
3143 ServiceInstance serviceInstance = new ServiceInstance();
3144 GenericVnf vnf = new GenericVnf();
3145 vnf.setVnfId(vnfId);
3146 VolumeGroup volumeGroup = new VolumeGroup();
3147 volumeGroup.setVolumeGroupId(volumeGroupId);
3148 vnf.getVolumeGroups().add(volumeGroup);
3149 serviceInstance.getVnfs().add(vnf);
3150 VfModule vfModule1 = new VfModule();
3151 vfModule1.setVfModuleId("vfModuleId1");
3152 VfModule vfModule2 = new VfModule();
3153 vfModule2.setVfModuleId("vfModuleId2");
3154 vnf.getVfModules().add(vfModule1);
3155 vnf.getVfModules().add(vfModule2);
3156 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3157 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3158 String resourceId = vfModuleId;
3159 RelatedInstanceList[] relatedInstanceList = null;
3160 String instanceName = "vfModuleName";
3161 List<Map<String, String>> instanceParams = null;
3162 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3164 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3165 vnfAAI.setModelCustomizationId("vnfModelCustId");
3166 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3167 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3168 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3169 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3171 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3172 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3173 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3174 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3175 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3176 isA(Service.class));
3177 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3178 isA(Service.class), isA(String.class));
3180 SPY_bbInputSetup.populateVfModule(new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3181 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
3182 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3183 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3184 .setCloudConfiguration(cloudConfiguration).setServiceModel(serviceModel).build());
3186 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3187 isA(Service.class), isA(String.class));
3188 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3189 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3190 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3191 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3195 public void testPopulateVfModuleIsReplaceCorrectPopulationOfVfs() throws Exception {
3196 String vnfId = "vnfId";
3197 String vfModuleId = "vfModuleId";
3198 String volumeGroupId = "volumeGroupId";
3199 String vfModuleCustomizationId = "vfModuleCustomizationId";
3200 ModelInfo modelInfo = new ModelInfo();
3201 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3202 Service currentService = new Service();
3203 currentService.setModelUUID("currentUUID");
3204 Service newService = new Service();
3205 newService.setModelUUID("newUUID");
3206 ServiceModel serviceModel = new ServiceModel();
3207 serviceModel.setCurrentService(currentService);
3208 serviceModel.setNewService(newService);
3209 String bbName = "ActivateVfModuleBB";
3210 ServiceInstance serviceInstance = new ServiceInstance();
3211 GenericVnf vnf = new GenericVnf();
3212 vnf.setVnfId(vnfId);
3213 VolumeGroup volumeGroup = new VolumeGroup();
3214 volumeGroup.setVolumeGroupId(volumeGroupId);
3215 vnf.getVolumeGroups().add(volumeGroup);
3216 serviceInstance.getVnfs().add(vnf);
3217 VfModule vfModule1 = new VfModule();
3218 vfModule1.setVfModuleId("vfModuleId1");
3219 VfModule vfModule2 = new VfModule();
3220 vfModule2.setVfModuleId("vfModuleId2");
3221 vnf.getVfModules().add(vfModule1);
3222 vnf.getVfModules().add(vfModule2);
3223 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3224 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3225 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId1");
3226 String resourceId = vfModuleId;
3227 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3228 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3229 RelatedInstance relatedInstance = new RelatedInstance();
3230 relatedInstance.setInstanceId(vnfId);
3232 ModelInfo vnfModelInfo = new ModelInfo();
3233 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3234 vnfModelInfo.setModelType(ModelType.vnf);
3235 relatedInstance.setModelInfo(vnfModelInfo);
3236 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3237 relatedInstanceList[0] = relatedInstanceListObj;
3239 String instanceName = "vfModuleName";
3240 List<Map<String, String>> instanceParams = null;
3241 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3243 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3244 vnfAAI.setModelCustomizationId("vnfModelCustId");
3245 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3246 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3247 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3248 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3250 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3251 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3252 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3253 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3254 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3255 isA(Service.class));
3256 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3257 isA(Service.class), isA(String.class));
3259 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3260 .setService(newService).setBbName(bbName).setServiceInstance(serviceInstance)
3261 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3262 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3263 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3264 SPY_bbInputSetup.populateVfModule(parameter);
3266 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3267 eq(currentService), eq("vnfModelCustId"));
3268 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), eq(newService),
3269 eq("vnfCustomizationId"));
3270 assertEquals("Lookup Key Map populated with VfModule Id", "vfModuleId1",
3271 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3272 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3273 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3277 public void testPopulateVfModuleIsReplace() throws Exception {
3278 String vnfId = "vnfId";
3279 String vfModuleId = "vfModuleId";
3280 String volumeGroupId = "volumeGroupId";
3281 String vfModuleCustomizationId = "vfModuleCustomizationId";
3282 ModelInfo modelInfo = new ModelInfo();
3283 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3284 Service currentService = new Service();
3285 Service newService = new Service();
3286 ServiceModel serviceModel = new ServiceModel();
3287 serviceModel.setCurrentService(currentService);
3288 currentService.setModelUUID("currentUUID");
3289 serviceModel.setNewService(newService);
3290 currentService.setModelUUID("newUUID");
3291 String bbName = AssignFlows.VF_MODULE.toString();
3292 ServiceInstance serviceInstance = new ServiceInstance();
3293 GenericVnf vnf = new GenericVnf();
3294 vnf.setVnfId(vnfId);
3295 VolumeGroup volumeGroup = new VolumeGroup();
3296 volumeGroup.setVolumeGroupId(volumeGroupId);
3297 vnf.getVolumeGroups().add(volumeGroup);
3298 serviceInstance.getVnfs().add(vnf);
3299 VfModule vfModule1 = new VfModule();
3300 vfModule1.setVfModuleId("vfModuleId1");
3301 VfModule vfModule2 = new VfModule();
3302 vfModule2.setVfModuleId("vfModuleId2");
3303 vnf.getVfModules().add(vfModule1);
3304 vnf.getVfModules().add(vfModule2);
3305 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3306 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3307 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModuleId);
3308 String resourceId = vfModuleId;
3309 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3310 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3311 RelatedInstance relatedInstance = new RelatedInstance();
3312 relatedInstance.setInstanceId(vnfId);
3314 ModelInfo vnfModelInfo = new ModelInfo();
3315 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3316 vnfModelInfo.setModelType(ModelType.vnf);
3317 relatedInstance.setModelInfo(vnfModelInfo);
3318 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3319 relatedInstanceList[0] = relatedInstanceListObj;
3321 String instanceName = "vfModuleName";
3322 List<Map<String, String>> instanceParams = null;
3323 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3325 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3326 vnfAAI.setModelCustomizationId("vnfModelCustId");
3327 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3328 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3329 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3330 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3332 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3333 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3334 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3335 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3336 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3337 isA(Service.class));
3338 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3339 isA(Service.class), isA(String.class));
3341 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3342 .setService(newService).setServiceInstance(serviceInstance).setBbName(bbName)
3343 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3344 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3345 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3348 SPY_bbInputSetup.populateVfModule(parameter);
3350 verify(SPY_bbInputSetup, times(2)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3351 eq(serviceModel.getCurrentService()), isA(String.class));
3352 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3353 eq(serviceModel.getNewService()), isA(String.class));
3354 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3355 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3356 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3357 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3361 public void testGettingVnfcToConfiguration() throws Exception {
3363 String vnfcName = "vnfcName";
3364 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
3365 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfcName);
3366 AAIResultWrapper configurationWrapper =
3367 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
3369 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3370 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3371 Assert.assertNull(vnfc);
3373 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3374 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3375 Assert.assertNotNull(vnfc);