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.InstanceGroup;
73 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
74 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
75 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
76 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
77 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
78 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
79 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
80 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
81 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
82 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
83 import org.onap.so.bpmn.servicedecomposition.bbobjects.Vnfc;
84 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
85 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
86 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
87 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
88 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
89 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
90 import org.onap.so.bpmn.servicedecomposition.entities.ServiceModel;
91 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
92 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
93 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
94 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
95 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
96 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
97 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
98 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
99 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy;
100 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
101 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
102 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.ServiceModelNotFoundException;
103 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
104 import org.onap.so.db.catalog.beans.CollectionResource;
105 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
106 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
107 import org.onap.so.db.catalog.beans.ConfigurationResource;
108 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
109 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
110 import org.onap.so.db.catalog.beans.InstanceGroupType;
111 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
112 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
113 import org.onap.so.db.catalog.beans.OrchestrationStatus;
114 import org.onap.so.db.catalog.beans.Service;
115 import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
116 import org.onap.so.db.catalog.beans.VfModuleCustomization;
117 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
118 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
119 import org.onap.so.db.request.beans.InfraActiveRequests;
120 import org.onap.so.serviceinstancebeans.CloudConfiguration;
121 import org.onap.so.serviceinstancebeans.ModelInfo;
122 import org.onap.so.serviceinstancebeans.ModelType;
123 import org.onap.so.serviceinstancebeans.RelatedInstance;
124 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
125 import org.onap.so.serviceinstancebeans.RequestDetails;
126 import org.onap.so.serviceinstancebeans.RequestInfo;
127 import org.onap.so.serviceinstancebeans.RequestParameters;
128 import org.onap.so.serviceinstancebeans.Resources;
129 import org.onap.so.serviceinstancebeans.SubscriberInfo;
130 import com.fasterxml.jackson.core.JsonParseException;
131 import com.fasterxml.jackson.core.JsonProcessingException;
132 import com.fasterxml.jackson.databind.JsonMappingException;
133 import com.fasterxml.jackson.databind.ObjectMapper;
135 @RunWith(MockitoJUnitRunner.class)
136 public class BBInputSetupTest {
137 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
139 protected ObjectMapper mapper = new ObjectMapper();
140 private static final String CLOUD_OWNER = "CloudOwner";
141 private static final String REQUEST_ID = "b20bbd26-af25-4a50-a9fe-222a3c0f9771";
145 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
148 private BBInputSetupUtils SPY_bbInputSetupUtils;
151 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
154 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
157 public ExpectedException expectedException = ExpectedException.none();
160 public void testGetVolumeGroupIdRelatedToVfModule() {
161 String expected = "volumeGroupId";
162 String modelCustomizationId = "modelCustomizationId";
163 ModelInfo modelInfo = new ModelInfo();
164 modelInfo.setModelCustomizationId(modelCustomizationId);
165 String cloudOwner = "cloudOwner";
166 String cloudRegionId = "cloudRegionId";
167 String volumeGroupId = "volumeGroupId";
168 GenericVnf vnf = new GenericVnf();
169 VolumeGroup volumeGroup = new VolumeGroup();
170 volumeGroup.setVolumeGroupId(expected);
171 vnf.getVolumeGroups().add(volumeGroup);
172 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
173 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
174 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
175 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
176 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId,
179 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner,
180 cloudRegionId, lookupKeyMap);
182 assertEquals(expected, actual.get());
186 public void testGetAlaCarteServiceInstance() throws Exception {
187 ServiceInstance expected =
188 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
189 ServiceInstance.class);
190 RequestDetails requestDetails = new RequestDetails();
191 RequestInfo requestInfo = new RequestInfo();
192 requestInfo.setInstanceName("SharansInstanceName");
193 requestDetails.setRequestInfo(requestInfo);
194 Customer customer = new Customer();
195 String serviceInstanceId = "SharansInstanceId";
196 boolean aLaCarte = true;
197 Service service = new Service();
198 service.setModelUUID("modelUUID");
199 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
200 modelInfoServiceInstance.setModelUuid("modelUUID");
201 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
202 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
203 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
204 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
205 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
206 Service differentService = new Service();
207 differentService.setModelUUID("modelUUIDDifferent");
209 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
210 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
211 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
212 doReturn(differentService).when(SPY_bbInputSetupUtils)
213 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
214 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
215 .mapCatalogServiceIntoServiceInstance(differentService);
217 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
218 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
219 assertThat(actual, sameBeanAs(expected));
222 @Test(expected = Exception.class)
223 public void testGetAlaCarteServiceInstanceException() throws Exception {
224 ServiceInstance expected =
225 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
226 ServiceInstance.class);
227 RequestDetails requestDetails = new RequestDetails();
228 RequestInfo requestInfo = new RequestInfo();
229 requestInfo.setInstanceName("SharansInstanceName");
230 requestDetails.setRequestInfo(requestInfo);
231 Customer customer = new Customer();
232 String serviceInstanceId = "SharansInstanceId";
233 boolean aLaCarte = true;
234 Service service = new Service();
235 service.setModelUUID("modelUUID");
236 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
237 modelInfoServiceInstance.setModelUuid("modelUUID");
238 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
239 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
240 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
241 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
242 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
243 Service differentService = new Service();
244 differentService.setModelUUID("modelUUIDDifferent");
246 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
247 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
248 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
249 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
251 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
252 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
253 assertThat(actual, sameBeanAs(expected));
257 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
258 RequestDetails requestDetails = mapper.readValue(
259 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
260 SubscriberInfo subscriberInfo = new SubscriberInfo();
261 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
262 RequestParameters requestParams = new RequestParameters();
263 requestParams.setSubscriptionServiceType("subscriptionServiceType");
264 requestDetails.setRequestParameters(requestParams);
265 requestDetails.setSubscriberInfo(subscriberInfo);
266 String resourceId = "resourceId";
267 Customer expected = new Customer();
268 expected.setGlobalCustomerId("globalCustomerId");
269 ServiceSubscription serviceSubscription = new ServiceSubscription();
270 serviceSubscription.setServiceType("subscriptionServiceType");
272 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
273 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
275 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
277 assertThat(actual, sameBeanAs(expected));
279 requestDetails.setSubscriberInfo(null);
282 assertThat(actual, sameBeanAs(expected));
287 public void testSetHomingFlag() throws IOException {
288 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
289 GeneralBuildingBlock.class);
290 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
291 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
292 GenericVnf genericVnfExpected = new GenericVnf();
293 genericVnfExpected.setVnfId("vnfId");
294 genericVnfExpected.setCallHoming(true);
295 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
296 boolean homing = true;
297 GenericVnf genericVnfActual = new GenericVnf();
298 genericVnfActual.setVnfId("vnfId");
299 genericVnfActual.setCallHoming(false);
300 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
301 GeneralBuildingBlock.class);
302 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
304 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
305 assertThat(actual, sameBeanAs(expected));
309 public void testGetExecuteBBFromExecution() throws IOException {
310 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignServiceInstanceBB");
311 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
312 expected.setBuildingBlock(bb);
313 expected.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();
326 executeBB.setRequestId("requestId");
327 RequestDetails requestDetails = new RequestDetails();
328 ModelInfo modelInfo = new ModelInfo();
329 modelInfo.setModelType(ModelType.service);
330 requestDetails.setModelInfo(modelInfo);
331 RequestParameters requestParams = new RequestParameters();
332 requestParams.setaLaCarte(true);
333 requestDetails.setRequestParameters(requestParams);
334 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
335 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
336 String resourceId = "123";
337 String requestAction = "createInstance";
338 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
339 requestAction, resourceId);
340 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),
342 boolean aLaCarte = true;
343 GeneralBuildingBlock actual =
344 SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte, resourceId, null);
346 assertThat(actual, sameBeanAs(expected));
350 public void testGetGBBCM() throws Exception {
351 GeneralBuildingBlock expected = mapper
352 .readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"), GeneralBuildingBlock.class);
354 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
355 executeBB.setRequestId("requestId");
356 RequestDetails requestDetails = new RequestDetails();
357 requestDetails.setModelInfo(null);
358 RequestParameters requestParams = new RequestParameters();
359 requestParams.setaLaCarte(true);
360 requestDetails.setRequestParameters(requestParams);
361 RequestInfo requestInfo = new RequestInfo();
362 requestInfo.setSuppressRollback(true);
363 requestInfo.setSource("VID");
364 requestDetails.setRequestInfo(requestInfo);
365 CloudConfiguration cloudConfiguration = new CloudConfiguration();
366 cloudConfiguration.setLcpCloudRegionId("myRegionId");
367 requestDetails.setCloudConfiguration(cloudConfiguration);
368 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
369 String resourceId = "123";
370 String requestAction = "createInstance";
372 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
374 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils)
375 .getAAIGenericVnf(ArgumentMatchers.isA(String.class));
376 doReturn(null).when(bbInputSetupMapperLayer)
377 .mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
378 GeneralBuildingBlock actual =
379 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
380 assertThat(actual, sameBeanAs(expected));
384 public void testGetGBBCMAddMembersAction() throws Exception {
385 GeneralBuildingBlock expected = mapper.readValue(
386 new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"), GeneralBuildingBlock.class);
387 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
388 ExecuteBuildingBlock.class);
389 RequestDetails requestDetails = mapper.readValue(
390 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
391 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
392 String requestAction = "addMembers";
393 String instanceGroupId = "instance-group-001";
395 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
396 workflowResourceIds.setInstanceGroupId(instanceGroupId);
397 executeBB.setWorkflowResourceIds(workflowResourceIds);
399 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
401 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
402 aaiInstanceGroup.setId(instanceGroupId);
403 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
405 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
406 aaiServiceInstance.setServiceInstanceId("service-instance-001");
407 aaiServiceInstance.setServiceInstanceName("test service instance 1");
408 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
410 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
411 vnf1.setVnfId("vnf-001");
412 vnf1.setVnfName("test vnf 1");
414 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
415 vnf2.setVnfId("vnf-002");
416 vnf2.setVnfName("test vnf 2");
418 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
419 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
420 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
421 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
423 GeneralBuildingBlock actual =
424 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, instanceGroupId);
426 assertThat(actual, sameBeanAs(expected));
430 public void testGetGBBALaCarteNonService() throws Exception {
431 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
432 GeneralBuildingBlock.class);
433 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
434 ExecuteBuildingBlock.class);
435 RequestDetails requestDetails = mapper.readValue(
436 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
437 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
438 String requestAction = "createInstance";
439 Service service = Mockito.mock(Service.class);
440 ServiceModel serviceModel = new ServiceModel();
441 serviceModel.setCurrentService(service);
442 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
443 String resourceId = "123";
444 String vnfType = "vnfType";
445 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
446 aaiServiceInstance.setModelVersionId("modelVersionId");
447 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
448 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
449 doReturn(service).when(SPY_bbInputSetupUtils)
450 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
451 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
452 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
453 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
454 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
456 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
457 requestAction, resourceId, vnfType);
459 assertThat(actual, sameBeanAs(expected));
463 public void testGetGBBALaCarteNonServiceIsReplace() throws Exception {
464 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
465 GeneralBuildingBlock.class);
466 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
467 ExecuteBuildingBlock.class);
468 RequestDetails requestDetails = mapper.readValue(
469 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
470 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
471 String requestAction = "replaceInstance";
472 Service service = Mockito.mock(Service.class);
473 ServiceModel serviceModel = new ServiceModel();
474 serviceModel.setCurrentService(service);
475 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
476 String resourceId = "123";
477 String vnfType = "vnfType";
478 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
479 aaiServiceInstance.setModelVersionId("modelVersionId");
480 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
481 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
482 doReturn(service).when(SPY_bbInputSetupUtils)
483 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
484 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID("modelUUID");
485 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
487 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
488 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
489 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
491 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
492 requestAction, resourceId, vnfType);
494 verify(SPY_bbInputSetup, times(1)).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
496 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
497 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID("modelUUID");
499 assertThat(actual, sameBeanAs(expected));
503 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
504 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
505 ExecuteBuildingBlock.class);
506 RequestDetails requestDetails = mapper.readValue(
507 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
508 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
509 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
510 String requestAction = "createInstance";
511 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
512 aaiServiceInstance.setModelVersionId("modelVersionId");
513 String resourceId = "123";
514 String vnfType = "vnfType";
516 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
517 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
519 expectedException.expect(ServiceModelNotFoundException.class);
520 expectedException.expectMessage(
521 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
523 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
528 public void testGetGBBALaCarteNonServiceServiceInstanceNotFoundInAAI() throws Exception {
529 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
530 ExecuteBuildingBlock.class);
531 RequestDetails requestDetails = mapper.readValue(
532 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
533 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
534 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
535 String requestAction = "createInstance";
536 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
537 aaiServiceInstance.setModelVersionId("modelVersionId");
538 String resourceId = "123";
539 String vnfType = "vnfType";
541 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
543 expectedException.expect(NoServiceInstanceFoundException.class);
544 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
546 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
551 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
552 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
553 GeneralBuildingBlock.class);
554 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
555 ExecuteBuildingBlock.class);
556 RequestDetails requestDetails = mapper.readValue(
557 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
558 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
559 String requestAction = "createInstance";
560 Service service = Mockito.mock(Service.class);
561 ServiceModel serviceModel = new ServiceModel();
562 serviceModel.setCurrentService(service);
563 String resourceId = "123";
564 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
565 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
566 aaiServiceInstance.setModelVersionId("modelVersionId");
567 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
568 String vnfType = "vnfType";
569 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
570 doReturn(service).when(SPY_bbInputSetupUtils)
571 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
572 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
574 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
576 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
577 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
579 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
580 requestAction, resourceId, vnfType);
582 assertThat(actual, sameBeanAs(expected));
586 public void testGetGBBALaCarteService() throws Exception {
587 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
588 GeneralBuildingBlock.class);
589 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
590 ExecuteBuildingBlock.class);
591 RequestDetails requestDetails = mapper.readValue(
592 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
593 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
595 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
596 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
597 new org.onap.so.serviceinstancebeans.OwningEntity();
598 requestDetails.setProject(requestProject);
599 requestDetails.setOwningEntity(requestOwningEntity);
601 Service service = Mockito.mock(Service.class);
602 Customer customer = Mockito.mock(Customer.class);
603 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
604 Project project = Mockito.mock(Project.class);
605 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
606 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
607 String resourceId = "123";
608 String requestAction = "createInstance";
609 executeBB.setaLaCarte(true);
610 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
611 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
613 doReturn(service).when(SPY_bbInputSetupUtils)
614 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
615 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
616 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
618 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
619 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
620 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
621 executeBB.getBuildingBlock().getBpmnFlowName());
622 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
624 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
625 requestAction, resourceId);
627 assertThat(actual, sameBeanAs(expected));
631 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
632 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
633 GeneralBuildingBlock.class);
634 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
635 ExecuteBuildingBlock.class);
636 RequestDetails requestDetails = mapper.readValue(
637 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
638 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
640 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
641 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
642 new org.onap.so.serviceinstancebeans.OwningEntity();
643 requestDetails.setProject(requestProject);
644 requestDetails.setOwningEntity(requestOwningEntity);
646 Service service = Mockito.mock(Service.class);
647 Customer customer = Mockito.mock(Customer.class);
648 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
649 Project project = Mockito.mock(Project.class);
650 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
651 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
652 String resourceId = "123";
653 String requestAction = "createInstance";
654 executeBB.setaLaCarte(true);
655 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
656 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
658 doReturn(null).when(SPY_bbInputSetupUtils)
659 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
660 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
661 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
662 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
663 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
665 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
666 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
667 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
668 executeBB.getBuildingBlock().getBpmnFlowName());
669 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
671 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
672 requestAction, resourceId);
674 assertThat(actual, sameBeanAs(expected));
678 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
679 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
680 GeneralBuildingBlock.class);
681 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
682 ExecuteBuildingBlock.class);
683 RequestDetails requestDetails = mapper.readValue(
684 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
685 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
687 Service service = Mockito.mock(Service.class);
688 Customer customer = Mockito.mock(Customer.class);
689 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
690 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
691 String resourceId = "123";
692 String requestAction = "createInstance";
693 executeBB.setaLaCarte(true);
694 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
695 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
697 Map<String, String> uriKeys = new HashMap<>();
698 uriKeys.put("global-customer-id", "globalCustomerId");
699 uriKeys.put("service-type", "serviceType");
701 doReturn(service).when(SPY_bbInputSetupUtils)
702 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
704 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
706 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
707 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
708 executeBB.getBuildingBlock().getBpmnFlowName());
709 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
711 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
712 requestAction, resourceId);
714 assertThat(actual, sameBeanAs(expected));
718 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
719 RequestDetails requestDetails = new RequestDetails();
720 RequestInfo requestInfo = new RequestInfo();
721 requestInfo.setInstanceName("SharansInstanceName");
722 requestDetails.setRequestInfo(requestInfo);
723 Customer customer = new Customer();
724 String serviceInstanceId = "SharansInstanceId";
725 boolean aLaCarte = true;
726 ServiceInstance expected = new ServiceInstance();
727 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
728 Service service = new Service();
729 service.setModelUUID("modelUUID");
730 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
732 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
733 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
736 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null, lookupKeyMap,
739 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
740 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
741 assertThat(actual, sameBeanAs(expected));
745 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
746 RequestDetails requestDetails = new RequestDetails();
747 RequestInfo requestInfo = new RequestInfo();
748 requestInfo.setInstanceName("SharansInstanceName");
749 requestDetails.setRequestInfo(requestInfo);
750 Customer customer = new Customer();
751 String serviceInstanceId = "SharansInstanceId";
752 boolean aLaCarte = true;
753 Service service = new Service();
754 service.setModelUUID("modelUUID");
755 ServiceInstance expected = new ServiceInstance();
756 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
757 serviceInstanceAAI.setModelVersionId("modelUUID");
758 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
759 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
761 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
762 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
763 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
765 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
766 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
767 assertThat(actual, sameBeanAs(expected));
771 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
772 RequestDetails requestDetails = new RequestDetails();
773 RequestInfo requestInfo = new RequestInfo();
774 requestInfo.setInstanceName("SharansInstanceName");
775 requestDetails.setRequestInfo(requestInfo);
776 Customer customer = new Customer();
777 String serviceInstanceId = "SharansInstanceId";
778 boolean aLaCarte = true;
779 Service service = new Service();
780 service.setModelUUID("modelUUID");
781 ServiceInstance expected = new ServiceInstance();
782 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
783 serviceInstanceAAI.setModelVersionId("modelUUID");
784 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
785 String bbName = "ActivateServiceInstanceBB";
787 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
788 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
790 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
791 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
792 assertThat(actual, sameBeanAs(expected));
796 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
797 RequestDetails requestDetails = new RequestDetails();
798 RequestInfo requestInfo = new RequestInfo();
799 requestDetails.setRequestInfo(requestInfo);
800 Customer customer = new Customer();
801 String serviceInstanceId = "SharansInstanceId";
802 boolean aLaCarte = true;
803 Service service = new Service();
804 service.setModelUUID("modelUUID");
805 ServiceInstance expected = new ServiceInstance();
806 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
807 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
808 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
809 String bbName = "ActivateServiceInstanceBB";
810 Service differentService = new Service();
811 differentService.setModelUUID("modelUUIDDifferent");
813 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
816 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
817 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
818 assertThat(actual, sameBeanAs(expected));
821 @Test(expected = Exception.class)
822 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
823 RequestDetails requestDetails = new RequestDetails();
824 RequestInfo requestInfo = new RequestInfo();
825 requestDetails.setRequestInfo(requestInfo);
826 Customer customer = new Customer();
827 String serviceInstanceId = "SharansInstanceId";
828 boolean aLaCarte = true;
829 Service service = new Service();
830 service.setModelUUID("modelUUID");
831 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
832 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
833 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
834 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
836 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
837 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
841 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
842 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
843 String instanceName = "instanceName";
844 String vnfType = "vnfType";
845 String resourceId = "networkId";
846 String productFamilyId = "productFamilyId";
847 String applicationId = "applicationId";
848 Service service = Mockito.mock(Service.class);
849 ServiceModel serviceModel = new ServiceModel();
850 serviceModel.setCurrentService(service);
851 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
852 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
853 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
854 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
855 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
856 CloudConfiguration cloudConfiguration = new CloudConfiguration();
857 org.onap.so.serviceinstancebeans.Platform platform =
858 Mockito.mock(org.onap.so.serviceinstancebeans.Platform.class);
859 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
860 Mockito.mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
861 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
863 doReturn(modelInfo).when(requestDetails).getModelInfo();
864 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
865 doReturn(requestInfo).when(requestDetails).getRequestInfo();
866 doReturn(instanceName).when(requestInfo).getInstanceName();
867 doReturn(platform).when(requestDetails).getPlatform();
868 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
869 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
870 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
871 doReturn(applicationId).when(requestInfo).getApplicationId();
873 doReturn(ModelType.network).when(modelInfo).getModelType();
874 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
875 .setRequestDetails(requestDetails).setService(service).setBbName(bbName)
876 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId)
877 .setVnfType(vnfType).setIsReplace(false).setApplicationId(applicationId).build();
879 doNothing().when(SPY_bbInputSetup).populateL3Network(parameter);
880 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
881 parameter.setInstanceName(instanceName);
882 parameter.setModelInfo(modelInfo);
883 verify(SPY_bbInputSetup, times(1)).populateL3Network(parameter);
884 assertEquals("NetworkId populated", true,
885 lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
887 doReturn(ModelType.vnf).when(modelInfo).getModelType();
888 resourceId = "vnfId";
889 doNothing().when(SPY_bbInputSetup).populateGenericVnf(parameter);
890 parameter.setResourceId(resourceId);
891 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
892 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(parameter);
893 assertEquals("VnfId populated", true,
894 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
895 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
896 resourceId = "volumeGroupId";
897 parameter.setResourceId(resourceId);
898 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
899 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
900 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(parameter);
901 assertEquals("VolumeGroupId populated", true,
902 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
904 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
905 resourceId = "vfModuleId";
906 parameter.setResourceId(resourceId);
907 doNothing().when(SPY_bbInputSetup).populateVfModule(parameter);
908 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
909 verify(SPY_bbInputSetup, times(1)).populateVfModule(parameter);
910 assertEquals("VfModuleId populated", true,
911 lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
913 String bbNameAssignVolume = AssignFlows.VOLUME_GROUP.toString();
914 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
915 resourceId = "vfModuleId";
916 parameter.setResourceId(resourceId);
917 parameter.setBbName(bbNameAssignVolume);
918 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
919 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
920 verify(SPY_bbInputSetup, times(2)).populateVolumeGroup(parameter);
921 assertEquals(resourceId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
925 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
926 GeneralBuildingBlock expected =
927 mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
928 GeneralBuildingBlock.class);
929 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
930 ExecuteBuildingBlock.class);
931 RequestDetails requestDetails = mapper.readValue(
932 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
933 RequestContext requestContext =
934 mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"), RequestContext.class);
935 ServiceInstance serviceInstance =
936 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
937 ServiceInstance.class);
938 CloudConfiguration cloudConfiguration = new CloudConfiguration();
939 cloudConfiguration.setTenantId("tenantId");
940 requestDetails.setCloudConfiguration(cloudConfiguration);
941 OrchestrationContext orchestrationContext = new OrchestrationContext();
942 orchestrationContext.setIsRollbackEnabled(false);
944 CloudRegion cloudRegion = new CloudRegion();
945 cloudRegion.setCloudOwner("test-owner-name");
946 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
947 cloudRegion.setComplex("complexName");
948 cloudRegion.setTenantId("tenantId");
950 Map<String, String> uriKeys = new HashMap<>();
951 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "global-customer-id");
952 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "service-type");
954 Customer customer = new Customer();
955 ServiceSubscription serviceSubscription = new ServiceSubscription();
956 serviceSubscription.setServiceType("subscriptionServiceType");
957 customer.setGlobalCustomerId("globalCustomerId");
958 customer.setSubscriberName("subscriberName");
959 customer.setSubscriberType("subscriberType");
960 customer.setServiceSubscription(serviceSubscription);
962 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant =
963 new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
964 tenant.setTenantContext("tenantContext");
965 tenant.setTenantId("tenantId");
966 tenant.setTenantName("tenantName");
968 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
969 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
970 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
971 aaiTenant.setTenantId("tenantId");
972 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
973 tenants.add(aaiTenant);
975 String requestAction = "createInstance";
977 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
978 .getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
979 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),
980 uriKeys.get("service-type"));
981 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
982 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
983 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
984 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(),
986 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
987 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
988 doReturn(tenants).when(aaiTenants).getTenant();
989 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setServiceInstance(serviceInstance)
990 .setRequestDetails(requestDetails).setExecuteBB(executeBB).setRequestAction(requestAction).build();
991 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(parameter);
993 assertThat(actual, sameBeanAs(expected));
997 public void testGetServiceInstanceNOAAI() throws Exception {
998 ServiceInstance expected =
999 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1000 ServiceInstance.class);
1001 Service service = mapper.readValue(
1002 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1003 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
1004 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
1005 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
1006 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1008 BuildingBlock buildingBlock = new BuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
1009 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
1010 executeBB.setaLaCarte(true);
1011 executeBB.setBuildingBlock(buildingBlock);
1012 RequestDetails requestDetails = new RequestDetails();
1013 RequestInfo reqInfo = new RequestInfo();
1014 reqInfo.setInstanceName("serviceInstanceName");
1015 requestDetails.setRequestInfo(reqInfo);
1016 ModelInfo modelInfo = new ModelInfo();
1017 modelInfo.setModelType(ModelType.service);
1018 requestDetails.setModelInfo(modelInfo);
1019 doReturn(null).when(SPY_bbInputSetupUtils)
1020 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
1021 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
1022 .mapCatalogServiceIntoServiceInstance(service);
1023 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
1024 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
1025 boolean aLaCarte = true;
1027 ServiceInstance actual =
1028 SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project, owningEntity,
1029 lookupKeyMap, serviceInstanceId, aLaCarte, executeBB.getBuildingBlock().getBpmnFlowName());
1031 assertThat(actual, sameBeanAs(expected));
1035 public void testGetServiceSubscription() throws IOException {
1036 ServiceSubscription expected = new ServiceSubscription();
1037 RequestDetails requestDetails = new RequestDetails();
1038 RequestParameters params = new RequestParameters();
1039 params.setSubscriptionServiceType("subscriptionServiceType");
1040 requestDetails.setRequestParameters(params);
1041 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription =
1042 new org.onap.aai.domain.yang.ServiceSubscription();
1043 Customer customer = new Customer();
1044 customer.setGlobalCustomerId("globalCustomerId");
1045 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
1046 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
1047 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
1049 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
1050 assertThat(actual, sameBeanAs(expected));
1054 public void testGetCustomer() throws IOException {
1055 Customer expected = new Customer();
1056 RequestDetails requestDetails = new RequestDetails();
1057 SubscriberInfo subscriberInfo = new SubscriberInfo();
1058 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
1059 requestDetails.setSubscriberInfo(subscriberInfo);
1060 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
1061 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
1062 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
1063 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
1065 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
1066 assertThat(actual, sameBeanAs(expected));
1070 public void testGetExistingServiceInstance() throws Exception {
1071 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1072 ServiceInstance expected = new ServiceInstance();
1074 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
1077 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
1078 assertThat(actual, sameBeanAs(expected));
1082 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
1083 Service service = Mockito.mock(Service.class);
1084 String key = "collectionCustId";
1085 ServiceInstance serviceInstance =
1086 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1087 ServiceInstance.class);
1088 String resourceId = "123";
1089 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
1090 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
1091 assertNull(serviceInstance.getCollection());
1092 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
1094 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
1095 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
1096 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
1098 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1099 networkCollection.setModelCustomizationUUID(key);
1100 networkCollection.setCollectionResource(new CollectionResource());
1101 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1102 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1103 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1104 networkCollection.getCollectionResource().getInstanceGroup()
1105 .setCollectionInstanceGroupCustomizations(new ArrayList<>());
1106 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1107 customizations.add(networkCollection);
1108 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1109 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setService(service)
1110 .setServiceInstance(serviceInstance).setResourceId(resourceId).setKey(key)
1111 .setBbName(AssignFlows.NETWORK_COLLECTION.toString()).build();
1113 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(parameter);
1114 assertNotNull(serviceInstance.getCollection());
1115 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1117 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1118 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1119 serviceInstance.getCollection().getInstanceGroup(), key);
1123 public void testPopulateInstanceGroup() throws Exception {
1124 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1125 Service service = Mockito.mock(Service.class);
1126 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1127 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1128 serviceInstance.setServiceInstanceId("si-001");
1129 serviceInstance.setServiceInstanceName("test service instance");
1130 serviceInstance.setInstanceGroups(instanceGroups);
1132 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1133 .setService(service).setServiceInstance(serviceInstance).setResourceId("instance-group-001")
1134 .setInstanceName("test instance group").build();
1135 SPY_bbInputSetup.populateInstanceGroup(parameter);
1136 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class),
1137 isA(Service.class));
1138 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1142 public void testIsVlanTagging() throws Exception {
1143 boolean expected = true;
1144 Service service = Mockito.mock(Service.class);
1145 String key = "collectionCustId";
1146 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1147 networkCollection.setModelCustomizationUUID(key);
1148 networkCollection.setCollectionResource(new CollectionResource());
1149 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1150 networkCollection.getCollectionResource().getInstanceGroup()
1151 .setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1152 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1153 customizations.add(networkCollection);
1154 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1155 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1156 assertEquals("Is Vlan Tagging check.", expected, actual);
1160 public void testPopulateVolumeGroup() throws Exception {
1161 RequestDetails requestDetails = new RequestDetails();
1162 RelatedInstanceList ril = new RelatedInstanceList();
1163 RelatedInstance ri = new RelatedInstance();
1164 ModelInfo mi = new ModelInfo();
1165 mi.setModelType(ModelType.vnf);
1166 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1167 mi.setModelCustomizationId("vnfModelCustomizationUUID");
1168 ri.setModelInfo(mi);
1169 ril.setRelatedInstance(ri);
1170 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] {ril});
1172 ModelInfo modelInfo = new ModelInfo();
1173 modelInfo.setModelCustomizationId("volumeGroupCustId");
1175 RequestInfo reqInfo = new RequestInfo();
1176 reqInfo.setInstanceName("volumeGroupName");
1177 requestDetails.setModelInfo(modelInfo);
1178 requestDetails.setRequestInfo(reqInfo);
1180 ServiceInstance serviceInstance = new ServiceInstance();
1181 GenericVnf vnf = new GenericVnf();
1182 vnf.setVnfId("genericVnfId");
1184 VolumeGroup vg = new VolumeGroup();
1185 vg.setVolumeGroupName("volumeGroupName");
1186 vg.setVolumeGroupId("volumeGroupId");
1187 vg.setModelInfoVfModule(new ModelInfoVfModule());
1188 vg.getModelInfoVfModule().setModelCustomizationUUID("volumeGroupCustId");
1189 vnf.getVolumeGroups().add(vg);
1190 serviceInstance.getVnfs().add(vnf);
1192 Service service = mapper.readValue(
1193 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1194 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1195 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1197 ServiceModel serviceModel = new ServiceModel();
1198 serviceModel.setCurrentService(service);
1199 String bbName = AssignFlows.VOLUME_GROUP.toString();
1200 String resourceId = "123";
1201 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo), eq(service),
1202 eq("vnfModelCustomizationUUID"));
1203 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1204 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1205 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1207 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1208 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1209 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1210 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRequestDetails(requestDetails)
1211 .setInstanceName(reqInfo.getInstanceName()).setServiceModel(serviceModel).build();
1212 SPY_bbInputSetup.populateVolumeGroup(parameter);
1213 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(eq(vg), isA(ModelInfo.class), eq(service),
1214 eq("vnfModelCustomizationUUID"));
1215 vnf.getVolumeGroups().clear();
1216 SPY_bbInputSetup.populateVolumeGroup(parameter);
1217 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1218 "vnfModelCustomizationUUID");
1222 public void testMapCatalogVolumeGroup() {
1223 VolumeGroup volumeGroup = new VolumeGroup();
1224 RequestDetails requestDetails = new RequestDetails();
1225 ModelInfo modelInfo = new ModelInfo();
1226 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1227 requestDetails.setModelInfo(modelInfo);
1228 Service service = new Service();
1229 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1230 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1231 service.getVnfCustomizations().add(resourceCust);
1232 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1233 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1234 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1235 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1237 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1239 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1241 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1245 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1246 String instanceName = "networkName";
1247 ModelInfo modelInfo = new ModelInfo();
1248 modelInfo.setModelType(ModelType.network);
1250 ServiceInstance serviceInstance = new ServiceInstance();
1251 L3Network network = new L3Network();
1252 network.setNetworkId("networkId");
1253 network.setNetworkName("networkName");
1254 serviceInstance.getNetworks().add(network);
1255 String resourceId = "123";
1257 Service service = mapper.readValue(
1258 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1259 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1260 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1261 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1263 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1265 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1266 .setInstanceName(instanceName).setModelInfo(modelInfo).setService(service).setBbName(bbName)
1267 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).build();
1268 SPY_bbInputSetup.populateL3Network(parameter);
1270 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1272 SPY_bbInputSetup.populateL3Network(parameter);
1273 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1275 instanceName = "networkName2";
1276 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null, parameter);
1277 SPY_bbInputSetup.populateL3Network(parameter);
1278 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1282 public void testMapCatalogNetwork() {
1283 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1284 L3Network network = new L3Network();
1286 RequestDetails requestDetails = new RequestDetails();
1287 ModelInfo modelInfo = new ModelInfo();
1288 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1289 requestDetails.setModelInfo(modelInfo);
1290 Service service = new Service();
1291 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1292 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1293 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1295 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1297 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1299 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1303 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1304 String instanceName = "configurationName";
1305 ModelInfo modelInfo = new ModelInfo();
1306 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1308 ServiceInstance serviceInstance = new ServiceInstance();
1309 Configuration configuration = new Configuration();
1310 configuration.setConfigurationId("configurationId");
1311 configuration.setConfigurationName("configurationName");
1312 serviceInstance.getConfigurations().add(configuration);
1313 String resourceId = "configurationId";
1314 String vnfcName = "vnfcName";
1316 Service service = mapper.readValue(
1317 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1318 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1319 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1320 service.getConfigurationCustomizations().add(configurationCust);
1321 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1322 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1323 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1324 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1325 configResourceKeys.setVnfcName(vnfcName);
1326 Vnfc vnfc = new Vnfc();
1327 vnfc.setVnfcName(vnfcName);
1328 RequestDetails requestDetails = new RequestDetails();
1329 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1330 configResourceKeys);
1331 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1332 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1333 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1334 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1335 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails).build();
1336 SPY_bbInputSetup.populateConfiguration(parameter);
1337 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1338 configResourceKeys);
1340 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1342 SPY_bbInputSetup.populateConfiguration(parameter);
1343 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
1344 configResourceKeys);
1346 instanceName = "configurationName2";
1347 resourceId = "resourceId2";
1348 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1349 parameter.setInstanceName(instanceName);
1350 parameter.setResourceId(resourceId);
1351 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1352 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1353 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
1354 configResourceKeys);
1355 SPY_bbInputSetup.populateConfiguration(parameter);
1356 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
1357 configResourceKeys);
1361 public void testMapCatalogConfiguration() {
1362 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1363 L3Network network = new L3Network();
1365 RequestDetails requestDetails = new RequestDetails();
1366 ModelInfo modelInfo = new ModelInfo();
1367 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1368 requestDetails.setModelInfo(modelInfo);
1369 Service service = new Service();
1370 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1371 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1372 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1374 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1376 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1378 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1382 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1383 String instanceName = "configurationName";
1384 ModelInfo modelInfo = new ModelInfo();
1385 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1387 ServiceInstance serviceInstance = new ServiceInstance();
1388 Configuration configuration = new Configuration();
1389 configuration.setConfigurationId("configurationId");
1390 configuration.setConfigurationName("configurationName");
1391 configuration.setConfigurationSubType("Fabric Config");
1392 serviceInstance.getConfigurations().add(configuration);
1393 String resourceId = "configurationId";
1394 String vnfcName = "vnfcName";
1396 Service service = mapper.readValue(
1397 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1398 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1399 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1400 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1401 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1402 configResourceKeys.setVnfcName(vnfcName);
1403 Vnfc vnfc = new Vnfc();
1404 vnfc.setVnfcName(vnfcName);
1405 RequestDetails requestDetails = new RequestDetails();
1407 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1408 new CvnfcConfigurationCustomization();
1409 ConfigurationResource configurationResource = new ConfigurationResource();
1410 configurationResource.setModelUUID("modelUUID");
1411 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1412 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1414 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1415 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1416 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1417 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1418 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1419 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails).build();
1420 SPY_bbInputSetup.populateConfiguration(parameter);
1421 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1422 configResourceKeys);
1426 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1427 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1428 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1429 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1430 String instanceName = "vnfName";
1431 ModelInfo modelInfo = new ModelInfo();
1432 modelInfo.setModelType(ModelType.vnf);
1433 ServiceInstance serviceInstance = new ServiceInstance();
1434 GenericVnf vnf = new GenericVnf();
1435 vnf.setVnfId("genericVnfId");
1436 vnf.setVnfName("vnfName");
1437 serviceInstance.getVnfs().add(vnf);
1438 String vnfType = "vnfType";
1439 String applicationId = "applicationId";
1440 RequestDetails requestDetails =
1441 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1443 Service service = mapper.readValue(
1444 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1445 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1446 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1447 String bbName = AssignFlows.VNF.toString();
1449 Platform expectedPlatform = new Platform();
1450 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1451 String resourceId = "123";
1452 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1453 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1454 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1455 vnfAAI.setModelCustomizationId("modelCustId");
1456 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1457 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1458 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1459 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1460 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1461 new org.onap.so.db.catalog.beans.InstanceGroup();
1462 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1463 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1464 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1465 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1466 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1467 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1468 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1469 SPY_bbInputSetup.populateGenericVnf(parameter);
1471 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1473 SPY_bbInputSetup.populateGenericVnf(parameter);
1474 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1476 instanceName = "vnfName2";
1477 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1478 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1480 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1481 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1483 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1485 SPY_bbInputSetup.populateGenericVnf(parameter);
1486 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1487 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1488 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1490 assertEquals("modelCustId", modelInfo.getModelCustomizationUuid());
1495 public void testPopulateGenericVnfReplace() throws JsonParseException, JsonMappingException, IOException {
1496 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1497 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1498 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1499 String instanceName = "vnfName";
1500 ModelInfo modelInfo = new ModelInfo();
1501 modelInfo.setModelType(ModelType.vnf);
1502 ServiceInstance serviceInstance = new ServiceInstance();
1503 GenericVnf vnf = new GenericVnf();
1504 vnf.setVnfId("genericVnfId");
1505 vnf.setVnfName("vnfName");
1506 serviceInstance.getVnfs().add(vnf);
1507 String vnfType = "vnfType";
1508 String applicationId = "applicationId";
1509 RequestDetails requestDetails =
1510 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1512 Service service = mapper.readValue(
1513 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1514 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1515 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1516 String bbName = AssignFlows.VNF.toString();
1518 String resourceId = "123";
1519 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1520 vnfAAI.setModelCustomizationId("modelCustId");
1521 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1522 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1523 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1524 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1525 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1526 new org.onap.so.db.catalog.beans.InstanceGroup();
1527 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1529 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1530 .setInstanceName(instanceName).setPlatform(platform).setLineOfBusiness(lineOfBusiness)
1531 .setService(service).setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1532 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1533 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1534 .setApplicationId(applicationId).setIsReplace(true).build();
1536 SPY_bbInputSetup.populateGenericVnf(parameter);
1538 assertEquals("my-test-uuid", modelInfo.getModelCustomizationUuid());
1543 public void testMapVnfcCollectionInstanceGroup() {
1544 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1545 GenericVnf genericVnf = new GenericVnf();
1546 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1547 Service service = Mockito.mock(Service.class);
1548 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1549 instanceGroup.setModelUUID("modelUUID");
1550 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1551 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1552 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1553 vnfcInstanceGroupCust.setFunction("function");
1554 vnfcInstanceGroupCust.setDescription("description");
1555 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1557 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1558 modelInfoInstanceGroup.setModelUUID("modelUUID");
1559 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1560 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1561 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1562 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null,
1565 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1567 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1571 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1572 throws JsonParseException, JsonMappingException, IOException {
1573 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1574 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1575 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1576 String instanceName = "vnfName";
1577 ModelInfo modelInfo = new ModelInfo();
1578 modelInfo.setModelType(ModelType.vnf);
1580 ServiceInstance serviceInstance = new ServiceInstance();
1581 GenericVnf vnf = new GenericVnf();
1582 vnf.setVnfId("genericVnfId");
1583 vnf.setVnfName("vnfName");
1584 serviceInstance.getVnfs().add(vnf);
1585 String vnfType = null;
1586 RequestDetails requestDetails =
1587 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1589 Service service = mapper.readValue(
1590 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1591 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1592 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1593 String bbName = AssignFlows.VNF.toString();
1595 Platform expectedPlatform = new Platform();
1596 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1597 String resourceId = "123";
1598 String applicationId = "applicationId";
1599 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1600 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1601 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1602 vnfAAI.setModelCustomizationId("modelCustId");
1603 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1604 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1605 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1606 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1607 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1608 new org.onap.so.db.catalog.beans.InstanceGroup();
1609 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1610 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1611 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1612 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1613 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1614 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1615 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1616 SPY_bbInputSetup.populateGenericVnf(parameter);
1618 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1620 SPY_bbInputSetup.populateGenericVnf(parameter);
1621 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1623 instanceName = "vnfName2";
1624 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1625 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1627 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1628 vnfAAI.setModelCustomizationId("modelCustId2");
1629 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1630 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1631 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1632 SPY_bbInputSetup.populateGenericVnf(parameter);
1633 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1634 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1635 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1639 public void testMapCatalogVnf() {
1640 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1641 GenericVnf genericVnf = new GenericVnf();
1642 RequestDetails requestDetails = new RequestDetails();
1643 ModelInfo modelInfo = new ModelInfo();
1644 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1645 requestDetails.setModelInfo(modelInfo);
1646 Service service = new Service();
1647 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1648 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1649 service.getVnfCustomizations().add(resourceCust);
1650 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1652 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1654 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1656 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1660 public void testMapCatalogCollectionAndInstanceGroup() {
1661 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1662 modelInfoCollection.setCollectionFunction("collectionFunction");
1663 modelInfoCollection.setCollectionRole("collectionRole");
1664 modelInfoCollection.setCollectionType("collectionType");
1665 modelInfoCollection.setDescription("description");
1666 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1667 modelInfoCollection.setQuantity(0);
1669 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1670 modelInfoInstanceGroup.setFunction("function");
1671 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1672 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1673 modelInfoInstanceGroup.setModelUUID("modelUUID");
1674 modelInfoInstanceGroup.setType("VNFC");
1675 modelInfoInstanceGroup.setDescription("description");
1677 InstanceGroup instanceGroup = new InstanceGroup();
1678 Collection collection = new Collection();
1679 collection.setInstanceGroup(instanceGroup);
1681 CollectionResource collectionResource = new CollectionResource();
1682 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1683 new org.onap.so.db.catalog.beans.InstanceGroup();
1684 collectionResource.setToscaNodeType("NetworkCollection");
1685 collectionResource.setInstanceGroup(catalogInstanceGroup);
1687 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1688 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1689 collectionCust.setCollectionResource(collectionResource);
1691 Service service = new Service();
1692 service.getCollectionResourceCustomizations().add(collectionCust);
1693 ServiceInstance serviceInstance = new ServiceInstance();
1694 serviceInstance.setCollection(collection);
1696 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1697 CollectionResourceInstanceGroupCustomization instanceGroupCust =
1698 new CollectionResourceInstanceGroupCustomization();
1699 instanceGroupCust.setFunction("function");
1700 instanceGroupCust.setDescription("description");
1702 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1703 collectionResource);
1705 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer)
1706 .mapCatalogInstanceGroupToInstanceGroup(collectionCust, catalogInstanceGroup);
1708 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1709 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1710 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1712 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1713 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1717 public void testAddRelationshipsToSI() throws Exception {
1718 ServiceInstance serviceInstance = new ServiceInstance();
1719 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1720 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1722 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1723 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1724 relationshipList.getRelationship().add(relationship);
1725 serviceInstanceAAI.setRelationshipList(relationshipList);
1727 Map<String, String> uriKeys = new HashMap<>();
1728 uriKeys.put("global-customer-id", "globalCustomerId");
1729 uriKeys.put("service-type", "serviceType");
1732 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1733 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1734 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1735 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1736 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1738 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1740 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1741 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1742 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1743 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1744 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1745 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1749 public void testMapConfigurations() throws JsonProcessingException {
1750 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1751 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1752 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1753 relationshipList.getRelationship().add(relationship);
1754 expectedAAI.setRelationshipList(relationshipList);
1756 Configuration expected = new Configuration();
1757 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1758 AAIResultWrapper configurationWrapper =
1759 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1761 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1762 doReturn(expected).when(bbInputSetupMapperLayer)
1763 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1765 List<Configuration> configurations = new ArrayList<>();
1767 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), configurations);
1769 assertEquals(expected, configurations.get(0));
1773 public void testMapGenericVnfs() throws JsonProcessingException {
1774 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1775 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1776 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1777 relationshipList.getRelationship().add(relationship);
1778 expectedAAI.setRelationshipList(relationshipList);
1780 GenericVnf expected = new GenericVnf();
1781 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1782 AAIResultWrapper vnfWrapper =
1783 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1785 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1786 doReturn(expected).when(bbInputSetupMapperLayer)
1787 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1788 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1789 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1790 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1792 List<GenericVnf> genericVnfs = new ArrayList<>();
1794 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), genericVnfs);
1796 assertEquals(expected, genericVnfs.get(0));
1797 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1798 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1799 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1803 public void testMapVolumeGroups() throws JsonProcessingException {
1804 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1806 VolumeGroup expected = new VolumeGroup();
1807 AAIResultWrapper vnfWrapper =
1808 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1810 doReturn(expected).when(bbInputSetupMapperLayer)
1811 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1813 List<VolumeGroup> volumeGroupsList =
1814 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}));
1816 assertEquals(expected, volumeGroupsList.get(0));
1820 public void testMapLineOfBusiness() throws JsonProcessingException {
1821 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1823 LineOfBusiness expected = new LineOfBusiness();
1824 AAIResultWrapper vnfWrapper =
1825 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1827 doReturn(expected).when(bbInputSetupMapperLayer)
1828 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1830 GenericVnf vnf = new GenericVnf();
1832 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1834 assertEquals(expected, vnf.getLineOfBusiness());
1838 public void testMapPlatform() throws JsonProcessingException {
1839 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1841 Platform expected = new Platform();
1842 AAIResultWrapper vnfWrapper =
1843 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1845 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1847 GenericVnf vnf = new GenericVnf();
1849 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1851 assertEquals(expected, vnf.getPlatform());
1855 public void testMapCollection() throws JsonProcessingException {
1856 List<AAIResultWrapper> collections = new ArrayList<>();
1857 ServiceInstance serviceInstance = new ServiceInstance();
1859 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1860 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList =
1861 new org.onap.aai.domain.yang.RelationshipList();
1862 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship =
1863 new org.onap.aai.domain.yang.Relationship();
1864 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1865 aaiCollection.setRelationshipList(collectionRelationshipList);
1867 collections.add(new AAIResultWrapper(
1868 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1870 Collection collection = new Collection();
1871 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1872 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1873 InstanceGroup instanceGroup = new InstanceGroup();
1874 instanceGroupsList.add(instanceGroup);
1875 NetworkCollectionResourceCustomization networkCollectionCust =
1876 Mockito.mock(NetworkCollectionResourceCustomization.class);
1877 CollectionResource collectionResource = new CollectionResource();
1878 doReturn(collection).when(bbInputSetupMapperLayer)
1879 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1880 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1881 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils)
1882 .getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1883 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1884 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer)
1885 .mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1887 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1889 assertEquals(collection, serviceInstance.getCollection());
1890 assertEquals(instanceGroup, collection.getInstanceGroup());
1892 instanceGroupsList.clear();
1893 collection = new Collection();
1895 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1896 assertEquals(collection, serviceInstance.getCollection());
1897 assertNull(collection.getInstanceGroup());
1901 public void testMapL3Networks() throws JsonProcessingException {
1902 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1903 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1904 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1905 relationshipList.getRelationship().add(relationship);
1906 expectedAAI.setRelationshipList(relationshipList);
1908 L3Network expected = new L3Network();
1909 List<L3Network> l3Networks = new ArrayList<>();
1910 AAIResultWrapper l3NetworksWrapper =
1911 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1912 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1914 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1915 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1916 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1917 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1918 eq(expected.getContrailNetworkRouteTableReferences()));
1920 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), l3Networks);
1922 assertEquals(expected, l3Networks.get(0));
1923 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1924 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1925 eq(expected.getContrailNetworkRouteTableReferences()));
1929 public void testMapRouteTableReferences() throws JsonProcessingException {
1930 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1932 RouteTableReference expected = new RouteTableReference();
1933 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1934 AAIResultWrapper vnfWrapper =
1935 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1937 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1938 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1940 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}),
1941 contrailNetworkRouteTableReferences);
1943 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1947 public void testMapOwningEntity() throws JsonProcessingException {
1948 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1950 OwningEntity expected = new OwningEntity();
1951 AAIResultWrapper vnfWrapper =
1952 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1954 doReturn(expected).when(bbInputSetupMapperLayer)
1955 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1957 ServiceInstance serviceInstance = new ServiceInstance();
1959 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
1961 assertEquals(expected, serviceInstance.getOwningEntity());
1965 public void testMapProject() throws JsonProcessingException {
1966 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1968 Project expected = new Project();
1969 AAIResultWrapper vnfWrapper =
1970 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1972 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1974 ServiceInstance serviceInstance = new ServiceInstance();
1976 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
1978 assertEquals(expected, serviceInstance.getProject());
1982 public void testMapCustomer() throws Exception {
1983 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1984 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI =
1985 new org.onap.aai.domain.yang.ServiceSubscription();
1987 Customer expected = new Customer();
1988 ServiceSubscription serviceSubscription = new ServiceSubscription();
1990 String globalCustomerId = "globalCustomerId";
1991 String subscriptionServiceType = "subscriptionServiceType";
1993 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1994 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1995 subscriptionServiceType);
1996 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1997 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1998 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
2000 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
2002 assertEquals(expected, actual);
2003 assertEquals(serviceSubscription, expected.getServiceSubscription());
2007 public void testPopulateLookupKeyMapWithIds() {
2008 Map<ResourceKey, String> expected = new HashMap<>();
2009 Map<ResourceKey, String> actual = new HashMap<>();
2010 String serviceInstanceId = "serviceInstanceId";
2011 String networkId = "networkId";
2012 String vnfId = "vnfId";
2013 String pnfId = "pnfId";
2014 String vfModuleId = "vfModuleId";
2015 String volumeGroupId = "volumeGroupId";
2016 String configurationId = "configurationId";
2017 String instanceGroupId = "instancegroupId";
2019 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
2020 expected.put(ResourceKey.NETWORK_ID, networkId);
2021 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2022 expected.put(ResourceKey.PNF, pnfId);
2023 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
2024 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
2025 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
2026 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
2028 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2029 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
2030 workflowResourceIds.setNetworkId(networkId);
2031 workflowResourceIds.setVnfId(vnfId);
2032 workflowResourceIds.setPnfId(pnfId);
2033 workflowResourceIds.setVfModuleId(vfModuleId);
2034 workflowResourceIds.setVolumeGroupId(volumeGroupId);
2035 workflowResourceIds.setConfigurationId(configurationId);
2036 workflowResourceIds.setInstanceGroupId(instanceGroupId);
2038 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
2040 assertThat(actual, sameBeanAs(expected));
2044 public void testGBBMacroNoUserParamsVrfConfiguration() throws Exception {
2045 String resourceId = "123";
2046 String vnfType = "vnfType";
2047 String requestAction = "createInstance";
2048 Service service = Mockito.mock(Service.class);
2049 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2050 GeneralBuildingBlock.class);
2051 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2052 ExecuteBuildingBlock.class);
2053 RequestDetails requestDetails = mapper
2054 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacroVrf.json"), RequestDetails.class);
2055 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2057 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2058 executeBB.setConfigurationResourceKeys(configResourceKeys);
2059 executeBB.setRequestDetails(requestDetails);
2060 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2061 buildingBlock.setBpmnFlowName("AssignVrfConfigurationBB");
2062 buildingBlock.setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2064 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2065 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2066 doReturn(service).when(SPY_bbInputSetupUtils)
2067 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2069 RelatedInstance relatedVpnBinding = new RelatedInstance();
2070 relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
2071 RelatedInstance relatedLocalNetwork = new RelatedInstance();
2072 relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
2073 org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
2074 aaiVpnBinding.setVpnId("vpnBindingId");
2075 org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
2076 aaiLocalNetwork.setNetworkId("localNetworkId");
2077 Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
2078 Optional.of(new org.onap.aai.domain.yang.VpnBinding());
2079 aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
2080 ServiceProxy proxy = new ServiceProxy();
2081 proxy.setType("transport");
2082 proxy.setServiceInstance(new ServiceInstance());
2083 proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2084 proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
2085 doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2086 ModelType.vpnBinding);
2087 doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2089 doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
2090 doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
2091 doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
2092 doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
2094 Configuration configuration = new Configuration();
2095 configuration.setConfigurationId("configurationId");
2096 gBB.getServiceInstance().getConfigurations().add(configuration);
2097 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
2098 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
2099 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2100 configurationCustList.add(configurationCust);
2101 doNothing().when(SPY_bbInputSetup).populateConfiguration(any(BBInputSetupParameter.class));
2103 gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2104 verify(SPY_bbInputSetup, times(1)).populateConfiguration(any(BBInputSetupParameter.class));
2105 assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
2106 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
2107 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
2109 assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
2113 public void testGetServiceProxy() {
2114 ServiceProxy expected = new ServiceProxy();
2115 expected.setType("TRANSPORT");
2116 expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
2117 expected.getModelInfoServiceProxy().setModelUuid("modelUUID");
2118 expected.getModelInfoServiceProxy().setModelInstanceName("modelInstanceName");
2119 expected.setServiceInstance(new ServiceInstance());
2120 expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2121 expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
2122 expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
2123 Service service = new Service();
2124 ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
2125 serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
2126 serviceProxyCatalog.setModelInstanceName("modelInstanceName");
2127 Service sourceService = new Service();
2128 sourceService.setModelUUID("modelUUID");
2129 sourceService.setServiceType("TRANSPORT");
2130 serviceProxyCatalog.setSourceService(sourceService);
2131 service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
2132 service.getServiceProxyCustomizations().add(serviceProxyCatalog);
2133 ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
2134 assertThat(actual, sameBeanAs(expected));
2138 public void testgetGBBMacroCloudConfiguration() throws Exception {
2139 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2140 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2141 CloudConfiguration cloudConfig = null;
2142 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
2143 aaiCloudRegion.setCloudOwner("test-owner-name");
2144 Resources resources = serviceMacro.getResources();
2145 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
2146 CloudRegion expected = new CloudRegion();
2147 expected.setLcpCloudRegionId("mdt1");
2148 expected.setCloudOwner("test-owner-name");
2149 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
2151 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2152 assertThat(actual, sameBeanAs(expected));
2154 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroVnfs.json"),
2155 org.onap.so.serviceinstancebeans.Service.class);
2156 resources = serviceMacro.getResources();
2158 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2159 assertThat(actual, sameBeanAs(expected));
2161 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNetworks.json"),
2162 org.onap.so.serviceinstancebeans.Service.class);
2163 resources = serviceMacro.getResources();
2165 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2166 assertThat(actual, sameBeanAs(expected));
2168 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"),
2169 org.onap.so.serviceinstancebeans.Service.class);
2170 resources = serviceMacro.getResources();
2172 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2177 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
2178 String resourceId = "123";
2179 String vnfType = "vnfType";
2180 String requestAction = "createInstance";
2181 Service service = Mockito.mock(Service.class);
2182 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2183 GeneralBuildingBlock.class);
2184 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2185 ExecuteBuildingBlock.class);
2186 RequestDetails requestDetails = mapper
2187 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2188 requestDetails.getRequestParameters().getUserParams().clear();
2189 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2190 aaiVnf.setModelCustomizationId("modelCustId");
2191 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2192 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2193 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2194 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2196 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2197 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2198 doReturn(service).when(SPY_bbInputSetupUtils)
2199 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2201 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2202 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2203 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2206 @Test(expected = Exception.class)
2207 public void testgetGBBMacroException() throws Exception {
2208 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2209 ExecuteBuildingBlock.class);
2210 RequestDetails requestDetails = mapper
2211 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2212 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2213 String resourceId = "123";
2214 String vnfType = "vnfType";
2215 String requestAction = "createInstance";
2217 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2218 buildingBlock.setBpmnFlowName("Network").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2220 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2224 public void test_getGBBMacroForVnfTypeNull_populateL3Network_shouldBeCalled() throws Exception {
2226 String resourceId = "123";
2227 String vnfType = "null";
2228 String requestAction = "createInstance";
2229 Service service = Mockito.mock(Service.class);
2230 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2231 GeneralBuildingBlock.class);
2232 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2234 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2235 RequestDetails requestDetails = mapper
2236 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2237 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2238 ExecuteBuildingBlock.class);
2239 executeBB.setConfigurationResourceKeys(configResourceKeys);
2240 executeBB.setRequestDetails(requestDetails);
2241 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2242 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2243 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2245 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2246 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2247 doReturn(service).when(SPY_bbInputSetupUtils)
2248 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2250 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2252 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(BBInputSetupParameter.class));
2256 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2257 String resourceId = "123";
2258 String vnfType = "vnfType";
2259 String requestAction = "deactivateInstance";
2260 Service service = Mockito.mock(Service.class);
2261 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2262 GeneralBuildingBlock.class);
2263 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2264 ExecuteBuildingBlock.class);
2265 RequestDetails requestDetails = mapper
2266 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2267 requestDetails.getRequestParameters().setUserParams(null);
2268 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2269 aaiVnf.setModelCustomizationId("modelCustId");
2270 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2271 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2272 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2273 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2274 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2275 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2276 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2277 buildingBlock.setBpmnFlowName("DeactivateServiceInstanceBB").setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2279 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2280 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2281 doReturn(service).when(SPY_bbInputSetupUtils)
2282 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2284 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2285 requestAction, resourceId, vnfType);
2286 assertThat(actual, sameBeanAs(gBB));
2290 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled() throws Exception {
2292 String resourceId = "123";
2293 String vnfType = "vnfType";
2294 String requestAction = "createInstance";
2295 Service service = Mockito.mock(Service.class);
2296 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2297 GeneralBuildingBlock.class);
2298 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2299 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2300 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2301 networkCustList.add(networkCust);
2303 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2304 RequestDetails requestDetails = mapper
2305 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2306 requestDetails.getRequestParameters().setUserParams(null);
2307 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2308 ExecuteBuildingBlock.class);
2309 executeBB.setConfigurationResourceKeys(configResourceKeys);
2310 executeBB.setRequestDetails(requestDetails);
2311 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2312 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2313 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2315 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2316 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2317 doReturn(service).when(SPY_bbInputSetupUtils)
2318 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2319 doReturn(networkCustList).when(service).getNetworkCustomizations();
2320 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2321 doNothing().when(SPY_bbInputSetup).populateL3Network(any(BBInputSetupParameter.class));
2323 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2325 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2326 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2330 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLink() throws Exception {
2332 String resourceId = "123";
2333 String vnfType = "vnfType";
2334 String requestAction = "createInstance";
2335 Service service = Mockito.mock(Service.class);
2336 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2337 GeneralBuildingBlock.class);
2338 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2339 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2340 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2341 networkCustList.add(networkCust);
2342 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2343 Mockito.mock(CollectionNetworkResourceCustomization.class);
2344 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2345 aaiVnf.setModelCustomizationId("modelCustId");
2346 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2347 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2349 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2350 RequestDetails requestDetails = mapper
2351 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2352 requestDetails.getRequestParameters().setUserParams(null);
2353 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2354 ExecuteBuildingBlock.class);
2355 executeBB.setConfigurationResourceKeys(configResourceKeys);
2356 executeBB.setRequestDetails(requestDetails);
2357 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2358 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2359 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(true);
2361 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2362 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2363 doReturn(service).when(SPY_bbInputSetupUtils)
2364 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2365 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2366 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2367 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer)
2368 .mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2369 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer)
2370 .mapCatalogNetworkToNetwork(networkResourceCustomization);
2372 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2374 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2375 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2379 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLinkAndOtherFlowName()
2382 String otherFlowName = "CreateNetworkBB";
2383 String resourceId = "123";
2384 String vnfType = "vnfType";
2385 String requestAction = "createInstance";
2386 Service service = Mockito.mock(Service.class);
2387 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2388 GeneralBuildingBlock.class);
2389 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2390 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2391 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2392 networkCustList.add(networkCust);
2393 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2394 Mockito.mock(CollectionNetworkResourceCustomization.class);
2396 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2397 RequestDetails requestDetails = mapper
2398 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2399 requestDetails.getRequestParameters().setUserParams(null);
2400 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2401 ExecuteBuildingBlock.class);
2402 executeBB.setConfigurationResourceKeys(configResourceKeys);
2403 executeBB.setRequestDetails(requestDetails);
2404 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2405 buildingBlock.setBpmnFlowName(otherFlowName).setKey("ab153b6e-c364-44c0-bef6-1f2982117f04")
2406 .setIsVirtualLink(true);
2408 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2409 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2410 doReturn(service).when(SPY_bbInputSetupUtils)
2411 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2412 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2413 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2415 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2417 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2418 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2421 @Test(expected = IllegalArgumentException.class)
2422 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2423 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2424 GeneralBuildingBlock.class);
2425 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2426 ExecuteBuildingBlock.class);
2427 RequestDetails requestDetails = mapper
2428 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2429 requestDetails.getRequestParameters().setUserParams(null);
2430 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2431 aaiVnf.setModelCustomizationId("modelCustId");
2432 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2433 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2434 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2435 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2436 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2437 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2438 String resourceId = "123";
2439 String vnfType = "vnfType";
2440 Service service = Mockito.mock(Service.class);
2441 String requestAction = "assignInstance";
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 String generatedId = "12131";
2448 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2452 public void test_getGBBMacroNoUserParamsExistingService_forCatalogNetwork() throws Exception {
2454 String requestAction = "unassignInstance";
2455 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2456 GeneralBuildingBlock.class);
2457 L3Network network = new L3Network();
2458 network.setNetworkId("networkId");
2459 gBB.getServiceInstance().getNetworks().add(network);
2460 ServiceInstance serviceInstance = gBB.getServiceInstance();
2461 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2462 ExecuteBuildingBlock.class);
2463 RequestDetails requestDetails = mapper
2464 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2465 requestDetails.getRequestParameters().setUserParams(null);
2466 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2467 Service service = Mockito.mock(Service.class);
2468 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2469 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2470 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2471 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2472 aaiNetwork.setModelCustomizationId("modelCustId");
2474 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2475 executeBB.setConfigurationResourceKeys(configResourceKeys);
2476 executeBB.setRequestDetails(requestDetails);
2477 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2478 buildingBlock.setBpmnFlowName("DeleteNetworkBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2480 aaiServiceInstance.setModelVersionId("modelVersionId");
2481 doReturn(service).when(SPY_bbInputSetupUtils)
2482 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2483 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2484 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2485 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2486 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2487 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2488 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2489 any(Service.class));
2491 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2492 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2494 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2495 any(Service.class));
2499 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
2501 String requestAction = "unassignInstance";
2502 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2503 GeneralBuildingBlock.class);
2504 L3Network network = new L3Network();
2505 network.setNetworkId("networkId");
2506 gBB.getServiceInstance().getNetworks().add(network);
2507 ServiceInstance serviceInstance = gBB.getServiceInstance();
2508 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2509 ExecuteBuildingBlock.class);
2510 RequestDetails requestDetails = mapper
2511 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2512 requestDetails.getRequestParameters().setUserParams(null);
2513 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2514 Service service = Mockito.mock(Service.class);
2515 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2516 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2517 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2518 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2519 aaiNetwork.setModelCustomizationId("modelCustId");
2520 GenericVnf vnf = new GenericVnf();
2521 vnf.setVnfId("vnfId");
2522 gBB.getServiceInstance().getVnfs().add(vnf);
2523 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2524 aaiVnf.setModelCustomizationId("modelCustId");
2526 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2527 executeBB.setConfigurationResourceKeys(configResourceKeys);
2528 executeBB.setRequestDetails(requestDetails);
2529 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2530 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2531 buildingBlock.setBpmnScope("VNF");
2533 aaiServiceInstance.setModelVersionId("modelVersionId");
2534 doReturn(service).when(SPY_bbInputSetupUtils)
2535 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2536 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2537 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2538 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2539 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2540 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2541 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2542 any(Service.class));
2544 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2545 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2547 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2548 any(Service.class));
2552 public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
2554 String requestAction = "unassignInstance";
2555 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2556 GeneralBuildingBlock.class);
2557 L3Network network = new L3Network();
2558 network.setNetworkId("networkId");
2559 gBB.getServiceInstance().getNetworks().add(network);
2560 ServiceInstance serviceInstance = gBB.getServiceInstance();
2561 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2562 ExecuteBuildingBlock.class);
2563 RequestDetails requestDetails = mapper
2564 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2565 requestDetails.getRequestParameters().setUserParams(null);
2566 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2567 Service service = Mockito.mock(Service.class);
2568 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2569 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2570 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2571 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2572 aaiNetwork.setModelCustomizationId("modelCustId");
2573 GenericVnf vnf = new GenericVnf();
2574 vnf.setVnfId("vnfId");
2575 gBB.getServiceInstance().getVnfs().add(vnf);
2576 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2577 aaiVnf.setModelCustomizationId("modelCustId");
2579 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2580 executeBB.setConfigurationResourceKeys(configResourceKeys);
2581 executeBB.setRequestDetails(requestDetails);
2582 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2583 buildingBlock.setBpmnFlowName("ActivateVnfBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2585 aaiServiceInstance.setModelVersionId("modelVersionId");
2586 doReturn(service).when(SPY_bbInputSetupUtils)
2587 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2588 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2589 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2590 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2591 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2592 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2593 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2594 any(Service.class));
2596 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2597 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2599 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2600 any(Service.class));
2604 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
2606 String requestAction = "unassignInstance";
2607 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2608 GeneralBuildingBlock.class);
2609 L3Network network = new L3Network();
2610 network.setNetworkId("networkId");
2611 gBB.getServiceInstance().getNetworks().add(network);
2612 ServiceInstance serviceInstance = gBB.getServiceInstance();
2613 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2614 ExecuteBuildingBlock.class);
2615 RequestDetails requestDetails = mapper
2616 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2617 requestDetails.getRequestParameters().setUserParams(null);
2618 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2619 Service service = Mockito.mock(Service.class);
2620 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2621 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2622 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2623 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2624 aaiNetwork.setModelCustomizationId("modelCustId");
2625 GenericVnf vnf = new GenericVnf();
2626 vnf.setVnfId("vnfId");
2627 gBB.getServiceInstance().getVnfs().add(vnf);
2628 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2629 aaiVnf.setModelCustomizationId("modelCustId");
2630 VfModule vfModule = new VfModule();
2631 vfModule.setVfModuleId("vfModuleId");
2632 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2633 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2634 aaiVfModule.setModelCustomizationId("modelCustId");
2636 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2637 executeBB.setConfigurationResourceKeys(configResourceKeys);
2638 executeBB.setRequestDetails(requestDetails);
2639 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2640 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2641 buildingBlock.setBpmnScope("VfModule");
2643 aaiServiceInstance.setModelVersionId("modelVersionId");
2644 doReturn(service).when(SPY_bbInputSetupUtils)
2645 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2646 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2647 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2648 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2649 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2650 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2651 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2652 any(Service.class));
2653 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2655 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2656 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2658 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2659 any(Service.class));
2660 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2661 any(Service.class), any(String.class));
2665 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() throws Exception {
2667 String requestAction = "unassignInstance";
2668 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2669 GeneralBuildingBlock.class);
2670 L3Network network = new L3Network();
2671 network.setNetworkId("networkId");
2672 gBB.getServiceInstance().getNetworks().add(network);
2673 ServiceInstance serviceInstance = gBB.getServiceInstance();
2674 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2675 ExecuteBuildingBlock.class);
2676 RequestDetails requestDetails = mapper
2677 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2678 requestDetails.getRequestParameters().setUserParams(null);
2679 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2680 Service service = Mockito.mock(Service.class);
2681 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2682 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2683 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2684 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2685 aaiNetwork.setModelCustomizationId("modelCustId");
2686 GenericVnf vnf = new GenericVnf();
2687 vnf.setVnfId("vnfId");
2688 gBB.getServiceInstance().getVnfs().add(vnf);
2689 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2690 aaiVnf.setModelCustomizationId("modelCustId");
2691 VfModule vfModule = new VfModule();
2692 vfModule.setVfModuleId("vfModuleId");
2693 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2694 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2695 aaiVfModule.setModelCustomizationId("modelCustId");
2697 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2698 executeBB.setConfigurationResourceKeys(configResourceKeys);
2699 executeBB.setRequestDetails(requestDetails);
2700 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2701 buildingBlock.setBpmnFlowName("UnassignVfModuleBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2703 aaiServiceInstance.setModelVersionId("modelVersionId");
2704 doReturn(service).when(SPY_bbInputSetupUtils)
2705 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2706 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2707 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2708 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2709 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2710 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2711 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2712 any(Service.class));
2713 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2715 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2716 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2718 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2719 any(Service.class));
2720 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2721 any(Service.class), any(String.class));
2725 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVolumeGroupBB() throws Exception {
2727 String requestAction = "unassignInstance";
2728 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2729 GeneralBuildingBlock.class);
2730 L3Network network = new L3Network();
2731 network.setNetworkId("networkId");
2732 gBB.getServiceInstance().getNetworks().add(network);
2733 ServiceInstance serviceInstance = gBB.getServiceInstance();
2734 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2735 ExecuteBuildingBlock.class);
2736 RequestDetails requestDetails = mapper
2737 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2738 requestDetails.getRequestParameters().setUserParams(null);
2739 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2740 Service service = Mockito.mock(Service.class);
2741 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2742 GenericVnf vnf = new GenericVnf();
2743 vnf.setVnfId("vnfId");
2744 gBB.getServiceInstance().getVnfs().add(vnf);
2745 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2746 aaiVnf.setModelCustomizationId("modelCustId");
2747 VfModule vfModule = new VfModule();
2748 vfModule.setVfModuleId("vfModuleId");
2749 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2750 CloudRegion cloudRegion = new CloudRegion();
2751 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2752 cloudRegion.setCloudOwner("CloudOwner");
2753 VolumeGroup volumeGroup = new VolumeGroup();
2754 volumeGroup.setVolumeGroupId("volumeGroupId");
2755 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2756 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2757 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2759 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2760 executeBB.setConfigurationResourceKeys(configResourceKeys);
2761 executeBB.setRequestDetails(requestDetails);
2762 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2763 buildingBlock.setBpmnFlowName("UnassignVolumeGroupBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2765 aaiServiceInstance.setModelVersionId("modelVersionId");
2766 doReturn(service).when(SPY_bbInputSetupUtils)
2767 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2768 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2769 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2770 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2771 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2772 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2773 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2774 any(Service.class));
2775 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2776 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2777 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2780 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2781 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2783 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2784 any(Service.class));
2785 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2786 isA(Service.class), isA(String.class));
2790 public void test_getGBBMacroNoUserParamsExistingService_forActivateFabricConfigurationBB() throws Exception {
2792 String requestAction = "unassignInstance";
2793 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2794 GeneralBuildingBlock.class);
2795 L3Network network = new L3Network();
2796 network.setNetworkId("networkId");
2797 gBB.getServiceInstance().getNetworks().add(network);
2798 ServiceInstance serviceInstance = gBB.getServiceInstance();
2799 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2800 ExecuteBuildingBlock.class);
2801 RequestDetails requestDetails = mapper
2802 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2803 requestDetails.getRequestParameters().setUserParams(null);
2804 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2805 Service service = Mockito.mock(Service.class);
2806 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2807 GenericVnf vnf = new GenericVnf();
2808 vnf.setVnfId("vnfId");
2809 gBB.getServiceInstance().getVnfs().add(vnf);
2810 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2811 aaiVnf.setModelCustomizationId("modelCustId");
2812 VfModule vfModule = new VfModule();
2813 vfModule.setVfModuleId("vfModuleId");
2814 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2815 VolumeGroup volumeGroup = new VolumeGroup();
2816 volumeGroup.setVolumeGroupId("volumeGroupId");
2817 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2818 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2819 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2820 Configuration configuration = new Configuration();
2821 configuration.setConfigurationId("configurationId");
2822 gBB.getServiceInstance().getConfigurations().add(configuration);
2823 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2824 aaiConfiguration.setModelCustomizationId("modelCustId");
2826 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2827 executeBB.setConfigurationResourceKeys(configResourceKeys);
2828 executeBB.setRequestDetails(requestDetails);
2829 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2830 buildingBlock.setBpmnFlowName("ActivateFabricConfigurationBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2832 aaiServiceInstance.setModelVersionId("modelVersionId");
2833 doReturn(service).when(SPY_bbInputSetupUtils)
2834 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2835 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2836 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2837 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2838 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2839 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2840 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class),
2841 isA(Service.class), isA(ConfigurationResourceKeys.class));
2844 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2845 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2847 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2848 any(Service.class), isA(ConfigurationResourceKeys.class));
2852 public void testGetGBBMacroExistingServiceServiceinstancenotFoundInAai() throws Exception {
2853 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2854 ExecuteBuildingBlock.class);
2855 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2856 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2858 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2859 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2861 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2863 expectedException.expect(NoServiceInstanceFoundException.class);
2864 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
2866 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2867 cloudConfiguration);
2871 public void testGetGBBMacroExistingServiceServiceModelNotFound() throws Exception {
2872 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2873 ExecuteBuildingBlock.class);
2874 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2875 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2876 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2877 aaiServiceInstance.setModelVersionId("modelVersionId");
2879 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2880 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2882 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2883 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2885 expectedException.expect(ServiceModelNotFoundException.class);
2886 expectedException.expectMessage(
2887 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
2889 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2890 cloudConfiguration);
2894 public void testGetVnfId() {
2895 String expected = "vnfId";
2896 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2897 executeBB.setRequestId("requestId");
2898 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2899 InfraActiveRequests request = new InfraActiveRequests();
2900 request.setVnfId(expected);
2901 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2903 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2905 assertEquals("VnfId is set correctly", expected, actual);
2909 public void testCreateVfModule() {
2910 String vfModuleId = "vfModuleId";
2911 String instanceName = "vfModuleName";
2912 Map<String, String> cloudParams = new HashMap<>();
2913 cloudParams.put("param1", "param1Value");
2914 VfModule expected = new VfModule();
2915 expected.setVfModuleId(vfModuleId);
2916 expected.setVfModuleName(instanceName);
2917 expected.setCloudParams(cloudParams);
2918 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2919 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2920 List<Map<String, String>> instanceParams = new ArrayList<>();
2921 instanceParams.add(cloudParams);
2923 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2925 assertThat(actual, sameBeanAs(expected));
2926 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2928 expected.getCloudParams().clear();
2929 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2930 assertThat(actual, sameBeanAs(expected));
2934 public void testCreateVolumeGroup() {
2935 String volumeGroupId = "volumeGroupId";
2936 String instanceName = "vfModuleName";
2937 String vnfType = "vnfType";
2938 Map<String, String> cloudParams = new HashMap<>();
2939 cloudParams.put("param1", "param1Value");
2940 VolumeGroup expected = new VolumeGroup();
2941 expected.setVolumeGroupId(volumeGroupId);
2942 expected.setVolumeGroupName(instanceName);
2943 expected.setCloudParams(cloudParams);
2944 expected.setVnfType(vnfType);
2945 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2946 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2947 List<Map<String, String>> instanceParams = new ArrayList<>();
2948 instanceParams.add(cloudParams);
2950 VolumeGroup actual =
2951 SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2953 assertThat(actual, sameBeanAs(expected));
2954 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2956 expected.getCloudParams().clear();
2957 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2958 assertThat(actual, sameBeanAs(expected));
2962 public void testCreateNetwork() {
2963 String networkId = "networkId";
2964 String instanceName = "networkName";
2965 Map<String, String> cloudParams = new HashMap<>();
2966 cloudParams.put("param1", "param1Value");
2967 L3Network expected = new L3Network();
2968 expected.setNetworkId(networkId);
2969 expected.setNetworkName(instanceName);
2970 expected.setCloudParams(cloudParams);
2971 Platform platform = new Platform();
2972 platform.setPlatformName("platformName");
2973 expected.setPlatform(platform);
2974 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2975 lineOfBusiness.setLineOfBusinessName("lineOfBusiness");
2976 expected.setLineOfBusiness(lineOfBusiness);
2977 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2978 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2979 List<Map<String, String>> instanceParams = new ArrayList<>();
2980 instanceParams.add(cloudParams);
2981 org.onap.so.serviceinstancebeans.Platform platformRequest = new org.onap.so.serviceinstancebeans.Platform();
2982 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusinessRequest =
2983 new org.onap.so.serviceinstancebeans.LineOfBusiness();
2984 lineOfBusinessRequest.setLineOfBusinessName("lineOfBusiness");
2985 platformRequest.setPlatformName("platformName");
2986 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
2987 .setPlatform(platformRequest).setLineOfBusiness(lineOfBusinessRequest).build();
2989 SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams, parameter);
2991 assertThat(actual, sameBeanAs(expected));
2992 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2994 expected.getCloudParams().clear();
2996 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null, parameter);
2997 assertThat(actual, sameBeanAs(expected));
3001 public void testCreateGenericVnf() {
3002 String vnfId = "vnfId";
3003 String instanceName = "vnfName";
3004 String vnfType = "vnfType";
3005 String platformName = "platformName";
3006 String lineOfBusinessName = "lineOfBusinessName";
3007 String productFamilyId = "productFamilyId";
3008 String applicationId = "applicationId";
3009 Platform platform = new Platform();
3010 platform.setPlatformName(platformName);
3011 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3012 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3013 Map<String, String> cloudParams = new HashMap<>();
3014 cloudParams.put("param1", "param1Value");
3015 GenericVnf expected = new GenericVnf();
3016 expected.setVnfId(vnfId);
3017 expected.setVnfName(instanceName);
3018 expected.setVnfType(vnfType);
3019 expected.setCloudParams(cloudParams);
3020 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3021 expected.setPlatform(platform);
3022 expected.setLineOfBusiness(lineOfBusiness);
3023 expected.setProvStatus("PREPROV");
3024 expected.setServiceId(productFamilyId);
3025 expected.setApplicationId(applicationId);
3026 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3027 List<Map<String, String>> instanceParams = new ArrayList<>();
3028 instanceParams.add(cloudParams);
3029 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
3030 platform.setPlatformName(platformName);
3031 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness =
3032 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3033 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3035 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
3036 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
3038 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
3039 requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
3041 assertThat(actual, sameBeanAs(expected));
3042 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
3044 expected.getCloudParams().clear();
3045 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
3046 vnfId, vnfType, null, productFamilyId, applicationId);
3047 assertThat(actual, sameBeanAs(expected));
3051 public void testMapCatalogVfModule() {
3052 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3053 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3054 VfModule vfModule = new VfModule();
3055 ModelInfo modelInfo = new ModelInfo();
3056 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3057 Service service = new Service();
3058 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3059 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3060 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3061 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3062 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
3063 service.getVnfCustomizations().add(vnfResourceCust);
3064 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3066 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3068 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3070 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3072 modelInfo.setModelCustomizationUuid(null);
3073 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
3075 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3077 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3081 public void testMapCatalogVfModuleIfNoVfUnderVnf() {
3082 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3083 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3084 VfModule vfModule = new VfModule();
3085 ModelInfo modelInfo = new ModelInfo();
3086 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3087 Service service = new Service();
3088 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3089 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3090 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3091 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3092 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3093 doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
3094 .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
3095 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3097 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3099 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3101 verify(SPY_bbInputSetupUtils, times(1))
3102 .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
3106 public void testPopulateVfModule() throws Exception {
3107 String vnfId = "vnfId";
3108 String vfModuleId = "vfModuleId";
3109 String volumeGroupId = "volumeGroupId";
3110 String vfModuleCustomizationId = "vfModuleCustomizationId";
3111 ModelInfo modelInfo = new ModelInfo();
3112 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3113 Service service = new Service();
3114 ServiceModel serviceModel = new ServiceModel();
3115 serviceModel.setCurrentService(service);
3116 String bbName = AssignFlows.VF_MODULE.toString();
3117 ServiceInstance serviceInstance = new ServiceInstance();
3118 GenericVnf vnf = new GenericVnf();
3119 vnf.setVnfId(vnfId);
3120 VolumeGroup volumeGroup = new VolumeGroup();
3121 volumeGroup.setVolumeGroupId(volumeGroupId);
3122 vnf.getVolumeGroups().add(volumeGroup);
3123 serviceInstance.getVnfs().add(vnf);
3124 VfModule vfModule1 = new VfModule();
3125 vfModule1.setVfModuleId("vfModuleId1");
3126 VfModule vfModule2 = new VfModule();
3127 vfModule2.setVfModuleId("vfModuleId2");
3128 vnf.getVfModules().add(vfModule1);
3129 vnf.getVfModules().add(vfModule2);
3130 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3131 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3132 String resourceId = vfModuleId;
3133 RelatedInstanceList[] relatedInstanceList = null;
3134 String instanceName = "vfModuleName";
3135 List<Map<String, String>> instanceParams = null;
3136 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3138 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3139 vnfAAI.setModelCustomizationId("vnfModelCustId");
3140 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3141 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3142 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3143 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3145 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3146 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3147 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3148 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3149 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3150 isA(Service.class));
3151 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3152 isA(Service.class), isA(String.class));
3154 SPY_bbInputSetup.populateVfModule(new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3155 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
3156 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3157 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3158 .setCloudConfiguration(cloudConfiguration).setServiceModel(serviceModel).build());
3160 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3161 isA(Service.class), isA(String.class));
3162 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3163 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3164 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3165 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3169 public void testPopulateVfModuleIsReplaceCorrectPopulationOfVfs() throws Exception {
3170 String vnfId = "vnfId";
3171 String vfModuleId = "vfModuleId";
3172 String volumeGroupId = "volumeGroupId";
3173 String vfModuleCustomizationId = "vfModuleCustomizationId";
3174 ModelInfo modelInfo = new ModelInfo();
3175 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3176 Service currentService = new Service();
3177 currentService.setModelUUID("currentUUID");
3178 Service newService = new Service();
3179 newService.setModelUUID("newUUID");
3180 ServiceModel serviceModel = new ServiceModel();
3181 serviceModel.setCurrentService(currentService);
3182 serviceModel.setNewService(newService);
3183 String bbName = "ActivateVfModuleBB";
3184 ServiceInstance serviceInstance = new ServiceInstance();
3185 GenericVnf vnf = new GenericVnf();
3186 vnf.setVnfId(vnfId);
3187 VolumeGroup volumeGroup = new VolumeGroup();
3188 volumeGroup.setVolumeGroupId(volumeGroupId);
3189 vnf.getVolumeGroups().add(volumeGroup);
3190 serviceInstance.getVnfs().add(vnf);
3191 VfModule vfModule1 = new VfModule();
3192 vfModule1.setVfModuleId("vfModuleId1");
3193 VfModule vfModule2 = new VfModule();
3194 vfModule2.setVfModuleId("vfModuleId2");
3195 vnf.getVfModules().add(vfModule1);
3196 vnf.getVfModules().add(vfModule2);
3197 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3198 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3199 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId1");
3200 String resourceId = vfModuleId;
3201 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3202 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3203 RelatedInstance relatedInstance = new RelatedInstance();
3204 relatedInstance.setInstanceId(vnfId);
3206 ModelInfo vnfModelInfo = new ModelInfo();
3207 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3208 vnfModelInfo.setModelType(ModelType.vnf);
3209 relatedInstance.setModelInfo(vnfModelInfo);
3210 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3211 relatedInstanceList[0] = relatedInstanceListObj;
3213 String instanceName = "vfModuleName";
3214 List<Map<String, String>> instanceParams = null;
3215 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3217 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3218 vnfAAI.setModelCustomizationId("vnfModelCustId");
3219 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3220 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3221 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3222 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3224 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3225 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3226 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3227 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3228 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3229 isA(Service.class));
3230 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3231 isA(Service.class), isA(String.class));
3233 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3234 .setService(newService).setBbName(bbName).setServiceInstance(serviceInstance)
3235 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3236 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3237 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3238 SPY_bbInputSetup.populateVfModule(parameter);
3240 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3241 eq(currentService), eq("vnfModelCustId"));
3242 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), eq(newService),
3243 eq("vnfCustomizationId"));
3244 assertEquals("Lookup Key Map populated with VfModule Id", "vfModuleId1",
3245 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3246 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3247 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3251 public void testPopulateVfModuleIsReplace() throws Exception {
3252 String vnfId = "vnfId";
3253 String vfModuleId = "vfModuleId";
3254 String volumeGroupId = "volumeGroupId";
3255 String vfModuleCustomizationId = "vfModuleCustomizationId";
3256 ModelInfo modelInfo = new ModelInfo();
3257 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3258 Service currentService = new Service();
3259 Service newService = new Service();
3260 ServiceModel serviceModel = new ServiceModel();
3261 serviceModel.setCurrentService(currentService);
3262 currentService.setModelUUID("currentUUID");
3263 serviceModel.setNewService(newService);
3264 currentService.setModelUUID("newUUID");
3265 String bbName = AssignFlows.VF_MODULE.toString();
3266 ServiceInstance serviceInstance = new ServiceInstance();
3267 GenericVnf vnf = new GenericVnf();
3268 vnf.setVnfId(vnfId);
3269 VolumeGroup volumeGroup = new VolumeGroup();
3270 volumeGroup.setVolumeGroupId(volumeGroupId);
3271 vnf.getVolumeGroups().add(volumeGroup);
3272 serviceInstance.getVnfs().add(vnf);
3273 VfModule vfModule1 = new VfModule();
3274 vfModule1.setVfModuleId("vfModuleId1");
3275 VfModule vfModule2 = new VfModule();
3276 vfModule2.setVfModuleId("vfModuleId2");
3277 vnf.getVfModules().add(vfModule1);
3278 vnf.getVfModules().add(vfModule2);
3279 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3280 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3281 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModuleId);
3282 String resourceId = vfModuleId;
3283 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3284 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3285 RelatedInstance relatedInstance = new RelatedInstance();
3286 relatedInstance.setInstanceId(vnfId);
3288 ModelInfo vnfModelInfo = new ModelInfo();
3289 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3290 vnfModelInfo.setModelType(ModelType.vnf);
3291 relatedInstance.setModelInfo(vnfModelInfo);
3292 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3293 relatedInstanceList[0] = relatedInstanceListObj;
3295 String instanceName = "vfModuleName";
3296 List<Map<String, String>> instanceParams = null;
3297 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3299 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3300 vnfAAI.setModelCustomizationId("vnfModelCustId");
3301 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3302 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3303 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3304 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3306 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3307 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3308 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3309 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3310 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3311 isA(Service.class));
3312 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3313 isA(Service.class), isA(String.class));
3315 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3316 .setService(newService).setServiceInstance(serviceInstance).setBbName(bbName)
3317 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3318 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3319 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3322 SPY_bbInputSetup.populateVfModule(parameter);
3324 verify(SPY_bbInputSetup, times(2)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3325 eq(serviceModel.getCurrentService()), isA(String.class));
3326 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3327 eq(serviceModel.getNewService()), isA(String.class));
3328 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3329 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3330 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3331 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3335 public void testGettingVnfcToConfiguration() throws Exception {
3337 String vnfcName = "vnfcName";
3338 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
3339 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfcName);
3340 AAIResultWrapper configurationWrapper =
3341 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
3343 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3344 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3345 Assert.assertNull(vnfc);
3347 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3348 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3349 Assert.assertNotNull(vnfc);