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.entities.AAIResultWrapper;
63 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
64 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
65 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
68 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
71 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
72 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
73 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
74 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
75 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
76 import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
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 =
312 new ExecuteBuildingBlock().setBuildingBlock(bb).setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
313 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
314 doReturn(expected).when(execution).getVariable(any(String.class));
315 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
316 assertThat(actual, sameBeanAs(expected));
320 public void testGetGBB() throws Exception {
321 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
322 GeneralBuildingBlock.class);
324 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
325 RequestDetails requestDetails = new RequestDetails();
326 ModelInfo modelInfo = new ModelInfo();
327 modelInfo.setModelType(ModelType.service);
328 requestDetails.setModelInfo(modelInfo);
329 RequestParameters requestParams = new RequestParameters();
330 requestParams.setaLaCarte(true);
331 requestDetails.setRequestParameters(requestParams);
332 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
333 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
334 String resourceId = "123";
335 String requestAction = "createInstance";
336 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
337 requestAction, resourceId);
338 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),
340 boolean aLaCarte = true;
341 GeneralBuildingBlock actual =
342 SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte, resourceId, null);
344 assertThat(actual, sameBeanAs(expected));
348 public void testGetGBBCM() throws Exception {
349 GeneralBuildingBlock expected = mapper
350 .readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"), GeneralBuildingBlock.class);
352 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
353 RequestDetails requestDetails = new RequestDetails();
354 requestDetails.setModelInfo(null);
355 RequestParameters requestParams = new RequestParameters();
356 requestParams.setaLaCarte(true);
357 requestDetails.setRequestParameters(requestParams);
358 RequestInfo requestInfo = new RequestInfo();
359 requestInfo.setSuppressRollback(true);
360 requestInfo.setSource("VID");
361 requestDetails.setRequestInfo(requestInfo);
362 CloudConfiguration cloudConfiguration = new CloudConfiguration();
363 cloudConfiguration.setLcpCloudRegionId("myRegionId");
364 requestDetails.setCloudConfiguration(cloudConfiguration);
365 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
366 String resourceId = "123";
367 String requestAction = "createInstance";
369 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
371 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils)
372 .getAAIGenericVnf(ArgumentMatchers.isA(String.class));
373 doReturn(null).when(bbInputSetupMapperLayer)
374 .mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
375 GeneralBuildingBlock actual =
376 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
377 assertThat(actual, sameBeanAs(expected));
381 public void testGetGBBCMAddMembersAction() throws Exception {
382 GeneralBuildingBlock expected = mapper.readValue(
383 new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"), GeneralBuildingBlock.class);
384 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
385 ExecuteBuildingBlock.class);
386 RequestDetails requestDetails = mapper.readValue(
387 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
388 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
389 String requestAction = "addMembers";
390 String instanceGroupId = "instance-group-001";
392 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
393 workflowResourceIds.setInstanceGroupId(instanceGroupId);
394 executeBB.setWorkflowResourceIds(workflowResourceIds);
396 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
398 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
399 aaiInstanceGroup.setId(instanceGroupId);
400 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
402 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
403 aaiServiceInstance.setServiceInstanceId("service-instance-001");
404 aaiServiceInstance.setServiceInstanceName("test service instance 1");
405 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
407 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
408 vnf1.setVnfId("vnf-001");
409 vnf1.setVnfName("test vnf 1");
411 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
412 vnf2.setVnfId("vnf-002");
413 vnf2.setVnfName("test vnf 2");
415 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
416 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
417 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
418 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
420 GeneralBuildingBlock actual =
421 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, instanceGroupId);
423 assertThat(actual, sameBeanAs(expected));
427 public void testGetGBBALaCarteNonService() throws Exception {
428 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
429 GeneralBuildingBlock.class);
430 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
431 ExecuteBuildingBlock.class);
432 RequestDetails requestDetails = mapper.readValue(
433 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
434 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
435 String requestAction = "createInstance";
436 Service service = Mockito.mock(Service.class);
437 ServiceModel serviceModel = new ServiceModel();
438 serviceModel.setCurrentService(service);
439 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
440 String resourceId = "123";
441 String vnfType = "vnfType";
442 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
443 aaiServiceInstance.setModelVersionId("modelVersionId");
444 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
445 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
446 doReturn(service).when(SPY_bbInputSetupUtils)
447 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
448 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
449 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
450 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
451 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
453 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
454 requestAction, resourceId, vnfType);
456 assertThat(actual, sameBeanAs(expected));
460 public void testGetGBBALaCarteNonServiceIsReplace() throws Exception {
461 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
462 GeneralBuildingBlock.class);
463 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
464 ExecuteBuildingBlock.class);
465 RequestDetails requestDetails = mapper.readValue(
466 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
467 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
468 String requestAction = "replaceInstance";
469 Service service = Mockito.mock(Service.class);
470 ServiceModel serviceModel = new ServiceModel();
471 serviceModel.setCurrentService(service);
472 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
473 String resourceId = "123";
474 String vnfType = "vnfType";
475 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
476 aaiServiceInstance.setModelVersionId("modelVersionId");
477 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
478 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
479 doReturn(service).when(SPY_bbInputSetupUtils)
480 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
481 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID("modelUUID");
482 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
484 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
485 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
486 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
488 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
489 requestAction, resourceId, vnfType);
491 verify(SPY_bbInputSetup, times(1)).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
493 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
494 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID("modelUUID");
496 assertThat(actual, sameBeanAs(expected));
500 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
501 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
502 ExecuteBuildingBlock.class);
503 RequestDetails requestDetails = mapper.readValue(
504 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
505 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
506 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
507 String requestAction = "createInstance";
508 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
509 aaiServiceInstance.setModelVersionId("modelVersionId");
510 String resourceId = "123";
511 String vnfType = "vnfType";
513 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
514 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
516 expectedException.expect(ServiceModelNotFoundException.class);
517 expectedException.expectMessage(
518 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
520 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
525 public void testGetGBBALaCarteNonServiceServiceInstanceNotFoundInAAI() throws Exception {
526 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
527 ExecuteBuildingBlock.class);
528 RequestDetails requestDetails = mapper.readValue(
529 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
530 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
531 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
532 String requestAction = "createInstance";
533 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
534 aaiServiceInstance.setModelVersionId("modelVersionId");
535 String resourceId = "123";
536 String vnfType = "vnfType";
538 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
540 expectedException.expect(NoServiceInstanceFoundException.class);
541 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
543 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
548 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
549 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
550 GeneralBuildingBlock.class);
551 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
552 ExecuteBuildingBlock.class);
553 RequestDetails requestDetails = mapper.readValue(
554 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
555 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
556 String requestAction = "createInstance";
557 Service service = Mockito.mock(Service.class);
558 ServiceModel serviceModel = new ServiceModel();
559 serviceModel.setCurrentService(service);
560 String resourceId = "123";
561 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
562 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
563 aaiServiceInstance.setModelVersionId("modelVersionId");
564 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
565 String vnfType = "vnfType";
566 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
567 doReturn(service).when(SPY_bbInputSetupUtils)
568 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
569 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
571 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
573 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
574 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
576 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
577 requestAction, resourceId, vnfType);
579 assertThat(actual, sameBeanAs(expected));
583 public void testGetGBBALaCarteService() throws Exception {
584 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
585 GeneralBuildingBlock.class);
586 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
587 ExecuteBuildingBlock.class);
588 RequestDetails requestDetails = mapper.readValue(
589 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
590 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
592 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
593 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
594 new org.onap.so.serviceinstancebeans.OwningEntity();
595 requestDetails.setProject(requestProject);
596 requestDetails.setOwningEntity(requestOwningEntity);
598 Service service = Mockito.mock(Service.class);
599 Customer customer = Mockito.mock(Customer.class);
600 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
601 Project project = Mockito.mock(Project.class);
602 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
603 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
604 String resourceId = "123";
605 String requestAction = "createInstance";
606 executeBB.setaLaCarte(true);
607 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
608 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
610 doReturn(service).when(SPY_bbInputSetupUtils)
611 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
612 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
613 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
615 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
616 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
617 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
618 executeBB.getBuildingBlock().getBpmnFlowName());
619 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
621 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
622 requestAction, resourceId);
624 assertThat(actual, sameBeanAs(expected));
628 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
629 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
630 GeneralBuildingBlock.class);
631 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
632 ExecuteBuildingBlock.class);
633 RequestDetails requestDetails = mapper.readValue(
634 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
635 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
637 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
638 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
639 new org.onap.so.serviceinstancebeans.OwningEntity();
640 requestDetails.setProject(requestProject);
641 requestDetails.setOwningEntity(requestOwningEntity);
643 Service service = Mockito.mock(Service.class);
644 Customer customer = Mockito.mock(Customer.class);
645 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
646 Project project = Mockito.mock(Project.class);
647 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
648 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
649 String resourceId = "123";
650 String requestAction = "createInstance";
651 executeBB.setaLaCarte(true);
652 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
653 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
655 doReturn(null).when(SPY_bbInputSetupUtils)
656 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
657 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
658 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
659 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
660 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
662 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
663 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
664 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
665 executeBB.getBuildingBlock().getBpmnFlowName());
666 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
668 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
669 requestAction, resourceId);
671 assertThat(actual, sameBeanAs(expected));
675 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
676 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
677 GeneralBuildingBlock.class);
678 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
679 ExecuteBuildingBlock.class);
680 RequestDetails requestDetails = mapper.readValue(
681 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
682 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
684 Service service = Mockito.mock(Service.class);
685 Customer customer = Mockito.mock(Customer.class);
686 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
687 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
688 String resourceId = "123";
689 String requestAction = "createInstance";
690 executeBB.setaLaCarte(true);
691 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
692 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
694 Map<String, String> uriKeys = new HashMap<>();
695 uriKeys.put("global-customer-id", "globalCustomerId");
696 uriKeys.put("service-type", "serviceType");
698 doReturn(service).when(SPY_bbInputSetupUtils)
699 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
701 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
703 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
704 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
705 executeBB.getBuildingBlock().getBpmnFlowName());
706 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
708 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
709 requestAction, resourceId);
711 assertThat(actual, sameBeanAs(expected));
715 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
716 RequestDetails requestDetails = new RequestDetails();
717 RequestInfo requestInfo = new RequestInfo();
718 requestInfo.setInstanceName("SharansInstanceName");
719 requestDetails.setRequestInfo(requestInfo);
720 Customer customer = new Customer();
721 String serviceInstanceId = "SharansInstanceId";
722 boolean aLaCarte = true;
723 ServiceInstance expected = new ServiceInstance();
724 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
725 Service service = new Service();
726 service.setModelUUID("modelUUID");
727 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
729 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
730 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
733 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null, lookupKeyMap,
736 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
737 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
738 assertThat(actual, sameBeanAs(expected));
742 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
743 RequestDetails requestDetails = new RequestDetails();
744 RequestInfo requestInfo = new RequestInfo();
745 requestInfo.setInstanceName("SharansInstanceName");
746 requestDetails.setRequestInfo(requestInfo);
747 Customer customer = new Customer();
748 String serviceInstanceId = "SharansInstanceId";
749 boolean aLaCarte = true;
750 Service service = new Service();
751 service.setModelUUID("modelUUID");
752 ServiceInstance expected = new ServiceInstance();
753 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
754 serviceInstanceAAI.setModelVersionId("modelUUID");
755 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
756 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
758 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
759 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
760 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
762 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
763 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
764 assertThat(actual, sameBeanAs(expected));
768 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
769 RequestDetails requestDetails = new RequestDetails();
770 RequestInfo requestInfo = new RequestInfo();
771 requestInfo.setInstanceName("SharansInstanceName");
772 requestDetails.setRequestInfo(requestInfo);
773 Customer customer = new Customer();
774 String serviceInstanceId = "SharansInstanceId";
775 boolean aLaCarte = true;
776 Service service = new Service();
777 service.setModelUUID("modelUUID");
778 ServiceInstance expected = new ServiceInstance();
779 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
780 serviceInstanceAAI.setModelVersionId("modelUUID");
781 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
782 String bbName = "ActivateServiceInstanceBB";
784 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
785 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
787 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
788 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
789 assertThat(actual, sameBeanAs(expected));
793 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
794 RequestDetails requestDetails = new RequestDetails();
795 RequestInfo requestInfo = new RequestInfo();
796 requestDetails.setRequestInfo(requestInfo);
797 Customer customer = new Customer();
798 String serviceInstanceId = "SharansInstanceId";
799 boolean aLaCarte = true;
800 Service service = new Service();
801 service.setModelUUID("modelUUID");
802 ServiceInstance expected = new ServiceInstance();
803 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
804 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
805 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
806 String bbName = "ActivateServiceInstanceBB";
807 Service differentService = new Service();
808 differentService.setModelUUID("modelUUIDDifferent");
810 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
813 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
814 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
815 assertThat(actual, sameBeanAs(expected));
819 public void testGetServiceInstanceHelperCreateScenarioExistingWithName() throws Exception {
820 RequestDetails requestDetails = new RequestDetails();
821 RequestInfo requestInfo = new RequestInfo();
822 requestDetails.setRequestInfo(requestInfo);
823 ServiceSubscription serviceSub = new ServiceSubscription();
824 Customer customer = new Customer();
825 customer.setServiceSubscription(serviceSub);
826 ServiceInstance expected = new ServiceInstance();
827 expected.setServiceInstanceId("serviceInstanceId");
828 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
829 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
831 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByIdAndCustomer(Mockito.any(),
832 Mockito.any(), Mockito.any());
833 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
834 new HashMap<>(), "SharansInstanceId", false, new Service(), "ActivateServiceInstanceBB");
835 assertThat(actual, sameBeanAs(expected));
838 @Test(expected = Exception.class)
839 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
840 RequestDetails requestDetails = new RequestDetails();
841 RequestInfo requestInfo = new RequestInfo();
842 requestDetails.setRequestInfo(requestInfo);
843 Customer customer = new Customer();
844 String serviceInstanceId = "SharansInstanceId";
845 boolean aLaCarte = true;
846 Service service = new Service();
847 service.setModelUUID("modelUUID");
848 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
849 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
850 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
851 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
853 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
854 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
858 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
859 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
860 String instanceName = "instanceName";
861 String vnfType = "vnfType";
862 String resourceId = "networkId";
863 String productFamilyId = "productFamilyId";
864 String applicationId = "applicationId";
865 Service service = Mockito.mock(Service.class);
866 ServiceModel serviceModel = new ServiceModel();
867 serviceModel.setCurrentService(service);
868 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
869 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
870 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
871 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
872 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
873 CloudConfiguration cloudConfiguration = new CloudConfiguration();
874 org.onap.so.serviceinstancebeans.Platform platform =
875 Mockito.mock(org.onap.so.serviceinstancebeans.Platform.class);
876 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
877 Mockito.mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
878 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
880 doReturn(modelInfo).when(requestDetails).getModelInfo();
881 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
882 doReturn(requestInfo).when(requestDetails).getRequestInfo();
883 doReturn(instanceName).when(requestInfo).getInstanceName();
884 doReturn(platform).when(requestDetails).getPlatform();
885 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
886 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
887 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
888 doReturn(applicationId).when(requestInfo).getApplicationId();
890 doReturn(ModelType.network).when(modelInfo).getModelType();
891 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
892 .setRequestDetails(requestDetails).setService(service).setBbName(bbName)
893 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId)
894 .setVnfType(vnfType).setIsReplace(false).setApplicationId(applicationId).build();
896 doNothing().when(SPY_bbInputSetup).populateL3Network(parameter);
897 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
898 parameter.setInstanceName(instanceName);
899 parameter.setModelInfo(modelInfo);
900 verify(SPY_bbInputSetup, times(1)).populateL3Network(parameter);
901 assertEquals("NetworkId populated", true,
902 lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
904 doReturn(ModelType.vnf).when(modelInfo).getModelType();
905 resourceId = "vnfId";
906 doNothing().when(SPY_bbInputSetup).populateGenericVnf(parameter);
907 parameter.setResourceId(resourceId);
908 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
909 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(parameter);
910 assertEquals("VnfId populated", true,
911 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
912 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
913 resourceId = "volumeGroupId";
914 parameter.setResourceId(resourceId);
915 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
916 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
917 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(parameter);
918 assertEquals("VolumeGroupId populated", true,
919 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
921 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
922 resourceId = "vfModuleId";
923 parameter.setResourceId(resourceId);
924 doNothing().when(SPY_bbInputSetup).populateVfModule(parameter);
925 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
926 verify(SPY_bbInputSetup, times(1)).populateVfModule(parameter);
927 assertEquals("VfModuleId populated", true,
928 lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
930 String bbNameAssignVolume = AssignFlows.VOLUME_GROUP.toString();
931 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
932 resourceId = "vfModuleId";
933 parameter.setResourceId(resourceId);
934 parameter.setBbName(bbNameAssignVolume);
935 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
936 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
937 verify(SPY_bbInputSetup, times(2)).populateVolumeGroup(parameter);
938 assertEquals(resourceId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
942 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
943 GeneralBuildingBlock expected =
944 mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
945 GeneralBuildingBlock.class);
946 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
947 ExecuteBuildingBlock.class);
948 RequestDetails requestDetails = mapper.readValue(
949 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
950 RequestContext requestContext =
951 mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"), RequestContext.class);
952 ServiceInstance serviceInstance =
953 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
954 ServiceInstance.class);
955 CloudConfiguration cloudConfiguration = new CloudConfiguration();
956 cloudConfiguration.setTenantId("tenantId");
957 requestDetails.setCloudConfiguration(cloudConfiguration);
958 OrchestrationContext orchestrationContext = new OrchestrationContext();
959 orchestrationContext.setIsRollbackEnabled(false);
961 CloudRegion cloudRegion = new CloudRegion();
962 cloudRegion.setCloudOwner("test-owner-name");
963 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
964 cloudRegion.setComplex("complexName");
965 cloudRegion.setTenantId("tenantId");
967 Map<String, String> uriKeys = new HashMap<>();
968 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "global-customer-id");
969 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "service-type");
971 Customer customer = new Customer();
972 ServiceSubscription serviceSubscription = new ServiceSubscription();
973 serviceSubscription.setServiceType("subscriptionServiceType");
974 customer.setGlobalCustomerId("globalCustomerId");
975 customer.setSubscriberName("subscriberName");
976 customer.setSubscriberType("subscriberType");
977 customer.setServiceSubscription(serviceSubscription);
979 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant =
980 new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
981 tenant.setTenantContext("tenantContext");
982 tenant.setTenantId("tenantId");
983 tenant.setTenantName("tenantName");
985 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
986 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
987 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
988 aaiTenant.setTenantId("tenantId");
989 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
990 tenants.add(aaiTenant);
992 String requestAction = "createInstance";
994 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
995 .getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
996 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),
997 uriKeys.get("service-type"));
998 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
999 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
1000 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
1001 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(),
1003 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
1004 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
1005 doReturn(tenants).when(aaiTenants).getTenant();
1006 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setServiceInstance(serviceInstance)
1007 .setRequestDetails(requestDetails).setExecuteBB(executeBB).setRequestAction(requestAction).build();
1008 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(parameter);
1010 assertThat(actual, sameBeanAs(expected));
1014 public void testGetServiceInstanceNOAAI() throws Exception {
1015 ServiceInstance expected =
1016 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1017 ServiceInstance.class);
1018 Service service = mapper.readValue(
1019 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1020 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
1021 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
1022 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
1023 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1025 BuildingBlock buildingBlock = new BuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
1026 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setaLaCarte(true).setBuildingBlock(buildingBlock);
1027 RequestDetails requestDetails = new RequestDetails();
1028 RequestInfo reqInfo = new RequestInfo();
1029 reqInfo.setInstanceName("serviceInstanceName");
1030 requestDetails.setRequestInfo(reqInfo);
1031 ModelInfo modelInfo = new ModelInfo();
1032 modelInfo.setModelType(ModelType.service);
1033 requestDetails.setModelInfo(modelInfo);
1034 doReturn(null).when(SPY_bbInputSetupUtils)
1035 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
1036 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
1037 .mapCatalogServiceIntoServiceInstance(service);
1038 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
1039 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
1040 boolean aLaCarte = true;
1042 ServiceInstance actual =
1043 SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project, owningEntity,
1044 lookupKeyMap, serviceInstanceId, aLaCarte, executeBB.getBuildingBlock().getBpmnFlowName());
1046 assertThat(actual, sameBeanAs(expected));
1050 public void testGetServiceSubscription() throws IOException {
1051 ServiceSubscription expected = new ServiceSubscription();
1052 RequestDetails requestDetails = new RequestDetails();
1053 RequestParameters params = new RequestParameters();
1054 params.setSubscriptionServiceType("subscriptionServiceType");
1055 requestDetails.setRequestParameters(params);
1056 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription =
1057 new org.onap.aai.domain.yang.ServiceSubscription();
1058 Customer customer = new Customer();
1059 customer.setGlobalCustomerId("globalCustomerId");
1060 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
1061 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
1062 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
1064 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
1065 assertThat(actual, sameBeanAs(expected));
1069 public void testGetCustomer() throws IOException {
1070 Customer expected = new Customer();
1071 RequestDetails requestDetails = new RequestDetails();
1072 SubscriberInfo subscriberInfo = new SubscriberInfo();
1073 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
1074 requestDetails.setSubscriberInfo(subscriberInfo);
1075 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
1076 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
1077 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
1078 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
1080 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
1081 assertThat(actual, sameBeanAs(expected));
1085 public void testGetExistingServiceInstance() throws Exception {
1086 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1087 ServiceInstance expected = new ServiceInstance();
1089 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
1092 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
1093 assertThat(actual, sameBeanAs(expected));
1097 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
1098 Service service = Mockito.mock(Service.class);
1099 String key = "collectionCustId";
1100 ServiceInstance serviceInstance =
1101 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1102 ServiceInstance.class);
1103 String resourceId = "123";
1104 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
1105 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
1106 assertNull(serviceInstance.getCollection());
1107 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
1109 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
1110 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
1111 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
1113 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1114 networkCollection.setModelCustomizationUUID(key);
1115 networkCollection.setCollectionResource(new CollectionResource());
1116 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1117 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1118 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1119 networkCollection.getCollectionResource().getInstanceGroup()
1120 .setCollectionInstanceGroupCustomizations(new ArrayList<>());
1121 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1122 customizations.add(networkCollection);
1123 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1124 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setService(service)
1125 .setServiceInstance(serviceInstance).setResourceId(resourceId).setKey(key)
1126 .setBbName(AssignFlows.NETWORK_COLLECTION.toString()).build();
1128 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(parameter);
1129 assertNotNull(serviceInstance.getCollection());
1130 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1132 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1133 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1134 serviceInstance.getCollection().getInstanceGroup(), key);
1138 public void testPopulateInstanceGroup() throws Exception {
1139 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1140 Service service = Mockito.mock(Service.class);
1141 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1142 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1143 serviceInstance.setServiceInstanceId("si-001");
1144 serviceInstance.setServiceInstanceName("test service instance");
1145 serviceInstance.setInstanceGroups(instanceGroups);
1147 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1148 .setService(service).setServiceInstance(serviceInstance).setResourceId("instance-group-001")
1149 .setInstanceName("test instance group").build();
1150 SPY_bbInputSetup.populateInstanceGroup(parameter);
1151 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class),
1152 isA(Service.class));
1153 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1157 public void testIsVlanTagging() throws Exception {
1158 boolean expected = true;
1159 Service service = Mockito.mock(Service.class);
1160 String key = "collectionCustId";
1161 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1162 networkCollection.setModelCustomizationUUID(key);
1163 networkCollection.setCollectionResource(new CollectionResource());
1164 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1165 networkCollection.getCollectionResource().getInstanceGroup()
1166 .setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1167 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1168 customizations.add(networkCollection);
1169 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1170 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1171 assertEquals("Is Vlan Tagging check.", expected, actual);
1175 public void testPopulateVolumeGroup() throws Exception {
1176 RequestDetails requestDetails = new RequestDetails();
1177 RelatedInstanceList ril = new RelatedInstanceList();
1178 RelatedInstance ri = new RelatedInstance();
1179 ModelInfo mi = new ModelInfo();
1180 mi.setModelType(ModelType.vnf);
1181 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1182 mi.setModelCustomizationId("vnfModelCustomizationUUID");
1183 ri.setModelInfo(mi);
1184 ril.setRelatedInstance(ri);
1185 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] {ril});
1187 ModelInfo modelInfo = new ModelInfo();
1188 modelInfo.setModelCustomizationId("volumeGroupCustId");
1190 RequestInfo reqInfo = new RequestInfo();
1191 reqInfo.setInstanceName("volumeGroupName");
1192 requestDetails.setModelInfo(modelInfo);
1193 requestDetails.setRequestInfo(reqInfo);
1195 ServiceInstance serviceInstance = new ServiceInstance();
1196 GenericVnf vnf = new GenericVnf();
1197 vnf.setVnfId("genericVnfId");
1199 VolumeGroup vg = new VolumeGroup();
1200 vg.setVolumeGroupName("volumeGroupName");
1201 vg.setVolumeGroupId("volumeGroupId");
1202 vg.setModelInfoVfModule(new ModelInfoVfModule());
1203 vg.getModelInfoVfModule().setModelCustomizationUUID("volumeGroupCustId");
1204 vnf.getVolumeGroups().add(vg);
1205 serviceInstance.getVnfs().add(vnf);
1207 Service service = mapper.readValue(
1208 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1209 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1210 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1212 ServiceModel serviceModel = new ServiceModel();
1213 serviceModel.setCurrentService(service);
1214 String bbName = AssignFlows.VOLUME_GROUP.toString();
1215 String resourceId = "123";
1216 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo), eq(service),
1217 eq("vnfModelCustomizationUUID"));
1218 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1219 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1220 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1222 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1223 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1224 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1225 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRequestDetails(requestDetails)
1226 .setInstanceName(reqInfo.getInstanceName()).setServiceModel(serviceModel).build();
1227 SPY_bbInputSetup.populateVolumeGroup(parameter);
1228 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(eq(vg), isA(ModelInfo.class), eq(service),
1229 eq("vnfModelCustomizationUUID"));
1230 vnf.getVolumeGroups().clear();
1231 SPY_bbInputSetup.populateVolumeGroup(parameter);
1232 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1233 "vnfModelCustomizationUUID");
1237 public void testMapCatalogVolumeGroup() {
1238 VolumeGroup volumeGroup = new VolumeGroup();
1239 RequestDetails requestDetails = new RequestDetails();
1240 ModelInfo modelInfo = new ModelInfo();
1241 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1242 requestDetails.setModelInfo(modelInfo);
1243 Service service = new Service();
1244 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1245 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1246 service.getVnfCustomizations().add(resourceCust);
1247 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1248 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1249 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1250 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1252 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1254 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1256 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1260 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1261 String instanceName = "networkName";
1262 ModelInfo modelInfo = new ModelInfo();
1263 modelInfo.setModelType(ModelType.network);
1265 ServiceInstance serviceInstance = new ServiceInstance();
1266 L3Network network = new L3Network();
1267 network.setNetworkId("networkId");
1268 network.setNetworkName("networkName");
1269 serviceInstance.getNetworks().add(network);
1270 String resourceId = "123";
1272 Service service = mapper.readValue(
1273 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1274 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1275 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1276 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1278 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1280 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1281 .setInstanceName(instanceName).setModelInfo(modelInfo).setService(service).setBbName(bbName)
1282 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).build();
1283 SPY_bbInputSetup.populateL3Network(parameter);
1285 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1287 SPY_bbInputSetup.populateL3Network(parameter);
1288 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1290 instanceName = "networkName2";
1291 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null, parameter);
1292 SPY_bbInputSetup.populateL3Network(parameter);
1293 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1297 public void testMapCatalogNetwork() {
1298 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1299 L3Network network = new L3Network();
1301 RequestDetails requestDetails = new RequestDetails();
1302 ModelInfo modelInfo = new ModelInfo();
1303 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1304 requestDetails.setModelInfo(modelInfo);
1305 Service service = new Service();
1306 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1307 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1308 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1310 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1312 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1314 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1318 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1319 String instanceName = "configurationName";
1320 ModelInfo modelInfo = new ModelInfo();
1321 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1323 ServiceInstance serviceInstance = new ServiceInstance();
1324 Configuration configuration = new Configuration();
1325 configuration.setConfigurationId("configurationId");
1326 configuration.setConfigurationName("configurationName");
1327 serviceInstance.getConfigurations().add(configuration);
1328 String resourceId = "configurationId";
1329 String vnfcName = "vnfcName";
1331 Service service = mapper.readValue(
1332 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1333 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1334 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1335 service.getConfigurationCustomizations().add(configurationCust);
1336 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1337 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1338 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1340 ServiceModel serviceModel = new ServiceModel();
1341 serviceModel.setCurrentService(service);
1343 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1344 configResourceKeys.setVnfcName(vnfcName);
1345 Vnfc vnfc = new Vnfc();
1346 vnfc.setVnfcName(vnfcName);
1347 RequestDetails requestDetails = new RequestDetails();
1348 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1349 configResourceKeys);
1350 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1351 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1352 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1353 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1354 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1355 .setServiceModel(serviceModel).build();
1356 SPY_bbInputSetup.populateConfiguration(parameter);
1357 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1358 configResourceKeys);
1360 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1362 SPY_bbInputSetup.populateConfiguration(parameter);
1363 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
1364 configResourceKeys);
1366 instanceName = "configurationName2";
1367 resourceId = "resourceId2";
1368 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1369 parameter.setInstanceName(instanceName);
1370 parameter.setResourceId(resourceId);
1371 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1372 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1373 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
1374 configResourceKeys);
1375 SPY_bbInputSetup.populateConfiguration(parameter);
1376 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
1377 configResourceKeys);
1381 public void testPopulateConfigurationReplace() throws JsonParseException, JsonMappingException, IOException {
1382 String instanceName = "configurationName";
1383 ModelInfo modelInfo = new ModelInfo();
1384 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1386 ServiceInstance serviceInstance = new ServiceInstance();
1387 Configuration configuration = new Configuration();
1388 configuration.setConfigurationId("configurationId");
1389 configuration.setConfigurationName("configurationName");
1390 serviceInstance.getConfigurations().add(configuration);
1391 String resourceId = "configurationId";
1392 String vnfcName = "vnfcName";
1394 Service service = mapper.readValue(
1395 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1396 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1397 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1398 service.getConfigurationCustomizations().add(configurationCust);
1399 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1400 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1401 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1403 ServiceModel serviceModel = new ServiceModel();
1404 serviceModel.setNewService(service);
1406 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1407 configResourceKeys.setVnfcName(vnfcName);
1408 Vnfc vnfc = new Vnfc();
1409 vnfc.setVnfcName(vnfcName);
1410 RequestDetails requestDetails = mapper.readValue(
1411 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
1412 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1413 configResourceKeys);
1414 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1415 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1416 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1417 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1418 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1419 .setServiceModel(serviceModel).setIsReplace(true).build();
1420 SPY_bbInputSetup.populateConfiguration(parameter);
1421 configResourceKeys.setVnfResourceCustomizationUUID("my-test-uuid");
1422 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1423 configResourceKeys);
1427 public void testMapCatalogConfiguration() {
1428 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1429 L3Network network = new L3Network();
1431 RequestDetails requestDetails = new RequestDetails();
1432 ModelInfo modelInfo = new ModelInfo();
1433 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1434 requestDetails.setModelInfo(modelInfo);
1435 Service service = new Service();
1436 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1437 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1438 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1440 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1442 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1444 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1448 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1449 String instanceName = "configurationName";
1450 ModelInfo modelInfo = new ModelInfo();
1451 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1453 ServiceInstance serviceInstance = new ServiceInstance();
1454 Configuration configuration = new Configuration();
1455 configuration.setConfigurationId("configurationId");
1456 configuration.setConfigurationName("configurationName");
1457 configuration.setConfigurationSubType("Fabric Config");
1458 serviceInstance.getConfigurations().add(configuration);
1459 String resourceId = "configurationId";
1460 String vnfcName = "vnfcName";
1462 Service service = mapper.readValue(
1463 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1464 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1465 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1466 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1467 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1468 configResourceKeys.setVnfcName(vnfcName);
1469 Vnfc vnfc = new Vnfc();
1470 vnfc.setVnfcName(vnfcName);
1471 RequestDetails requestDetails = new RequestDetails();
1473 ServiceModel serviceModel = new ServiceModel();
1474 serviceModel.setCurrentService(service);
1476 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1477 new CvnfcConfigurationCustomization();
1478 ConfigurationResource configurationResource = new ConfigurationResource();
1479 configurationResource.setModelUUID("modelUUID");
1480 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1481 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1483 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1484 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1485 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1486 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1487 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1488 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1489 .setServiceModel(serviceModel).build();
1490 SPY_bbInputSetup.populateConfiguration(parameter);
1491 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1492 configResourceKeys);
1496 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1497 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1498 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1499 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1500 String instanceName = "vnfName";
1501 ModelInfo modelInfo = new ModelInfo();
1502 modelInfo.setModelType(ModelType.vnf);
1503 ServiceInstance serviceInstance = new ServiceInstance();
1504 GenericVnf vnf = new GenericVnf();
1505 vnf.setVnfId("genericVnfId");
1506 vnf.setVnfName("vnfName");
1507 serviceInstance.getVnfs().add(vnf);
1508 String vnfType = "vnfType";
1509 String applicationId = "applicationId";
1510 RequestDetails requestDetails =
1511 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1513 Service service = mapper.readValue(
1514 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1515 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1516 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1517 String bbName = AssignFlows.VNF.toString();
1520 ServiceModel serviceModel = new ServiceModel();
1521 serviceModel.setCurrentService(service);
1523 Platform expectedPlatform = new Platform();
1524 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1525 String resourceId = "123";
1526 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1527 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1528 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1529 vnfAAI.setModelCustomizationId("modelCustId");
1530 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1531 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1532 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1533 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1534 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1535 new org.onap.so.db.catalog.beans.InstanceGroup();
1536 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1537 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1538 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1539 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1540 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1541 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1542 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1543 .setServiceModel(serviceModel).build();
1544 SPY_bbInputSetup.populateGenericVnf(parameter);
1546 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1548 SPY_bbInputSetup.populateGenericVnf(parameter);
1549 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1551 instanceName = "vnfName2";
1552 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1553 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1555 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1556 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1558 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1560 SPY_bbInputSetup.populateGenericVnf(parameter);
1561 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1562 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1563 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1565 assertEquals("modelCustId", modelInfo.getModelCustomizationUuid());
1570 public void testPopulateGenericVnfReplace() throws JsonParseException, JsonMappingException, IOException {
1571 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1572 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1573 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1574 String instanceName = "vnfName";
1575 ModelInfo modelInfo = new ModelInfo();
1576 modelInfo.setModelType(ModelType.vnf);
1577 ServiceInstance serviceInstance = new ServiceInstance();
1578 GenericVnf vnf = new GenericVnf();
1579 vnf.setVnfId("genericVnfId");
1580 vnf.setVnfName("vnfName");
1581 serviceInstance.getVnfs().add(vnf);
1582 String vnfType = "vnfType";
1583 String applicationId = "applicationId";
1584 RequestDetails requestDetails =
1585 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1587 Service service = mapper.readValue(
1588 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1589 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1590 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1591 String bbName = AssignFlows.VNF.toString();
1593 String resourceId = "123";
1594 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1595 vnfAAI.setModelCustomizationId("modelCustId");
1596 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1597 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1598 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1599 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1600 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1601 new org.onap.so.db.catalog.beans.InstanceGroup();
1602 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1604 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1605 .setInstanceName(instanceName).setPlatform(platform).setLineOfBusiness(lineOfBusiness)
1606 .setService(service).setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1607 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1608 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1609 .setApplicationId(applicationId).setIsReplace(true).build();
1611 SPY_bbInputSetup.populateGenericVnf(parameter);
1613 assertEquals("my-test-uuid", modelInfo.getModelCustomizationUuid());
1618 public void testMapVnfcCollectionInstanceGroup() {
1619 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1620 GenericVnf genericVnf = new GenericVnf();
1621 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1622 Service service = Mockito.mock(Service.class);
1623 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1624 instanceGroup.setModelUUID("modelUUID");
1625 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1626 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1627 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1628 vnfcInstanceGroupCust.setFunction("function");
1629 vnfcInstanceGroupCust.setDescription("description");
1630 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1632 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1633 modelInfoInstanceGroup.setModelUUID("modelUUID");
1634 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1635 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1636 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1637 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null,
1640 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1642 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1646 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1647 throws JsonParseException, JsonMappingException, IOException {
1648 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1649 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1650 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1651 String instanceName = "vnfName";
1652 ModelInfo modelInfo = new ModelInfo();
1653 modelInfo.setModelType(ModelType.vnf);
1655 ServiceInstance serviceInstance = new ServiceInstance();
1656 GenericVnf vnf = new GenericVnf();
1657 vnf.setVnfId("genericVnfId");
1658 vnf.setVnfName("vnfName");
1659 serviceInstance.getVnfs().add(vnf);
1660 String vnfType = null;
1661 RequestDetails requestDetails =
1662 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1664 Service service = mapper.readValue(
1665 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1666 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1667 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1668 String bbName = AssignFlows.VNF.toString();
1670 Platform expectedPlatform = new Platform();
1671 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1672 String resourceId = "123";
1673 String applicationId = "applicationId";
1674 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1675 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1676 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1677 vnfAAI.setModelCustomizationId("modelCustId");
1678 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1679 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1680 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1681 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1682 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1683 new org.onap.so.db.catalog.beans.InstanceGroup();
1684 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1685 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1686 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1687 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1688 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1689 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1690 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1691 SPY_bbInputSetup.populateGenericVnf(parameter);
1693 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1695 SPY_bbInputSetup.populateGenericVnf(parameter);
1696 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1698 instanceName = "vnfName2";
1699 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1700 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1702 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1703 vnfAAI.setModelCustomizationId("modelCustId2");
1704 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1705 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1706 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1707 SPY_bbInputSetup.populateGenericVnf(parameter);
1708 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1709 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1710 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1714 public void testMapCatalogVnf() {
1715 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1716 GenericVnf genericVnf = new GenericVnf();
1717 RequestDetails requestDetails = new RequestDetails();
1718 ModelInfo modelInfo = new ModelInfo();
1719 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1720 requestDetails.setModelInfo(modelInfo);
1721 Service service = new Service();
1722 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1723 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1724 service.getVnfCustomizations().add(resourceCust);
1725 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1727 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1729 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1731 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1735 public void testMapCatalogCollectionAndInstanceGroup() {
1736 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1737 modelInfoCollection.setCollectionFunction("collectionFunction");
1738 modelInfoCollection.setCollectionRole("collectionRole");
1739 modelInfoCollection.setCollectionType("collectionType");
1740 modelInfoCollection.setDescription("description");
1741 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1742 modelInfoCollection.setQuantity(0);
1744 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1745 modelInfoInstanceGroup.setFunction("function");
1746 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1747 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1748 modelInfoInstanceGroup.setModelUUID("modelUUID");
1749 modelInfoInstanceGroup.setType("VNFC");
1750 modelInfoInstanceGroup.setDescription("description");
1752 InstanceGroup instanceGroup = new InstanceGroup();
1753 Collection collection = new Collection();
1754 collection.setInstanceGroup(instanceGroup);
1756 CollectionResource collectionResource = new CollectionResource();
1757 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1758 new org.onap.so.db.catalog.beans.InstanceGroup();
1759 collectionResource.setToscaNodeType("NetworkCollection");
1760 collectionResource.setInstanceGroup(catalogInstanceGroup);
1762 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1763 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1764 collectionCust.setCollectionResource(collectionResource);
1766 Service service = new Service();
1767 service.getCollectionResourceCustomizations().add(collectionCust);
1768 ServiceInstance serviceInstance = new ServiceInstance();
1769 serviceInstance.setCollection(collection);
1771 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1772 CollectionResourceInstanceGroupCustomization instanceGroupCust =
1773 new CollectionResourceInstanceGroupCustomization();
1774 instanceGroupCust.setFunction("function");
1775 instanceGroupCust.setDescription("description");
1777 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1778 collectionResource);
1780 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer)
1781 .mapCatalogInstanceGroupToInstanceGroup(collectionCust, catalogInstanceGroup);
1783 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1784 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1785 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1787 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1788 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1792 public void testAddRelationshipsToSI() throws Exception {
1793 ServiceInstance serviceInstance = new ServiceInstance();
1794 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1795 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1797 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1798 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1799 relationshipList.getRelationship().add(relationship);
1800 serviceInstanceAAI.setRelationshipList(relationshipList);
1802 Map<String, String> uriKeys = new HashMap<>();
1803 uriKeys.put("global-customer-id", "globalCustomerId");
1804 uriKeys.put("service-type", "serviceType");
1807 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1808 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1809 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1810 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1811 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1813 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1815 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1816 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1817 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1818 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1819 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1820 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1824 public void testMapConfigurations() throws JsonProcessingException {
1825 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1826 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1827 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1828 relationshipList.getRelationship().add(relationship);
1829 expectedAAI.setRelationshipList(relationshipList);
1831 Configuration expected = new Configuration();
1832 AAIResourceUri aaiResourceUri =
1833 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().configuration("configurationId"));
1834 AAIResultWrapper configurationWrapper =
1835 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1837 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1838 doReturn(expected).when(bbInputSetupMapperLayer)
1839 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1841 List<Configuration> configurations = new ArrayList<>();
1843 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), configurations);
1845 assertEquals(expected, configurations.get(0));
1849 public void testMapGenericVnfs() throws JsonProcessingException {
1850 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1851 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1852 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1853 relationshipList.getRelationship().add(relationship);
1854 expectedAAI.setRelationshipList(relationshipList);
1856 GenericVnf expected = new GenericVnf();
1857 AAIResourceUri aaiResourceUri =
1858 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("vnfId"));
1859 AAIResultWrapper vnfWrapper =
1860 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1862 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1863 doReturn(expected).when(bbInputSetupMapperLayer)
1864 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1865 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1866 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1867 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1869 List<GenericVnf> genericVnfs = new ArrayList<>();
1871 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), genericVnfs);
1873 assertEquals(expected, genericVnfs.get(0));
1874 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1875 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1876 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1880 public void testMapPnfs() throws JsonProcessingException {
1881 org.onap.aai.domain.yang.Pnf expectedAAI = new org.onap.aai.domain.yang.Pnf();
1882 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1883 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1884 relationshipList.getRelationship().add(relationship);
1885 expectedAAI.setRelationshipList(relationshipList);
1887 Pnf expected = new Pnf();
1888 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().pnf("pnfId"));
1889 AAIResultWrapper pnfWrapper =
1890 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1892 doReturn(pnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1893 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPnfIntoPnf(isA(org.onap.aai.domain.yang.Pnf.class));
1895 List<Pnf> pnfs = new ArrayList<>();
1897 SPY_bbInputSetup.mapPnfs(Arrays.asList(aaiResourceUri), pnfs);
1899 assertEquals(expected, pnfs.get(0));
1903 public void testMapVolumeGroups() throws JsonProcessingException {
1904 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1906 VolumeGroup expected = new VolumeGroup();
1907 AAIResultWrapper vnfWrapper =
1908 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1910 doReturn(expected).when(bbInputSetupMapperLayer)
1911 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1913 List<VolumeGroup> volumeGroupsList =
1914 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}));
1916 assertEquals(expected, volumeGroupsList.get(0));
1920 public void testMapLineOfBusiness() throws JsonProcessingException {
1921 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1923 LineOfBusiness expected = new LineOfBusiness();
1924 AAIResultWrapper vnfWrapper =
1925 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1927 doReturn(expected).when(bbInputSetupMapperLayer)
1928 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1930 GenericVnf vnf = new GenericVnf();
1932 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1934 assertEquals(expected, vnf.getLineOfBusiness());
1938 public void testMapPlatform() throws JsonProcessingException {
1939 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1941 Platform expected = new Platform();
1942 AAIResultWrapper vnfWrapper =
1943 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1945 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1947 GenericVnf vnf = new GenericVnf();
1949 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1951 assertEquals(expected, vnf.getPlatform());
1955 public void testMapCollection() throws JsonProcessingException {
1956 List<AAIResultWrapper> collections = new ArrayList<>();
1957 ServiceInstance serviceInstance = new ServiceInstance();
1959 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1960 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList =
1961 new org.onap.aai.domain.yang.RelationshipList();
1962 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship =
1963 new org.onap.aai.domain.yang.Relationship();
1964 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1965 aaiCollection.setRelationshipList(collectionRelationshipList);
1967 collections.add(new AAIResultWrapper(
1968 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1970 Collection collection = new Collection();
1971 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1972 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1973 InstanceGroup instanceGroup = new InstanceGroup();
1974 instanceGroupsList.add(instanceGroup);
1975 NetworkCollectionResourceCustomization networkCollectionCust =
1976 Mockito.mock(NetworkCollectionResourceCustomization.class);
1977 CollectionResource collectionResource = new CollectionResource();
1978 doReturn(collection).when(bbInputSetupMapperLayer)
1979 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1980 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1981 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils)
1982 .getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1983 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1984 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer)
1985 .mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1987 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1989 assertEquals(collection, serviceInstance.getCollection());
1990 assertEquals(instanceGroup, collection.getInstanceGroup());
1992 instanceGroupsList.clear();
1993 collection = new Collection();
1995 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1996 assertEquals(collection, serviceInstance.getCollection());
1997 assertNull(collection.getInstanceGroup());
2001 public void testMapL3Networks() throws JsonProcessingException {
2002 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
2003 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
2004 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
2005 relationshipList.getRelationship().add(relationship);
2006 expectedAAI.setRelationshipList(relationshipList);
2008 L3Network expected = new L3Network();
2009 List<L3Network> l3Networks = new ArrayList<>();
2010 AAIResultWrapper l3NetworksWrapper =
2011 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2012 AAIResourceUri aaiResourceUri =
2013 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().l3Network("networkId"));
2015 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
2016 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
2017 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2018 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
2019 eq(expected.getContrailNetworkRouteTableReferences()));
2021 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), l3Networks);
2023 assertEquals(expected, l3Networks.get(0));
2024 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2025 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
2026 eq(expected.getContrailNetworkRouteTableReferences()));
2030 public void testMapRouteTableReferences() throws JsonProcessingException {
2031 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
2033 RouteTableReference expected = new RouteTableReference();
2034 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
2035 AAIResultWrapper vnfWrapper =
2036 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2038 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
2039 isA(org.onap.aai.domain.yang.RouteTableReference.class));
2041 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}),
2042 contrailNetworkRouteTableReferences);
2044 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
2048 public void testMapOwningEntity() throws JsonProcessingException {
2049 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
2051 OwningEntity expected = new OwningEntity();
2052 AAIResultWrapper vnfWrapper =
2053 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2055 doReturn(expected).when(bbInputSetupMapperLayer)
2056 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
2058 ServiceInstance serviceInstance = new ServiceInstance();
2060 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2062 assertEquals(expected, serviceInstance.getOwningEntity());
2066 public void testMapProject() throws JsonProcessingException {
2067 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
2069 Project expected = new Project();
2070 AAIResultWrapper vnfWrapper =
2071 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2073 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
2075 ServiceInstance serviceInstance = new ServiceInstance();
2077 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2079 assertEquals(expected, serviceInstance.getProject());
2083 public void testMapCustomer() throws Exception {
2084 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
2085 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI =
2086 new org.onap.aai.domain.yang.ServiceSubscription();
2088 Customer expected = new Customer();
2089 ServiceSubscription serviceSubscription = new ServiceSubscription();
2091 String globalCustomerId = "globalCustomerId";
2092 String subscriptionServiceType = "subscriptionServiceType";
2094 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
2095 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
2096 subscriptionServiceType);
2097 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
2098 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
2099 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
2101 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
2103 assertEquals(expected, actual);
2104 assertEquals(serviceSubscription, expected.getServiceSubscription());
2108 public void testPopulateLookupKeyMapWithIds() {
2109 Map<ResourceKey, String> expected = new HashMap<>();
2110 Map<ResourceKey, String> actual = new HashMap<>();
2111 String serviceInstanceId = "serviceInstanceId";
2112 String networkId = "networkId";
2113 String vnfId = "vnfId";
2114 String pnfId = "pnfId";
2115 String vfModuleId = "vfModuleId";
2116 String volumeGroupId = "volumeGroupId";
2117 String configurationId = "configurationId";
2118 String instanceGroupId = "instancegroupId";
2120 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
2121 expected.put(ResourceKey.NETWORK_ID, networkId);
2122 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2123 expected.put(ResourceKey.PNF, pnfId);
2124 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
2125 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
2126 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
2127 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
2129 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2130 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
2131 workflowResourceIds.setNetworkId(networkId);
2132 workflowResourceIds.setVnfId(vnfId);
2133 workflowResourceIds.setPnfId(pnfId);
2134 workflowResourceIds.setVfModuleId(vfModuleId);
2135 workflowResourceIds.setVolumeGroupId(volumeGroupId);
2136 workflowResourceIds.setConfigurationId(configurationId);
2137 workflowResourceIds.setInstanceGroupId(instanceGroupId);
2139 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
2141 assertThat(actual, sameBeanAs(expected));
2145 public void testGBBMacroNoUserParamsVrfConfiguration() throws Exception {
2146 String resourceId = "123";
2147 String vnfType = "vnfType";
2148 String requestAction = "createInstance";
2149 Service service = Mockito.mock(Service.class);
2150 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2151 GeneralBuildingBlock.class);
2152 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2153 ExecuteBuildingBlock.class);
2154 RequestDetails requestDetails = mapper
2155 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacroVrf.json"), RequestDetails.class);
2156 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2158 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2159 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2160 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2161 buildingBlock.setBpmnFlowName("AssignVrfConfigurationBB");
2162 buildingBlock.setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2164 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2165 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2166 doReturn(service).when(SPY_bbInputSetupUtils)
2167 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2169 RelatedInstance relatedVpnBinding = new RelatedInstance();
2170 relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
2171 RelatedInstance relatedLocalNetwork = new RelatedInstance();
2172 relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
2173 org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
2174 aaiVpnBinding.setVpnId("vpnBindingId");
2175 org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
2176 aaiLocalNetwork.setNetworkId("localNetworkId");
2177 Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
2178 Optional.of(new org.onap.aai.domain.yang.VpnBinding());
2179 aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
2180 ServiceProxy proxy = new ServiceProxy();
2181 proxy.setType("transport");
2182 proxy.setServiceInstance(new ServiceInstance());
2183 proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2184 proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
2185 doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2186 ModelType.vpnBinding);
2187 doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2189 doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
2190 doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
2191 doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
2192 doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
2194 Configuration configuration = new Configuration();
2195 configuration.setConfigurationId("configurationId");
2196 gBB.getServiceInstance().getConfigurations().add(configuration);
2197 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
2198 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
2199 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2200 configurationCustList.add(configurationCust);
2201 doNothing().when(SPY_bbInputSetup).populateConfiguration(any(BBInputSetupParameter.class));
2203 gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2204 verify(SPY_bbInputSetup, times(1)).populateConfiguration(any(BBInputSetupParameter.class));
2205 assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
2206 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
2207 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
2209 assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
2213 public void testGetServiceProxy() {
2214 ServiceProxy expected = new ServiceProxy();
2215 expected.setType("TRANSPORT");
2216 expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
2217 expected.getModelInfoServiceProxy().setModelUuid("modelUUID");
2218 expected.getModelInfoServiceProxy().setModelInstanceName("modelInstanceName");
2219 expected.setServiceInstance(new ServiceInstance());
2220 expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2221 expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
2222 expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
2223 Service service = new Service();
2224 ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
2225 serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
2226 serviceProxyCatalog.setModelInstanceName("modelInstanceName");
2227 Service sourceService = new Service();
2228 sourceService.setModelUUID("modelUUID");
2229 sourceService.setServiceType("TRANSPORT");
2230 serviceProxyCatalog.setSourceService(sourceService);
2231 service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
2232 service.getServiceProxyCustomizations().add(serviceProxyCatalog);
2233 ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
2234 assertThat(actual, sameBeanAs(expected));
2238 public void testgetGBBMacroCloudConfiguration() throws Exception {
2239 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2240 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2241 CloudConfiguration cloudConfig = null;
2242 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
2243 aaiCloudRegion.setCloudOwner("test-owner-name");
2244 Resources resources = serviceMacro.getResources();
2245 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
2246 CloudRegion expected = new CloudRegion();
2247 expected.setLcpCloudRegionId("mdt1");
2248 expected.setCloudOwner("test-owner-name");
2249 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
2251 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2252 assertThat(actual, sameBeanAs(expected));
2254 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroVnfs.json"),
2255 org.onap.so.serviceinstancebeans.Service.class);
2256 resources = serviceMacro.getResources();
2258 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2259 assertThat(actual, sameBeanAs(expected));
2261 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNetworks.json"),
2262 org.onap.so.serviceinstancebeans.Service.class);
2263 resources = serviceMacro.getResources();
2265 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2266 assertThat(actual, sameBeanAs(expected));
2268 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"),
2269 org.onap.so.serviceinstancebeans.Service.class);
2270 resources = serviceMacro.getResources();
2272 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2277 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
2278 String resourceId = "123";
2279 String vnfType = "vnfType";
2280 String requestAction = "createInstance";
2281 Service service = Mockito.mock(Service.class);
2282 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2283 GeneralBuildingBlock.class);
2284 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2285 ExecuteBuildingBlock.class);
2286 RequestDetails requestDetails = mapper
2287 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2288 requestDetails.getRequestParameters().getUserParams().clear();
2289 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2290 aaiVnf.setModelCustomizationId("modelCustId");
2291 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2292 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2293 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2294 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2296 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2297 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2298 doReturn(service).when(SPY_bbInputSetupUtils)
2299 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2301 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2302 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2303 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2306 @Test(expected = Exception.class)
2307 public void testgetGBBMacroException() throws Exception {
2308 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2309 ExecuteBuildingBlock.class);
2310 RequestDetails requestDetails = mapper
2311 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2312 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2313 String resourceId = "123";
2314 String vnfType = "vnfType";
2315 String requestAction = "createInstance";
2317 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2318 buildingBlock.setBpmnFlowName("Network").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2320 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2324 public void test_getGBBMacroForVnfTypeNull_populateL3Network_shouldBeCalled() throws Exception {
2326 String resourceId = "123";
2327 String vnfType = "null";
2328 String requestAction = "createInstance";
2329 Service service = Mockito.mock(Service.class);
2330 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2331 GeneralBuildingBlock.class);
2332 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2334 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2335 RequestDetails requestDetails = mapper
2336 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2337 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2338 ExecuteBuildingBlock.class);
2339 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2340 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2341 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2342 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2344 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2345 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2346 doReturn(service).when(SPY_bbInputSetupUtils)
2347 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2349 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2351 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(BBInputSetupParameter.class));
2355 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2356 String resourceId = "123";
2357 String vnfType = "vnfType";
2358 String requestAction = "deactivateInstance";
2359 Service service = Mockito.mock(Service.class);
2360 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2361 GeneralBuildingBlock.class);
2362 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2363 ExecuteBuildingBlock.class);
2364 RequestDetails requestDetails = mapper
2365 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2366 requestDetails.getRequestParameters().setUserParams(null);
2367 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2368 aaiVnf.setModelCustomizationId("modelCustId");
2369 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2370 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2371 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2372 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2373 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2374 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2375 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2376 buildingBlock.setBpmnFlowName("DeactivateServiceInstanceBB").setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2378 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2379 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2380 doReturn(service).when(SPY_bbInputSetupUtils)
2381 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2383 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2384 requestAction, resourceId, vnfType);
2385 assertThat(actual, sameBeanAs(gBB));
2389 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled() throws Exception {
2391 String resourceId = "123";
2392 String vnfType = "vnfType";
2393 String requestAction = "createInstance";
2394 Service service = Mockito.mock(Service.class);
2395 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2396 GeneralBuildingBlock.class);
2397 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2398 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2399 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2400 networkCustList.add(networkCust);
2402 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2403 RequestDetails requestDetails = mapper
2404 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2405 requestDetails.getRequestParameters().setUserParams(null);
2406 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2407 ExecuteBuildingBlock.class);
2408 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2409 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2410 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2411 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2413 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2414 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2415 doReturn(service).when(SPY_bbInputSetupUtils)
2416 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2417 doReturn(networkCustList).when(service).getNetworkCustomizations();
2418 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2419 doNothing().when(SPY_bbInputSetup).populateL3Network(any(BBInputSetupParameter.class));
2421 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2423 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2424 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2428 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLink() throws Exception {
2430 String resourceId = "123";
2431 String vnfType = "vnfType";
2432 String requestAction = "createInstance";
2433 Service service = Mockito.mock(Service.class);
2434 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2435 GeneralBuildingBlock.class);
2436 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2437 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2438 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2439 networkCustList.add(networkCust);
2440 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2441 Mockito.mock(CollectionNetworkResourceCustomization.class);
2442 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2443 aaiVnf.setModelCustomizationId("modelCustId");
2444 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2445 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2447 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2448 RequestDetails requestDetails = mapper
2449 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2450 requestDetails.getRequestParameters().setUserParams(null);
2451 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2452 ExecuteBuildingBlock.class);
2453 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2454 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2455 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2456 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(true);
2458 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2459 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2460 doReturn(service).when(SPY_bbInputSetupUtils)
2461 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2462 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2463 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2464 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer)
2465 .mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2466 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer)
2467 .mapCatalogNetworkToNetwork(networkResourceCustomization);
2469 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2471 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2472 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2476 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLinkAndOtherFlowName()
2479 String otherFlowName = "CreateNetworkBB";
2480 String resourceId = "123";
2481 String vnfType = "vnfType";
2482 String requestAction = "createInstance";
2483 Service service = Mockito.mock(Service.class);
2484 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2485 GeneralBuildingBlock.class);
2486 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2487 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2488 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2489 networkCustList.add(networkCust);
2490 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2491 Mockito.mock(CollectionNetworkResourceCustomization.class);
2493 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2494 RequestDetails requestDetails = mapper
2495 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2496 requestDetails.getRequestParameters().setUserParams(null);
2497 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2498 ExecuteBuildingBlock.class);
2499 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2500 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2501 buildingBlock.setBpmnFlowName(otherFlowName).setKey("ab153b6e-c364-44c0-bef6-1f2982117f04")
2502 .setIsVirtualLink(true);
2504 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2505 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2506 doReturn(service).when(SPY_bbInputSetupUtils)
2507 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2508 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2509 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2511 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2513 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2514 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2517 @Test(expected = IllegalArgumentException.class)
2518 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2519 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2520 GeneralBuildingBlock.class);
2521 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2522 ExecuteBuildingBlock.class);
2523 RequestDetails requestDetails = mapper
2524 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2525 requestDetails.getRequestParameters().setUserParams(null);
2526 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2527 aaiVnf.setModelCustomizationId("modelCustId");
2528 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2529 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2530 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2531 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2532 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2533 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2534 String resourceId = "123";
2535 String vnfType = "vnfType";
2536 Service service = Mockito.mock(Service.class);
2537 String requestAction = "assignInstance";
2538 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2539 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2540 doReturn(service).when(SPY_bbInputSetupUtils)
2541 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2542 String generatedId = "12131";
2544 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2548 public void test_getGBBMacroNoUserParamsExistingService_forCatalogNetwork() throws Exception {
2550 String requestAction = "unassignInstance";
2551 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2552 GeneralBuildingBlock.class);
2553 L3Network network = new L3Network();
2554 network.setNetworkId("networkId");
2555 gBB.getServiceInstance().getNetworks().add(network);
2556 ServiceInstance serviceInstance = gBB.getServiceInstance();
2557 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2558 ExecuteBuildingBlock.class);
2559 RequestDetails requestDetails = mapper
2560 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2561 requestDetails.getRequestParameters().setUserParams(null);
2562 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2563 Service service = Mockito.mock(Service.class);
2564 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2565 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2566 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2567 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2568 aaiNetwork.setModelCustomizationId("modelCustId");
2570 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2571 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2572 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2573 buildingBlock.setBpmnFlowName("DeleteNetworkBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2575 aaiServiceInstance.setModelVersionId("modelVersionId");
2576 doReturn(service).when(SPY_bbInputSetupUtils)
2577 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2578 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2579 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2580 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2581 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2582 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2583 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2584 any(Service.class));
2586 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2587 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2589 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2590 any(Service.class));
2594 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
2596 String requestAction = "unassignInstance";
2597 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2598 GeneralBuildingBlock.class);
2599 L3Network network = new L3Network();
2600 network.setNetworkId("networkId");
2601 gBB.getServiceInstance().getNetworks().add(network);
2602 ServiceInstance serviceInstance = gBB.getServiceInstance();
2603 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2604 ExecuteBuildingBlock.class);
2605 RequestDetails requestDetails = mapper
2606 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2607 requestDetails.getRequestParameters().setUserParams(null);
2608 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2609 Service service = Mockito.mock(Service.class);
2610 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2611 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2612 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2613 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2614 aaiNetwork.setModelCustomizationId("modelCustId");
2615 GenericVnf vnf = new GenericVnf();
2616 vnf.setVnfId("vnfId");
2617 gBB.getServiceInstance().getVnfs().add(vnf);
2618 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2619 aaiVnf.setModelCustomizationId("modelCustId");
2621 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2622 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2623 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2624 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2625 buildingBlock.setBpmnScope("VNF");
2627 aaiServiceInstance.setModelVersionId("modelVersionId");
2628 doReturn(service).when(SPY_bbInputSetupUtils)
2629 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2630 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2631 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2632 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2633 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2634 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2635 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2636 any(Service.class));
2638 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2639 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2641 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2642 any(Service.class));
2646 public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
2648 String requestAction = "unassignInstance";
2649 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2650 GeneralBuildingBlock.class);
2651 L3Network network = new L3Network();
2652 network.setNetworkId("networkId");
2653 gBB.getServiceInstance().getNetworks().add(network);
2654 ServiceInstance serviceInstance = gBB.getServiceInstance();
2655 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2656 ExecuteBuildingBlock.class);
2657 RequestDetails requestDetails = mapper
2658 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2659 requestDetails.getRequestParameters().setUserParams(null);
2660 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2661 Service service = Mockito.mock(Service.class);
2662 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2663 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2664 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2665 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2666 aaiNetwork.setModelCustomizationId("modelCustId");
2667 GenericVnf vnf = new GenericVnf();
2668 vnf.setVnfId("vnfId");
2669 gBB.getServiceInstance().getVnfs().add(vnf);
2670 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2671 aaiVnf.setModelCustomizationId("modelCustId");
2673 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2674 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2675 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2676 buildingBlock.setBpmnFlowName("ActivateVnfBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2678 aaiServiceInstance.setModelVersionId("modelVersionId");
2679 doReturn(service).when(SPY_bbInputSetupUtils)
2680 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2681 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2682 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2683 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2684 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2685 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2686 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2687 any(Service.class));
2689 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2690 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2692 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2693 any(Service.class));
2697 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
2699 String requestAction = "unassignInstance";
2700 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2701 GeneralBuildingBlock.class);
2702 L3Network network = new L3Network();
2703 network.setNetworkId("networkId");
2704 gBB.getServiceInstance().getNetworks().add(network);
2705 ServiceInstance serviceInstance = gBB.getServiceInstance();
2706 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2707 ExecuteBuildingBlock.class);
2708 RequestDetails requestDetails = mapper
2709 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2710 requestDetails.getRequestParameters().setUserParams(null);
2711 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2712 Service service = Mockito.mock(Service.class);
2713 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2714 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2715 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2716 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2717 aaiNetwork.setModelCustomizationId("modelCustId");
2718 GenericVnf vnf = new GenericVnf();
2719 vnf.setVnfId("vnfId");
2720 gBB.getServiceInstance().getVnfs().add(vnf);
2721 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2722 aaiVnf.setModelCustomizationId("modelCustId");
2723 VfModule vfModule = new VfModule();
2724 vfModule.setVfModuleId("vfModuleId");
2725 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2726 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2727 aaiVfModule.setModelCustomizationId("modelCustId");
2729 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2730 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2731 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2732 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2733 buildingBlock.setBpmnScope("VfModule");
2735 aaiServiceInstance.setModelVersionId("modelVersionId");
2736 doReturn(service).when(SPY_bbInputSetupUtils)
2737 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2738 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2739 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2740 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2741 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2742 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2743 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2744 any(Service.class));
2745 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2747 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2748 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2750 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2751 any(Service.class));
2752 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2753 any(Service.class), any(String.class));
2757 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() throws Exception {
2759 String requestAction = "unassignInstance";
2760 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2761 GeneralBuildingBlock.class);
2762 L3Network network = new L3Network();
2763 network.setNetworkId("networkId");
2764 gBB.getServiceInstance().getNetworks().add(network);
2765 ServiceInstance serviceInstance = gBB.getServiceInstance();
2766 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2767 ExecuteBuildingBlock.class);
2768 RequestDetails requestDetails = mapper
2769 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2770 requestDetails.getRequestParameters().setUserParams(null);
2771 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2772 Service service = Mockito.mock(Service.class);
2773 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2774 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2775 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2776 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2777 aaiNetwork.setModelCustomizationId("modelCustId");
2778 GenericVnf vnf = new GenericVnf();
2779 vnf.setVnfId("vnfId");
2780 gBB.getServiceInstance().getVnfs().add(vnf);
2781 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2782 aaiVnf.setModelCustomizationId("modelCustId");
2783 VfModule vfModule = new VfModule();
2784 vfModule.setVfModuleId("vfModuleId");
2785 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2786 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2787 aaiVfModule.setModelCustomizationId("modelCustId");
2789 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2790 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2791 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2792 buildingBlock.setBpmnFlowName("UnassignVfModuleBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2794 aaiServiceInstance.setModelVersionId("modelVersionId");
2795 doReturn(service).when(SPY_bbInputSetupUtils)
2796 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2797 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2798 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2799 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2800 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2801 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2802 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2803 any(Service.class));
2804 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2806 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2807 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2809 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2810 any(Service.class));
2811 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2812 any(Service.class), any(String.class));
2816 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVolumeGroupBB() throws Exception {
2818 String requestAction = "unassignInstance";
2819 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2820 GeneralBuildingBlock.class);
2821 L3Network network = new L3Network();
2822 network.setNetworkId("networkId");
2823 gBB.getServiceInstance().getNetworks().add(network);
2824 ServiceInstance serviceInstance = gBB.getServiceInstance();
2825 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2826 ExecuteBuildingBlock.class);
2827 RequestDetails requestDetails = mapper
2828 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2829 requestDetails.getRequestParameters().setUserParams(null);
2830 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2831 Service service = Mockito.mock(Service.class);
2832 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2833 GenericVnf vnf = new GenericVnf();
2834 vnf.setVnfId("vnfId");
2835 gBB.getServiceInstance().getVnfs().add(vnf);
2836 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2837 aaiVnf.setModelCustomizationId("modelCustId");
2838 VfModule vfModule = new VfModule();
2839 vfModule.setVfModuleId("vfModuleId");
2840 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2841 CloudRegion cloudRegion = new CloudRegion();
2842 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2843 cloudRegion.setCloudOwner("CloudOwner");
2844 VolumeGroup volumeGroup = new VolumeGroup();
2845 volumeGroup.setVolumeGroupId("volumeGroupId");
2846 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2847 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2848 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2850 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2851 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2852 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2853 buildingBlock.setBpmnFlowName("UnassignVolumeGroupBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2855 aaiServiceInstance.setModelVersionId("modelVersionId");
2856 doReturn(service).when(SPY_bbInputSetupUtils)
2857 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2858 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2859 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2860 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2861 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2862 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2863 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2864 any(Service.class));
2865 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2866 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2867 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2870 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2871 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2873 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2874 any(Service.class));
2875 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2876 isA(Service.class), isA(String.class));
2880 public void test_getGBBMacroNoUserParamsExistingService_forActivateFabricConfigurationBB() throws Exception {
2882 String requestAction = "unassignInstance";
2883 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2884 GeneralBuildingBlock.class);
2885 L3Network network = new L3Network();
2886 network.setNetworkId("networkId");
2887 gBB.getServiceInstance().getNetworks().add(network);
2888 ServiceInstance serviceInstance = gBB.getServiceInstance();
2889 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2890 ExecuteBuildingBlock.class);
2891 RequestDetails requestDetails = mapper
2892 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2893 requestDetails.getRequestParameters().setUserParams(null);
2894 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2895 Service service = Mockito.mock(Service.class);
2896 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2897 GenericVnf vnf = new GenericVnf();
2898 vnf.setVnfId("vnfId");
2899 gBB.getServiceInstance().getVnfs().add(vnf);
2900 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2901 aaiVnf.setModelCustomizationId("modelCustId");
2902 VfModule vfModule = new VfModule();
2903 vfModule.setVfModuleId("vfModuleId");
2904 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2905 VolumeGroup volumeGroup = new VolumeGroup();
2906 volumeGroup.setVolumeGroupId("volumeGroupId");
2907 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2908 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2909 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2910 Configuration configuration = new Configuration();
2911 configuration.setConfigurationId("configurationId");
2912 gBB.getServiceInstance().getConfigurations().add(configuration);
2913 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2914 aaiConfiguration.setModelCustomizationId("modelCustId");
2916 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2917 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2918 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2919 buildingBlock.setBpmnFlowName("ActivateFabricConfigurationBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2921 aaiServiceInstance.setModelVersionId("modelVersionId");
2922 doReturn(service).when(SPY_bbInputSetupUtils)
2923 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2924 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2925 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2926 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2927 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2928 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2929 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class),
2930 isA(Service.class), isA(ConfigurationResourceKeys.class));
2933 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2934 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2936 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2937 any(Service.class), isA(ConfigurationResourceKeys.class));
2941 public void testGetGBBMacroExistingServiceServiceinstancenotFoundInAai() throws Exception {
2942 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2943 ExecuteBuildingBlock.class);
2944 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2945 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2947 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2948 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2950 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2952 expectedException.expect(NoServiceInstanceFoundException.class);
2953 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
2955 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2956 cloudConfiguration);
2960 public void testGetGBBMacroExistingServiceServiceModelNotFound() throws Exception {
2961 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2962 ExecuteBuildingBlock.class);
2963 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2964 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2965 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2966 aaiServiceInstance.setModelVersionId("modelVersionId");
2968 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2969 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2971 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2972 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2974 expectedException.expect(ServiceModelNotFoundException.class);
2975 expectedException.expectMessage(
2976 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
2978 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2979 cloudConfiguration);
2983 public void testGetVnfId() {
2984 String expected = "vnfId";
2985 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
2986 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2987 InfraActiveRequests request = new InfraActiveRequests();
2988 request.setVnfId(expected);
2989 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2991 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2993 assertEquals("VnfId is set correctly", expected, actual);
2997 public void testCreateVfModule() {
2998 String vfModuleId = "vfModuleId";
2999 String instanceName = "vfModuleName";
3000 Map<String, String> cloudParams = new HashMap<>();
3001 cloudParams.put("param1", "param1Value");
3002 VfModule expected = new VfModule();
3003 expected.setVfModuleId(vfModuleId);
3004 expected.setVfModuleName(instanceName);
3005 expected.setCloudParams(cloudParams);
3006 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3007 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3008 List<Map<String, String>> instanceParams = new ArrayList<>();
3009 instanceParams.add(cloudParams);
3011 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
3013 assertThat(actual, sameBeanAs(expected));
3014 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3016 expected.getCloudParams().clear();
3017 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
3018 assertThat(actual, sameBeanAs(expected));
3022 public void testCreateVolumeGroup() {
3023 String volumeGroupId = "volumeGroupId";
3024 String instanceName = "vfModuleName";
3025 String vnfType = "vnfType";
3026 Map<String, String> cloudParams = new HashMap<>();
3027 cloudParams.put("param1", "param1Value");
3028 VolumeGroup expected = new VolumeGroup();
3029 expected.setVolumeGroupId(volumeGroupId);
3030 expected.setVolumeGroupName(instanceName);
3031 expected.setCloudParams(cloudParams);
3032 expected.setVnfType(vnfType);
3033 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3034 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3035 List<Map<String, String>> instanceParams = new ArrayList<>();
3036 instanceParams.add(cloudParams);
3038 VolumeGroup actual =
3039 SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
3041 assertThat(actual, sameBeanAs(expected));
3042 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3044 expected.getCloudParams().clear();
3045 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
3046 assertThat(actual, sameBeanAs(expected));
3050 public void testCreateNetwork() {
3051 String networkId = "networkId";
3052 String instanceName = "networkName";
3053 Map<String, String> cloudParams = new HashMap<>();
3054 cloudParams.put("param1", "param1Value");
3055 L3Network expected = new L3Network();
3056 expected.setNetworkId(networkId);
3057 expected.setNetworkName(instanceName);
3058 expected.setCloudParams(cloudParams);
3059 Platform platform = new Platform();
3060 platform.setPlatformName("platformName");
3061 expected.setPlatform(platform);
3062 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3063 lineOfBusiness.setLineOfBusinessName("lineOfBusiness");
3064 expected.setLineOfBusiness(lineOfBusiness);
3065 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3066 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3067 List<Map<String, String>> instanceParams = new ArrayList<>();
3068 instanceParams.add(cloudParams);
3069 org.onap.so.serviceinstancebeans.Platform platformRequest = new org.onap.so.serviceinstancebeans.Platform();
3070 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusinessRequest =
3071 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3072 lineOfBusinessRequest.setLineOfBusinessName("lineOfBusiness");
3073 platformRequest.setPlatformName("platformName");
3074 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3075 .setPlatform(platformRequest).setLineOfBusiness(lineOfBusinessRequest).build();
3077 SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams, parameter);
3079 assertThat(actual, sameBeanAs(expected));
3080 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
3082 expected.getCloudParams().clear();
3084 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null, parameter);
3085 assertThat(actual, sameBeanAs(expected));
3089 public void testCreateGenericVnf() {
3090 String vnfId = "vnfId";
3091 String instanceName = "vnfName";
3092 String vnfType = "vnfType";
3093 String platformName = "platformName";
3094 String lineOfBusinessName = "lineOfBusinessName";
3095 String productFamilyId = "productFamilyId";
3096 String applicationId = "applicationId";
3097 Platform platform = new Platform();
3098 platform.setPlatformName(platformName);
3099 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3100 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3101 Map<String, String> cloudParams = new HashMap<>();
3102 cloudParams.put("param1", "param1Value");
3103 GenericVnf expected = new GenericVnf();
3104 expected.setVnfId(vnfId);
3105 expected.setVnfName(instanceName);
3106 expected.setVnfType(vnfType);
3107 expected.setCloudParams(cloudParams);
3108 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3109 expected.setPlatform(platform);
3110 expected.setLineOfBusiness(lineOfBusiness);
3111 expected.setProvStatus("PREPROV");
3112 expected.setServiceId(productFamilyId);
3113 expected.setApplicationId(applicationId);
3114 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3115 List<Map<String, String>> instanceParams = new ArrayList<>();
3116 instanceParams.add(cloudParams);
3117 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
3118 platform.setPlatformName(platformName);
3119 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness =
3120 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3121 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3123 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
3124 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
3126 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
3127 requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
3129 assertThat(actual, sameBeanAs(expected));
3130 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
3132 expected.getCloudParams().clear();
3133 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
3134 vnfId, vnfType, null, productFamilyId, applicationId);
3135 assertThat(actual, sameBeanAs(expected));
3139 public void testMapCatalogVfModule() {
3140 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3141 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3142 VfModule vfModule = new VfModule();
3143 ModelInfo modelInfo = new ModelInfo();
3144 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3145 Service service = new Service();
3146 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3147 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3148 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3149 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3150 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
3151 service.getVnfCustomizations().add(vnfResourceCust);
3152 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3154 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3156 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3158 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3160 modelInfo.setModelCustomizationUuid(null);
3161 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
3163 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3165 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3169 public void testMapCatalogVfModuleIfNoVfUnderVnf() {
3170 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3171 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3172 VfModule vfModule = new VfModule();
3173 ModelInfo modelInfo = new ModelInfo();
3174 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3175 Service service = new Service();
3176 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3177 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3178 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3179 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3180 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3181 doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
3182 .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
3183 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3185 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3187 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3189 verify(SPY_bbInputSetupUtils, times(1))
3190 .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
3194 public void testPopulateVfModule() throws Exception {
3195 String vnfId = "vnfId";
3196 String vfModuleId = "vfModuleId";
3197 String volumeGroupId = "volumeGroupId";
3198 String vfModuleCustomizationId = "vfModuleCustomizationId";
3199 ModelInfo modelInfo = new ModelInfo();
3200 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3201 Service service = new Service();
3202 ServiceModel serviceModel = new ServiceModel();
3203 serviceModel.setCurrentService(service);
3204 String bbName = AssignFlows.VF_MODULE.toString();
3205 ServiceInstance serviceInstance = new ServiceInstance();
3206 GenericVnf vnf = new GenericVnf();
3207 vnf.setVnfId(vnfId);
3208 VolumeGroup volumeGroup = new VolumeGroup();
3209 volumeGroup.setVolumeGroupId(volumeGroupId);
3210 vnf.getVolumeGroups().add(volumeGroup);
3211 serviceInstance.getVnfs().add(vnf);
3212 VfModule vfModule1 = new VfModule();
3213 vfModule1.setVfModuleId("vfModuleId1");
3214 VfModule vfModule2 = new VfModule();
3215 vfModule2.setVfModuleId("vfModuleId2");
3216 vnf.getVfModules().add(vfModule1);
3217 vnf.getVfModules().add(vfModule2);
3218 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3219 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3220 String resourceId = vfModuleId;
3221 RelatedInstanceList[] relatedInstanceList = null;
3222 String instanceName = "vfModuleName";
3223 List<Map<String, String>> instanceParams = null;
3224 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3226 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3227 vnfAAI.setModelCustomizationId("vnfModelCustId");
3228 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3229 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3230 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3231 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3233 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3234 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3235 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3236 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3237 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3238 isA(Service.class));
3239 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3240 isA(Service.class), isA(String.class));
3242 SPY_bbInputSetup.populateVfModule(new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3243 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
3244 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3245 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3246 .setCloudConfiguration(cloudConfiguration).setServiceModel(serviceModel).build());
3248 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3249 isA(Service.class), isA(String.class));
3250 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3251 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3252 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3253 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3257 public void testPopulateVfModuleIsReplaceCorrectPopulationOfVfs() throws Exception {
3258 String vnfId = "vnfId";
3259 String vfModuleId = "vfModuleId";
3260 String volumeGroupId = "volumeGroupId";
3261 String vfModuleCustomizationId = "vfModuleCustomizationId";
3262 ModelInfo modelInfo = new ModelInfo();
3263 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3264 Service currentService = new Service();
3265 currentService.setModelUUID("currentUUID");
3266 Service newService = new Service();
3267 newService.setModelUUID("newUUID");
3268 ServiceModel serviceModel = new ServiceModel();
3269 serviceModel.setCurrentService(currentService);
3270 serviceModel.setNewService(newService);
3271 String bbName = "ActivateVfModuleBB";
3272 ServiceInstance serviceInstance = new ServiceInstance();
3273 GenericVnf vnf = new GenericVnf();
3274 vnf.setVnfId(vnfId);
3275 VolumeGroup volumeGroup = new VolumeGroup();
3276 volumeGroup.setVolumeGroupId(volumeGroupId);
3277 vnf.getVolumeGroups().add(volumeGroup);
3278 serviceInstance.getVnfs().add(vnf);
3279 VfModule vfModule1 = new VfModule();
3280 vfModule1.setVfModuleId("vfModuleId1");
3281 VfModule vfModule2 = new VfModule();
3282 vfModule2.setVfModuleId("vfModuleId2");
3283 vnf.getVfModules().add(vfModule1);
3284 vnf.getVfModules().add(vfModule2);
3285 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3286 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3287 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId1");
3288 String resourceId = vfModuleId;
3289 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3290 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3291 RelatedInstance relatedInstance = new RelatedInstance();
3292 relatedInstance.setInstanceId(vnfId);
3294 ModelInfo vnfModelInfo = new ModelInfo();
3295 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3296 vnfModelInfo.setModelType(ModelType.vnf);
3297 relatedInstance.setModelInfo(vnfModelInfo);
3298 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3299 relatedInstanceList[0] = relatedInstanceListObj;
3301 String instanceName = "vfModuleName";
3302 List<Map<String, String>> instanceParams = null;
3303 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3305 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3306 vnfAAI.setModelCustomizationId("vnfModelCustId");
3307 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3308 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3309 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3310 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3312 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3313 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3314 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3315 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3316 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3317 isA(Service.class));
3318 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3319 isA(Service.class), isA(String.class));
3321 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3322 .setService(newService).setBbName(bbName).setServiceInstance(serviceInstance)
3323 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3324 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3325 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3326 SPY_bbInputSetup.populateVfModule(parameter);
3328 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3329 eq(currentService), eq("vnfModelCustId"));
3330 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), eq(newService),
3331 eq("vnfCustomizationId"));
3332 assertEquals("Lookup Key Map populated with VfModule Id", "vfModuleId1",
3333 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3334 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3335 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3339 public void testPopulateVfModuleIsReplace() throws Exception {
3340 String vnfId = "vnfId";
3341 String vfModuleId = "vfModuleId";
3342 String volumeGroupId = "volumeGroupId";
3343 String vfModuleCustomizationId = "vfModuleCustomizationId";
3344 ModelInfo modelInfo = new ModelInfo();
3345 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3346 Service currentService = new Service();
3347 Service newService = new Service();
3348 ServiceModel serviceModel = new ServiceModel();
3349 serviceModel.setCurrentService(currentService);
3350 currentService.setModelUUID("currentUUID");
3351 serviceModel.setNewService(newService);
3352 currentService.setModelUUID("newUUID");
3353 String bbName = AssignFlows.VF_MODULE.toString();
3354 ServiceInstance serviceInstance = new ServiceInstance();
3355 GenericVnf vnf = new GenericVnf();
3356 vnf.setVnfId(vnfId);
3357 VolumeGroup volumeGroup = new VolumeGroup();
3358 volumeGroup.setVolumeGroupId(volumeGroupId);
3359 vnf.getVolumeGroups().add(volumeGroup);
3360 serviceInstance.getVnfs().add(vnf);
3361 VfModule vfModule1 = new VfModule();
3362 vfModule1.setVfModuleId("vfModuleId1");
3363 VfModule vfModule2 = new VfModule();
3364 vfModule2.setVfModuleId("vfModuleId2");
3365 vnf.getVfModules().add(vfModule1);
3366 vnf.getVfModules().add(vfModule2);
3367 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3368 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3369 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModuleId);
3370 String resourceId = vfModuleId;
3371 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3372 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3373 RelatedInstance relatedInstance = new RelatedInstance();
3374 relatedInstance.setInstanceId(vnfId);
3376 ModelInfo vnfModelInfo = new ModelInfo();
3377 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3378 vnfModelInfo.setModelType(ModelType.vnf);
3379 relatedInstance.setModelInfo(vnfModelInfo);
3380 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3381 relatedInstanceList[0] = relatedInstanceListObj;
3383 String instanceName = "vfModuleName";
3384 List<Map<String, String>> instanceParams = null;
3385 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3387 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3388 vnfAAI.setModelCustomizationId("vnfModelCustId");
3389 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3390 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3391 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3392 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3394 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3395 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3396 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3397 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3398 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3399 isA(Service.class));
3400 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3401 isA(Service.class), isA(String.class));
3403 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3404 .setService(newService).setServiceInstance(serviceInstance).setBbName(bbName)
3405 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3406 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3407 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3410 SPY_bbInputSetup.populateVfModule(parameter);
3412 verify(SPY_bbInputSetup, times(2)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3413 eq(serviceModel.getCurrentService()), isA(String.class));
3414 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3415 eq(serviceModel.getNewService()), isA(String.class));
3416 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3417 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3418 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3419 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3423 public void testGettingVnfcToConfiguration() throws Exception {
3425 String vnfcName = "vnfcName";
3426 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
3427 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().vnfc(vnfcName));
3428 AAIResultWrapper configurationWrapper =
3429 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
3431 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3432 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3433 Assert.assertNull(vnfc);
3435 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3436 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3437 Assert.assertNotNull(vnfc);