2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.bpmn.servicedecomposition.tasks;
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import static org.mockito.Matchers.any;
29 import static org.mockito.Matchers.eq;
30 import static org.mockito.Matchers.isA;
31 import static org.mockito.Mockito.doNothing;
32 import static org.mockito.Mockito.doReturn;
33 import static org.mockito.Mockito.times;
34 import static org.mockito.Mockito.verify;
37 import java.io.IOException;
38 import java.util.ArrayList;
39 import java.util.Arrays;
40 import java.util.HashMap;
41 import java.util.List;
44 import org.camunda.bpm.engine.delegate.DelegateExecution;
45 import org.junit.Before;
46 import org.junit.Test;
47 import org.junit.runner.RunWith;
48 import org.mockito.Mock;
49 import org.mockito.Mockito;
50 import org.mockito.Spy;
51 import org.mockito.runners.MockitoJUnitRunner;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
57 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
58 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
62 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
63 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
64 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
65 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
68 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
69 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
70 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
71 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
72 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
73 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
74 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
75 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
76 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
77 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
78 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
79 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
80 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
81 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
82 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
83 import org.onap.so.client.aai.AAIObjectType;
84 import org.onap.so.client.aai.entities.AAIResultWrapper;
85 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
86 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
87 import org.onap.so.constants.Defaults;
88 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
89 import org.onap.so.db.catalog.beans.CollectionResource;
90 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
91 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
92 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
93 import org.onap.so.db.catalog.beans.InstanceGroupType;
94 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
95 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
96 import org.onap.so.db.catalog.beans.OrchestrationStatus;
97 import org.onap.so.db.catalog.beans.Service;
98 import org.onap.so.db.catalog.beans.VfModuleCustomization;
99 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
100 import org.onap.so.db.request.beans.InfraActiveRequests;
101 import org.onap.so.serviceinstancebeans.CloudConfiguration;
102 import org.onap.so.serviceinstancebeans.ModelInfo;
103 import org.onap.so.serviceinstancebeans.ModelType;
104 import org.onap.so.serviceinstancebeans.RelatedInstance;
105 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
106 import org.onap.so.serviceinstancebeans.RequestDetails;
107 import org.onap.so.serviceinstancebeans.RequestInfo;
108 import org.onap.so.serviceinstancebeans.RequestParameters;
109 import org.onap.so.serviceinstancebeans.Resources;
110 import org.onap.so.serviceinstancebeans.SubscriberInfo;
112 import com.fasterxml.jackson.core.JsonParseException;
113 import com.fasterxml.jackson.core.JsonProcessingException;
114 import com.fasterxml.jackson.databind.JsonMappingException;
115 import com.fasterxml.jackson.databind.ObjectMapper;
116 @RunWith(MockitoJUnitRunner.class)
117 public class BBInputSetupTest {
118 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
120 protected ObjectMapper mapper = new ObjectMapper();
121 private static final String CLOUD_OWNER = "CloudOwner";
124 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
127 private BBInputSetupUtils SPY_bbInputSetupUtils;
130 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
134 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
135 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
139 public void testGetAlaCarteServiceInstance() throws Exception {
140 ServiceInstance expected = mapper.readValue(
141 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
142 ServiceInstance.class);
143 RequestDetails requestDetails = new RequestDetails();
144 RequestInfo requestInfo = new RequestInfo();
145 requestInfo.setInstanceName("SharansInstanceName");
146 requestDetails.setRequestInfo(requestInfo);
147 Customer customer = new Customer();
148 String serviceInstanceId = "SharansInstanceId";
149 boolean aLaCarte = true;
150 Service service = new Service();
151 service.setModelUUID("modelUUID");
152 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
153 modelInfoServiceInstance.setModelUuid("modelUUID");
154 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
155 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
156 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
157 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
158 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
159 Service differentService = new Service();
160 differentService.setModelUUID("modelUUIDDifferent");
162 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
163 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
164 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
165 doReturn(differentService).when(SPY_bbInputSetupUtils)
166 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
167 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
168 .mapCatalogServiceIntoServiceInstance(differentService);
170 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
171 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
172 assertThat(actual, sameBeanAs(expected));
175 @Test(expected = Exception.class)
176 public void testGetAlaCarteServiceInstanceException() throws Exception {
177 ServiceInstance expected = mapper.readValue(
178 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
179 ServiceInstance.class);
180 RequestDetails requestDetails = new RequestDetails();
181 RequestInfo requestInfo = new RequestInfo();
182 requestInfo.setInstanceName("SharansInstanceName");
183 requestDetails.setRequestInfo(requestInfo);
184 Customer customer = new Customer();
185 String serviceInstanceId = "SharansInstanceId";
186 boolean aLaCarte = true;
187 Service service = new Service();
188 service.setModelUUID("modelUUID");
189 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
190 modelInfoServiceInstance.setModelUuid("modelUUID");
191 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
192 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
193 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
194 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
195 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
196 Service differentService = new Service();
197 differentService.setModelUUID("modelUUIDDifferent");
199 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
200 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
201 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
202 doReturn(null).when(SPY_bbInputSetupUtils)
203 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
205 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
206 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
207 assertThat(actual, sameBeanAs(expected));
211 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
212 RequestDetails requestDetails = mapper.readValue(
213 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
214 SubscriberInfo subscriberInfo = new SubscriberInfo();
215 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
216 RequestParameters requestParams = new RequestParameters();
217 requestParams.setSubscriptionServiceType("subscriptionServiceType");
218 requestDetails.setRequestParameters(requestParams);
219 requestDetails.setSubscriberInfo(subscriberInfo);
220 String resourceId = "resourceId";
221 Customer expected = new Customer();
222 expected.setGlobalCustomerId("globalCustomerId");
223 ServiceSubscription serviceSubscription = new ServiceSubscription();
224 serviceSubscription.setServiceType("subscriptionServiceType");
226 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
227 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
229 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
231 assertThat(actual, sameBeanAs(expected));
233 requestDetails.setSubscriberInfo(null);
235 doReturn(null).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
236 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromURI(resourceId);
237 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscriptionFromURI(resourceId, expected);
239 assertThat(actual, sameBeanAs(expected));
244 public void testSetHomingFlag() throws JsonParseException, JsonMappingException, IOException {
245 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
246 GeneralBuildingBlock.class);
247 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
248 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
249 GenericVnf genericVnfExpected = new GenericVnf();
250 genericVnfExpected.setVnfId("vnfId");
251 genericVnfExpected.setCallHoming(true);
252 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
253 boolean homing = true;
254 GenericVnf genericVnfActual = new GenericVnf();
255 genericVnfActual.setVnfId("vnfId");
256 genericVnfActual.setCallHoming(false);
257 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
258 GeneralBuildingBlock.class);
259 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
261 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
262 assertThat(actual, sameBeanAs(expected));
266 public void testGetExecuteBBFromExecution() throws IOException {
267 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
268 BuildingBlock bb = new BuildingBlock();
269 bb.setBpmnFlowName("AssignServiceInstanceBB");
270 expected.setBuildingBlock(bb);
271 expected.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
272 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
273 doReturn(expected).when(execution).getVariable(any(String.class));
274 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
275 assertThat(actual, sameBeanAs(expected));
279 public void testGetGBB() throws Exception {
280 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
281 GeneralBuildingBlock.class);
283 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
284 executeBB.setRequestId("requestId");
285 RequestDetails requestDetails = new RequestDetails();
286 ModelInfo modelInfo = new ModelInfo();
287 modelInfo.setModelType(ModelType.service);
288 requestDetails.setModelInfo(modelInfo);
289 RequestParameters requestParams = new RequestParameters();
290 requestParams.setaLaCarte(true);
291 requestDetails.setRequestParameters(requestParams);
292 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
293 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
294 String resourceId = "123";
295 String requestAction = "createInstance";
296 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
297 requestAction, resourceId);
298 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(any(WorkflowResourceIds.class), any());
299 boolean aLaCarte = true;
300 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte,
303 assertThat(actual, sameBeanAs(expected));
307 public void testGetGBBCM() throws Exception {
308 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"),
309 GeneralBuildingBlock.class);
311 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
312 executeBB.setRequestId("requestId");
313 RequestDetails requestDetails = new RequestDetails();
314 requestDetails.setModelInfo(null);
315 RequestParameters requestParams = new RequestParameters();
316 requestParams.setaLaCarte(true);
317 requestDetails.setRequestParameters(requestParams);
318 RequestInfo requestInfo = new RequestInfo();
319 requestInfo.setSuppressRollback(true);
320 requestDetails.setRequestInfo(requestInfo);
321 CloudConfiguration cloudConfiguration = new CloudConfiguration();
322 cloudConfiguration.setLcpCloudRegionId("myRegionId");
323 requestDetails.setCloudConfiguration(cloudConfiguration);
324 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
325 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
326 String resourceId = "123";
327 String requestAction = "createInstance";
328 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
329 requestAction, resourceId);
330 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(any(WorkflowResourceIds.class), any());
331 doReturn(null).when(bbInputSetupMapperLayer).mapAAIGenericVnfIntoGenericVnf(any(org.onap.aai.domain.yang.GenericVnf.class));
332 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction,
335 assertThat(actual, sameBeanAs(expected));
339 public void testGetGBBALaCarteNonService() throws Exception {
340 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
341 GeneralBuildingBlock.class);
342 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
343 ExecuteBuildingBlock.class);
344 RequestDetails requestDetails = mapper.readValue(
345 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
346 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
347 String requestAction = "createInstance";
348 Service service = Mockito.mock(Service.class);
349 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
350 String resourceId = "123";
351 String vnfType = "vnfType";
352 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
353 aaiServiceInstance.setModelVersionId("modelVersionId");
354 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
355 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
356 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
357 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
358 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
360 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
361 serviceInstance, lookupKeyMap, resourceId, vnfType);
362 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
363 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
364 executeBB, requestAction, null);
366 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
367 requestAction, resourceId, vnfType);
369 assertThat(actual, sameBeanAs(expected));
372 @Test(expected = Exception.class)
373 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
374 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
375 ExecuteBuildingBlock.class);
376 RequestDetails requestDetails = mapper.readValue(
377 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
378 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
379 String requestAction = "createInstance";
380 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
381 aaiServiceInstance.setModelVersionId("modelVersionId");
382 String resourceId = "123";
383 String vnfType = "vnfType";
384 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
385 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
387 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
392 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
393 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
394 GeneralBuildingBlock.class);
395 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
396 ExecuteBuildingBlock.class);
397 RequestDetails requestDetails = mapper.readValue(
398 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
399 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
400 String requestAction = "createInstance";
401 Service service = Mockito.mock(Service.class);
402 String resourceId = "123";
403 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
404 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
405 aaiServiceInstance.setModelVersionId("modelVersionId");
406 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
407 String vnfType = "vnfType";
408 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
409 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
410 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
411 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
413 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
414 serviceInstance, lookupKeyMap, resourceId, vnfType);
416 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
417 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
418 executeBB, requestAction,null);
420 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
421 requestAction, resourceId, vnfType);
423 assertThat(actual, sameBeanAs(expected));
427 public void testGetGBBALaCarteService() 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<>();
436 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
437 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
438 requestDetails.setProject(requestProject);
439 requestDetails.setOwningEntity(requestOwningEntity);
441 Service service = Mockito.mock(Service.class);
442 Customer customer = Mockito.mock(Customer.class);
443 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
444 Project project = Mockito.mock(Project.class);
445 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
446 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
447 String resourceId = "123";
448 String requestAction = "createInstance";
449 executeBB.setaLaCarte(true);
450 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
451 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
453 doReturn(service).when(SPY_bbInputSetupUtils)
454 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
455 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
456 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
457 doReturn(owningEntity).when(bbInputSetupMapperLayer)
458 .mapRequestOwningEntity(requestDetails.getOwningEntity());
460 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
461 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
462 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
463 executeBB.getBuildingBlock().getBpmnFlowName());
464 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
465 executeBB, requestAction, customer);
467 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
468 requestAction, resourceId);
470 assertThat(actual, sameBeanAs(expected));
474 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
475 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
476 GeneralBuildingBlock.class);
477 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
478 ExecuteBuildingBlock.class);
479 RequestDetails requestDetails = mapper.readValue(
480 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
481 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
483 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
484 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
485 requestDetails.setProject(requestProject);
486 requestDetails.setOwningEntity(requestOwningEntity);
488 Service service = Mockito.mock(Service.class);
489 Customer customer = Mockito.mock(Customer.class);
490 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
491 Project project = Mockito.mock(Project.class);
492 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
493 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
494 String resourceId = "123";
495 String requestAction = "createInstance";
496 executeBB.setaLaCarte(true);
497 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
498 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
500 doReturn(null).when(SPY_bbInputSetupUtils)
501 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
502 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
503 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
504 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
505 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
506 doReturn(owningEntity).when(bbInputSetupMapperLayer)
507 .mapRequestOwningEntity(requestDetails.getOwningEntity());
509 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
510 doReturn(serviceSubscription).when(SPY_bbInputSetup).getServiceSubscription(requestDetails, customer);
511 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
512 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
513 executeBB.getBuildingBlock().getBpmnFlowName());
514 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
515 executeBB, requestAction,customer);
517 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
518 requestAction, resourceId);
520 assertThat(actual, sameBeanAs(expected));
524 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
525 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
526 GeneralBuildingBlock.class);
527 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
528 ExecuteBuildingBlock.class);
529 RequestDetails requestDetails = mapper.readValue(
530 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
531 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
533 Service service = Mockito.mock(Service.class);
534 Customer customer = Mockito.mock(Customer.class);
535 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
536 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
537 String resourceId = "123";
538 String requestAction = "createInstance";
539 executeBB.setaLaCarte(true);
540 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
541 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
543 Map<String, String> uriKeys = new HashMap<>();
544 uriKeys.put("global-customer-id", "globalCustomerId");
545 uriKeys.put("service-type", "serviceType");
546 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
547 .getURIKeysFromServiceInstance(resourceId);
548 doReturn(service).when(SPY_bbInputSetupUtils)
549 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
550 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
552 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
553 doReturn(serviceSubscription).when(SPY_bbInputSetup).getServiceSubscription(requestDetails, customer);
554 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
555 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
556 executeBB.getBuildingBlock().getBpmnFlowName());
557 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
558 executeBB, requestAction,customer);
560 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
561 requestAction, resourceId);
563 assertThat(actual, sameBeanAs(expected));
567 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
568 RequestDetails requestDetails = new RequestDetails();
569 RequestInfo requestInfo = new RequestInfo();
570 requestInfo.setInstanceName("SharansInstanceName");
571 requestDetails.setRequestInfo(requestInfo);
572 Customer customer = new Customer();
573 String serviceInstanceId = "SharansInstanceId";
574 boolean aLaCarte = true;
575 ServiceInstance expected = new ServiceInstance();
576 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
577 Service service = new Service();
578 service.setModelUUID("modelUUID");
579 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
581 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
582 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
585 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
586 lookupKeyMap, serviceInstanceId);
588 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
589 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
590 assertThat(actual, sameBeanAs(expected));
594 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
595 RequestDetails requestDetails = new RequestDetails();
596 RequestInfo requestInfo = new RequestInfo();
597 requestInfo.setInstanceName("SharansInstanceName");
598 requestDetails.setRequestInfo(requestInfo);
599 Customer customer = new Customer();
600 String serviceInstanceId = "SharansInstanceId";
601 boolean aLaCarte = true;
602 Service service = new Service();
603 service.setModelUUID("modelUUID");
604 ServiceInstance expected = new ServiceInstance();
605 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
606 serviceInstanceAAI.setModelVersionId("modelUUID");
607 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
608 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
610 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
611 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
612 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
614 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
615 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
616 assertThat(actual, sameBeanAs(expected));
620 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
621 RequestDetails requestDetails = new RequestDetails();
622 RequestInfo requestInfo = new RequestInfo();
623 requestInfo.setInstanceName("SharansInstanceName");
624 requestDetails.setRequestInfo(requestInfo);
625 Customer customer = new Customer();
626 String serviceInstanceId = "SharansInstanceId";
627 boolean aLaCarte = true;
628 Service service = new Service();
629 service.setModelUUID("modelUUID");
630 ServiceInstance expected = new ServiceInstance();
631 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
632 serviceInstanceAAI.setModelVersionId("modelUUID");
633 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
634 String bbName = "ActivateServiceInstanceBB";
636 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
637 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
639 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
640 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
641 assertThat(actual, sameBeanAs(expected));
645 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
646 RequestDetails requestDetails = new RequestDetails();
647 RequestInfo requestInfo = new RequestInfo();
648 requestDetails.setRequestInfo(requestInfo);
649 Customer customer = new Customer();
650 String serviceInstanceId = "SharansInstanceId";
651 boolean aLaCarte = true;
652 Service service = new Service();
653 service.setModelUUID("modelUUID");
654 ServiceInstance expected = new ServiceInstance();
655 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
656 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
657 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
658 String bbName = "ActivateServiceInstanceBB";
659 Service differentService = new Service();
660 differentService.setModelUUID("modelUUIDDifferent");
662 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
663 doReturn(differentService).when(SPY_bbInputSetupUtils)
664 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
665 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
667 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
668 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
669 assertThat(actual, sameBeanAs(expected));
672 @Test(expected = Exception.class)
673 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
674 RequestDetails requestDetails = new RequestDetails();
675 RequestInfo requestInfo = new RequestInfo();
676 requestDetails.setRequestInfo(requestInfo);
677 Customer customer = new Customer();
678 String serviceInstanceId = "SharansInstanceId";
679 boolean aLaCarte = true;
680 Service service = new Service();
681 service.setModelUUID("modelUUID");
682 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
683 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
684 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
685 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
687 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
688 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
692 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
693 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
694 String instanceName = "instanceName";
695 String vnfType = "vnfType";
696 String resourceId = "networkId";
697 Service service = Mockito.mock(Service.class);
698 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
699 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
700 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
701 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
702 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
703 CloudConfiguration cloudConfiguration = new CloudConfiguration();
704 org.onap.so.serviceinstancebeans.Platform platform = Mockito
705 .mock(org.onap.so.serviceinstancebeans.Platform.class);
706 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
707 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
708 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
710 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
711 lookupKeyMap, resourceId, null);
712 doReturn(modelInfo).when(requestDetails).getModelInfo();
713 doReturn(requestInfo).when(requestDetails).getRequestInfo();
714 doReturn(instanceName).when(requestInfo).getInstanceName();
715 doReturn(platform).when(requestDetails).getPlatform();
716 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
717 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
718 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
720 doReturn(ModelType.network).when(modelInfo).getModelType();
721 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
722 lookupKeyMap, resourceId, vnfType);
723 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
724 lookupKeyMap, resourceId, null);
725 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
727 doReturn(ModelType.vnf).when(modelInfo).getModelType();
728 resourceId = "vnfId";
729 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
730 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
731 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
732 lookupKeyMap, resourceId, vnfType);
733 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
734 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
735 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
737 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
738 resourceId = "volumeGroupId";
739 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
740 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
741 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
742 lookupKeyMap, resourceId, vnfType);
743 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
744 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
745 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
747 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
748 resourceId = "vfModuleId";
749 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
750 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
751 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
752 lookupKeyMap, resourceId, vnfType);
753 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
754 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
755 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
759 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
760 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
761 GeneralBuildingBlock.class);
762 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
763 ExecuteBuildingBlock.class);
764 RequestDetails requestDetails = mapper.readValue(
765 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
766 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
767 RequestContext.class);
768 ServiceInstance serviceInstance = mapper.readValue(
769 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
770 ServiceInstance.class);
772 OrchestrationContext orchestrationContext = new OrchestrationContext();
773 orchestrationContext.setIsRollbackEnabled(false);
775 CloudRegion cloudRegion = new CloudRegion();
776 cloudRegion.setCloudOwner("test-owner-name");
777 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
778 cloudRegion.setComplex("complexName");
779 cloudRegion.setTenantId("tenantId");
781 Map<String, String> uriKeys = new HashMap<>();
782 uriKeys.put("global-customer-id","global-customer-id");
783 uriKeys.put("service-type","service-type");
785 Customer customer = new Customer();
786 ServiceSubscription serviceSubscription = new ServiceSubscription();
787 serviceSubscription.setServiceType("subscriptionServiceType");
788 customer.setGlobalCustomerId("globalCustomerId");
789 customer.setSubscriberName("subscriberName");
790 customer.setSubscriberType("subscriberType");
791 customer.setServiceSubscription(serviceSubscription);
793 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
795 String requestAction = "createInstance";
797 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
798 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
799 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
800 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
801 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
802 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion);
804 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
805 serviceInstance, executeBB, requestAction, null);
807 assertThat(actual, sameBeanAs(expected));
811 public void testGetServiceInstanceNOAAI() throws Exception {
812 ServiceInstance expected = mapper.readValue(
813 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
814 ServiceInstance.class);
815 Service service = mapper.readValue(
816 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
817 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
818 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
819 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
820 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
822 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
823 executeBB.setaLaCarte(true);
824 BuildingBlock buildingBlock = new BuildingBlock();
825 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
826 executeBB.setBuildingBlock(buildingBlock);
827 RequestDetails requestDetails = new RequestDetails();
828 RequestInfo reqInfo = new RequestInfo();
829 reqInfo.setInstanceName("serviceInstanceName");
830 requestDetails.setRequestInfo(reqInfo);
831 ModelInfo modelInfo = new ModelInfo();
832 modelInfo.setModelType(ModelType.service);
833 requestDetails.setModelInfo(modelInfo);
834 doReturn(null).when(SPY_bbInputSetupUtils)
835 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
836 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
837 .mapCatalogServiceIntoServiceInstance(service);
838 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
839 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
840 boolean aLaCarte = true;
842 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
843 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
844 executeBB.getBuildingBlock().getBpmnFlowName());
846 assertThat(actual, sameBeanAs(expected));
850 public void testGetServiceSubscription() throws IOException {
851 ServiceSubscription expected = new ServiceSubscription();
852 RequestDetails requestDetails = new RequestDetails();
853 RequestParameters params = new RequestParameters();
854 params.setSubscriptionServiceType("subscriptionServiceType");
855 requestDetails.setRequestParameters(params);
856 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
857 Customer customer = new Customer();
858 customer.setGlobalCustomerId("globalCustomerId");
859 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
860 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
861 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
863 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
864 assertThat(actual, sameBeanAs(expected));
868 public void testGetCustomer() throws IOException {
869 Customer expected = new Customer();
870 RequestDetails requestDetails = new RequestDetails();
871 SubscriberInfo subscriberInfo = new SubscriberInfo();
872 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
873 requestDetails.setSubscriberInfo(subscriberInfo);
874 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
875 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
876 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
877 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
879 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
880 assertThat(actual, sameBeanAs(expected));
884 public void testGetExistingServiceInstance() throws Exception {
885 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
886 ServiceInstance expected = new ServiceInstance();
888 doReturn(expected).when(bbInputSetupMapperLayer)
889 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
891 doNothing().when(SPY_bbInputSetup).addRelationshipsToSI(serviceInstanceAAI, expected);
893 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
894 assertThat(actual, sameBeanAs(expected));
898 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
899 Service service = Mockito.mock(Service.class);
900 String key = "collectionCustId";
901 ServiceInstance serviceInstance = mapper.readValue(
902 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
903 ServiceInstance.class);
904 String resourceId = "123";
905 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
906 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
907 assertNull(serviceInstance.getCollection());
908 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
909 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
910 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
911 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
912 doNothing().when(SPY_bbInputSetup).mapCatalogNetworkCollectionInstanceGroup(service,
913 collection.getInstanceGroup(), key);
914 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
915 networkCollection.setModelCustomizationUUID(key);
916 networkCollection.setCollectionResource(new CollectionResource());
917 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
918 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
919 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
920 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
921 List<CollectionResourceCustomization> customizations = new ArrayList<>();
922 customizations.add(networkCollection);
923 doReturn(customizations).when(service).getCollectionResourceCustomizations();
925 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
926 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
928 assertNotNull(serviceInstance.getCollection());
929 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
931 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
932 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
933 serviceInstance.getCollection().getInstanceGroup(), key);
937 public void testIsVlanTagging() throws Exception {
938 boolean expected = true;
939 Service service = Mockito.mock(Service.class);
940 String key = "collectionCustId";
941 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
942 networkCollection.setModelCustomizationUUID(key);
943 networkCollection.setCollectionResource(new CollectionResource());
944 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
945 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
946 List<CollectionResourceCustomization> customizations = new ArrayList<>();
947 customizations.add(networkCollection);
948 doReturn(customizations).when(service).getCollectionResourceCustomizations();
949 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
950 assertEquals("Is Vlan Tagging check.", expected, actual);
954 public void testPopulateVolumeGroup() throws Exception {
955 RequestDetails requestDetails = new RequestDetails();
956 RelatedInstanceList ril = new RelatedInstanceList();
957 RelatedInstance ri = new RelatedInstance();
958 ModelInfo mi = new ModelInfo();
959 mi.setModelType(ModelType.vnf);
960 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
962 ril.setRelatedInstance(ri);
963 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
965 ModelInfo modelInfo = new ModelInfo();
966 modelInfo.setModelType(ModelType.volumeGroup);
968 RequestInfo reqInfo = new RequestInfo();
969 reqInfo.setInstanceName("volumeGroupName");
970 requestDetails.setModelInfo(modelInfo);
971 requestDetails.setRequestInfo(reqInfo);
973 ServiceInstance serviceInstance = new ServiceInstance();
974 GenericVnf vnf = new GenericVnf();
975 vnf.setVnfId("genericVnfId");
977 VolumeGroup vg = new VolumeGroup();
978 vg.setVolumeGroupName("volumeGroupName");
979 vg.setVolumeGroupId("volumeGroupId");
980 vnf.getVolumeGroups().add(vg);
981 serviceInstance.getVnfs().add(vnf);
983 Service service = mapper.readValue(
984 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
985 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
986 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
988 String bbName = AssignFlows.VOLUME_GROUP.toString();
989 String resourceId = "123";
990 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
991 eq(service), eq("vnfModelCustomizationUUID"));
992 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
993 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
994 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
996 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
997 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
998 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
999 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
1000 vnf.getVolumeGroups().clear();
1001 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1002 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1003 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1004 "vnfModelCustomizationUUID");
1008 public void testMapCatalogVolumeGroup() {
1009 VolumeGroup volumeGroup = new VolumeGroup();
1010 RequestDetails requestDetails = new RequestDetails();
1011 ModelInfo modelInfo = new ModelInfo();
1012 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1013 requestDetails.setModelInfo(modelInfo);
1014 Service service = new Service();
1015 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1016 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1017 service.getVnfCustomizations().add(resourceCust);
1018 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1019 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1020 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1021 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1023 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1025 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1027 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1031 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1032 String instanceName = "networkName";
1033 ModelInfo modelInfo = new ModelInfo();
1034 modelInfo.setModelType(ModelType.network);
1036 ServiceInstance serviceInstance = new ServiceInstance();
1037 L3Network network = new L3Network();
1038 network.setNetworkId("networkId");
1039 network.setNetworkName("networkName");
1040 serviceInstance.getNetworks().add(network);
1041 String resourceId = "123";
1043 Service service = mapper.readValue(
1044 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1045 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1046 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1047 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1049 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1051 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1054 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1056 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1058 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1060 instanceName = "networkName2";
1061 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1062 doReturn(network2).when(SPY_bbInputSetup).createNetwork(lookupKeyMap, instanceName, resourceId, null);
1063 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1065 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1069 public void testMapCatalogNetwork() {
1070 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1071 L3Network network = new L3Network();
1073 RequestDetails requestDetails = new RequestDetails();
1074 ModelInfo modelInfo = new ModelInfo();
1075 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1076 requestDetails.setModelInfo(modelInfo);
1077 Service service = new Service();
1078 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1079 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1080 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1082 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1084 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1086 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1090 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1091 String instanceName = "configurationName";
1092 ModelInfo modelInfo = new ModelInfo();
1093 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1095 ServiceInstance serviceInstance = new ServiceInstance();
1096 Configuration configuration = new Configuration();
1097 configuration.setConfigurationId("configurationId");
1098 configuration.setConfigurationName("configurationName");
1099 serviceInstance.getConfigurations().add(configuration);
1100 String resourceId = "configurationId";
1102 Service service = mapper.readValue(
1103 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1104 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1105 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1106 service.getConfigurationCustomizations().add(configurationCust);
1107 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1108 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1109 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1110 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1111 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1112 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1113 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1115 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1117 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1118 instanceName, configResourceKeys);
1119 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1121 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1123 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1124 instanceName, configResourceKeys);
1125 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1127 instanceName = "configurationName2";
1128 resourceId = "resourceId2";
1129 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1130 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1131 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1132 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1133 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1134 instanceName, configResourceKeys);
1135 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1139 public void testMapCatalogConfiguration() {
1140 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1141 L3Network network = new L3Network();
1143 RequestDetails requestDetails = new RequestDetails();
1144 ModelInfo modelInfo = new ModelInfo();
1145 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1146 requestDetails.setModelInfo(modelInfo);
1147 Service service = new Service();
1148 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1149 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1150 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1152 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1154 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1156 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1160 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1161 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1162 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1163 String instanceName = "vnfName";
1164 ModelInfo modelInfo = new ModelInfo();
1165 modelInfo.setModelType(ModelType.vnf);
1167 ServiceInstance serviceInstance = new ServiceInstance();
1168 GenericVnf vnf = new GenericVnf();
1169 vnf.setVnfId("genericVnfId");
1170 vnf.setVnfName("vnfName");
1171 serviceInstance.getVnfs().add(vnf);
1172 String vnfType = "vnfType";
1173 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1174 RequestDetails.class);
1176 Service service = mapper.readValue(
1177 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1178 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1179 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1180 String bbName = AssignFlows.VNF.toString();
1182 Platform expectedPlatform = new Platform();
1183 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1184 String resourceId = "123";
1185 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1186 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1187 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1188 vnfAAI.setModelCustomizationId("modelCustId");
1189 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1190 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1191 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1192 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1193 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1194 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1196 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1197 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1199 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1201 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1202 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1203 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1205 instanceName = "vnfName2";
1206 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1207 resourceId, vnfType, null);
1208 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1209 resourceId, vnfType, null);
1210 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1211 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1213 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1215 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1216 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1217 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1218 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1219 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1223 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1224 throws JsonParseException, JsonMappingException, IOException {
1225 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1226 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1227 String instanceName = "vnfName";
1228 ModelInfo modelInfo = new ModelInfo();
1229 modelInfo.setModelType(ModelType.vnf);
1231 ServiceInstance serviceInstance = new ServiceInstance();
1232 GenericVnf vnf = new GenericVnf();
1233 vnf.setVnfId("genericVnfId");
1234 vnf.setVnfName("vnfName");
1235 serviceInstance.getVnfs().add(vnf);
1236 String vnfType = null;
1237 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1238 RequestDetails.class);
1240 Service service = mapper.readValue(
1241 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1242 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1243 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1244 String bbName = AssignFlows.VNF.toString();
1246 Platform expectedPlatform = new Platform();
1247 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1248 String resourceId = "123";
1249 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1250 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1251 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1252 vnfAAI.setModelCustomizationId("modelCustId");
1253 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1254 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1255 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1256 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1257 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1258 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1260 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1261 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1263 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1265 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1266 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1267 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1269 instanceName = "vnfName2";
1270 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1271 resourceId, vnfType, null);
1272 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1273 resourceId, vnfType, null);
1274 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1275 vnfAAI.setModelCustomizationId("modelCustId2");
1276 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1277 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1278 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1279 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1280 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1281 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1282 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1283 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1284 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1288 public void testMapCatalogVnf() {
1289 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1290 GenericVnf genericVnf = new GenericVnf();
1291 RequestDetails requestDetails = new RequestDetails();
1292 ModelInfo modelInfo = new ModelInfo();
1293 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1294 requestDetails.setModelInfo(modelInfo);
1295 Service service = new Service();
1296 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1297 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1298 service.getVnfCustomizations().add(resourceCust);
1299 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1301 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1303 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1305 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1309 public void testMapCatalogCollectionAndInstanceGroup() {
1310 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1311 modelInfoCollection.setCollectionFunction("collectionFunction");
1312 modelInfoCollection.setCollectionRole("collectionRole");
1313 modelInfoCollection.setCollectionType("collectionType");
1314 modelInfoCollection.setDescription("description");
1315 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1316 modelInfoCollection.setQuantity(0);
1318 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1319 modelInfoInstanceGroup.setFunction("function");
1320 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1321 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1322 modelInfoInstanceGroup.setModelUUID("modelUUID");
1323 modelInfoInstanceGroup.setType("VNFC");
1324 modelInfoInstanceGroup.setDescription("description");
1326 InstanceGroup instanceGroup = new InstanceGroup();
1327 Collection collection = new Collection();
1328 collection.setInstanceGroup(instanceGroup);
1330 CollectionResource collectionResource = new CollectionResource();
1331 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1332 collectionResource.setToscaNodeType("NetworkCollection");
1333 collectionResource.setInstanceGroup(catalogInstanceGroup);
1335 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1336 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1337 collectionCust.setCollectionResource(collectionResource);
1339 Service service = new Service();
1340 service.getCollectionResourceCustomizations().add(collectionCust);
1341 ServiceInstance serviceInstance = new ServiceInstance();
1342 serviceInstance.setCollection(collection);
1344 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1345 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1346 instanceGroupCust.setFunction("function");
1347 instanceGroupCust.setDescription("description");
1349 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1350 collectionResource);
1351 doReturn(instanceGroupCustList).when(SPY_bbInputSetupUtils)
1352 .getCollectionResourceInstanceGroupCustomization(collectionCust.getModelCustomizationUUID());
1353 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1354 catalogInstanceGroup);
1356 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1357 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1358 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1360 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1361 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1365 public void testAddRelationshipsToSI() throws Exception {
1366 ServiceInstance serviceInstance = new ServiceInstance();
1367 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1368 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1370 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1371 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1372 relationshipList.getRelationship().add(relationship);
1373 serviceInstanceAAI.setRelationshipList(relationshipList);
1375 Map<String, String> uriKeys = new HashMap<>();
1376 uriKeys.put("global-customer-id", "globalCustomerId");
1377 uriKeys.put("service-type", "serviceType");
1379 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
1380 .getURIKeysFromServiceInstance(serviceInstanceAAI.getServiceInstanceId());
1381 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1382 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1383 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1384 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1385 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1387 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1389 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1390 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1391 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1392 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1393 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1394 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1398 public void testMapConfigurations() throws JsonProcessingException {
1399 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1400 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1401 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1402 relationshipList.getRelationship().add(relationship);
1403 expectedAAI.setRelationshipList(relationshipList);
1405 Configuration expected = new Configuration();
1406 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1407 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1408 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1410 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1411 doReturn(expected).when(bbInputSetupMapperLayer)
1412 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1414 List<Configuration> configurations = new ArrayList<>();
1416 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1418 assertEquals(expected, configurations.get(0));
1422 public void testMapGenericVnfs() throws JsonProcessingException {
1423 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1424 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1425 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1426 relationshipList.getRelationship().add(relationship);
1427 expectedAAI.setRelationshipList(relationshipList);
1429 GenericVnf expected = new GenericVnf();
1430 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1431 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1432 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1434 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1435 doReturn(expected).when(bbInputSetupMapperLayer)
1436 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1437 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1438 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1439 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1441 List<GenericVnf> genericVnfs = new ArrayList<>();
1443 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1445 assertEquals(expected, genericVnfs.get(0));
1446 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1447 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1448 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1452 public void testMapVolumeGroups() throws JsonProcessingException {
1453 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1455 VolumeGroup expected = new VolumeGroup();
1456 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1457 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1459 doReturn(expected).when(bbInputSetupMapperLayer)
1460 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1462 List<VolumeGroup> volumeGroupsList =
1463 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1465 assertEquals(expected, volumeGroupsList.get(0));
1469 public void testMapLineOfBusiness() throws JsonProcessingException {
1470 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1472 LineOfBusiness expected = new LineOfBusiness();
1473 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1474 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1476 doReturn(expected).when(bbInputSetupMapperLayer)
1477 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1479 GenericVnf vnf = new GenericVnf();
1481 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1483 assertEquals(expected, vnf.getLineOfBusiness());
1487 public void testMapPlatform() throws JsonProcessingException {
1488 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1490 Platform expected = new Platform();
1491 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1492 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1494 doReturn(expected).when(bbInputSetupMapperLayer)
1495 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1497 GenericVnf vnf = new GenericVnf();
1499 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1501 assertEquals(expected, vnf.getPlatform());
1505 public void testMapCollection() throws JsonProcessingException {
1506 List<AAIResultWrapper> collections = new ArrayList<>();
1507 ServiceInstance serviceInstance = new ServiceInstance();
1509 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1510 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1511 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1512 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1513 aaiCollection.setRelationshipList(collectionRelationshipList);
1515 collections.add(new AAIResultWrapper(
1516 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1518 Collection collection = new Collection();
1519 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1520 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1521 InstanceGroup instanceGroup = new InstanceGroup();
1522 instanceGroupsList.add(instanceGroup);
1523 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1524 CollectionResource collectionResource = new CollectionResource();
1525 doReturn(collection).when(bbInputSetupMapperLayer)
1526 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1527 doReturn(instanceGroup).when(SPY_bbInputSetup).mapInstanceGroup(isA(AAIResultWrapper.class));
1528 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1529 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1530 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1531 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1533 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1535 assertEquals(collection, serviceInstance.getCollection());
1536 assertEquals(instanceGroup, collection.getInstanceGroup());
1538 instanceGroupsList.clear();
1539 collection = new Collection();
1541 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1542 assertEquals(collection, serviceInstance.getCollection());
1543 assertNull(collection.getInstanceGroup());
1547 public void testMapL3Networks() throws JsonProcessingException {
1548 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1549 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1550 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1551 relationshipList.getRelationship().add(relationship);
1552 expectedAAI.setRelationshipList(relationshipList);
1554 L3Network expected = new L3Network();
1555 List<L3Network> l3Networks = new ArrayList<>();
1556 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1557 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1558 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1560 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1561 doReturn(expected).when(bbInputSetupMapperLayer)
1562 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1563 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1564 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1565 eq(expected.getContrailNetworkRouteTableReferences()));
1567 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1569 assertEquals(expected, l3Networks.get(0));
1570 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1571 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1572 eq(expected.getContrailNetworkRouteTableReferences()));
1576 public void testMapRouteTableReferences() throws JsonProcessingException {
1577 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1579 RouteTableReference expected = new RouteTableReference();
1580 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1581 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1582 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1584 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1585 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1587 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1588 contrailNetworkRouteTableReferences);
1590 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1594 public void testMapOwningEntity() throws JsonProcessingException {
1595 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1597 OwningEntity expected = new OwningEntity();
1598 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1599 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1601 doReturn(expected).when(bbInputSetupMapperLayer)
1602 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1604 ServiceInstance serviceInstance = new ServiceInstance();
1606 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1608 assertEquals(expected, serviceInstance.getOwningEntity());
1612 public void testMapProject() throws JsonProcessingException {
1613 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1615 Project expected = new Project();
1616 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1617 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1619 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1621 ServiceInstance serviceInstance = new ServiceInstance();
1623 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1625 assertEquals(expected, serviceInstance.getProject());
1629 public void testMapCustomer() throws Exception {
1630 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1631 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1633 Customer expected = new Customer();
1634 ServiceSubscription serviceSubscription = new ServiceSubscription();
1636 String globalCustomerId = "globalCustomerId";
1637 String subscriptionServiceType = "subscriptionServiceType";
1639 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1640 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1641 subscriptionServiceType);
1642 doReturn(expected).when(bbInputSetupMapperLayer)
1643 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1644 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1645 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1647 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1649 assertEquals(expected, actual);
1650 assertEquals(serviceSubscription, expected.getServiceSubscription());
1654 public void testPopulateLookupKeyMapWithIds() {
1655 Map<ResourceKey, String> expected = new HashMap<>();
1656 Map<ResourceKey, String> actual = new HashMap<>();
1657 String serviceInstanceId = "serviceInstanceId";
1658 String networkId = "networkId";
1659 String vnfId = "vnfId";
1660 String vfModuleId = "vfModuleId";
1661 String volumeGroupId = "volumeGroupId";
1662 String configurationId = "configurationId";
1664 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1665 expected.put(ResourceKey.NETWORK_ID, networkId);
1666 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1667 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1668 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1669 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1671 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1672 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1673 workflowResourceIds.setNetworkId(networkId);
1674 workflowResourceIds.setVnfId(vnfId);
1675 workflowResourceIds.setVfModuleId(vfModuleId);
1676 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1677 workflowResourceIds.setConfigurationId(configurationId);
1679 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1681 assertThat(actual, sameBeanAs(expected));
1685 public void testgetGBBMacro() throws Exception {
1686 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1687 GeneralBuildingBlock.class);
1688 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1689 ExecuteBuildingBlock.class);
1690 RequestDetails requestDetails = mapper
1691 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1692 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1693 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1694 aaiVnf.setModelCustomizationId("modelCustId");
1695 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1696 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1697 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1698 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1699 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1700 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1701 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1702 String resourceId = "123";
1703 String vnfType = "vnfType";
1704 Service service = Mockito.mock(Service.class);
1705 String requestAction = "createInstance";
1707 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1708 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1709 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1710 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1711 executeBB.setConfigurationResourceKeys(configResourceKeys);
1712 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1713 requestAction, resourceId);
1714 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1715 doReturn(service).when(SPY_bbInputSetupUtils)
1716 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1717 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1718 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1719 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1720 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1722 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1723 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1724 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1725 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1726 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1728 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1729 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1730 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1731 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1732 isA(org.onap.so.serviceinstancebeans.Platform.class),
1733 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1734 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1736 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1737 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1738 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1739 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1740 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1741 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1743 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1744 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1745 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1746 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1747 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1748 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1749 any(String.class), any());
1751 Configuration configuration = new Configuration();
1752 configuration.setConfigurationId("configurationId");
1753 gBB.getServiceInstance().getConfigurations().add(configuration);
1754 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1755 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1756 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1757 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1758 configurationCustList.add(configurationCust);
1759 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1760 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class), isA(ConfigurationResourceKeys.class));
1762 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1763 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1764 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1765 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1766 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class), isA(ConfigurationResourceKeys.class));
1770 public void testgetGBBMacroCloudConfiguration() throws Exception {
1771 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1772 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1773 CloudConfiguration cloudConfig = null;
1774 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1775 aaiCloudRegion.setCloudOwner("test-owner-name");
1776 Resources resources = serviceMacro.getResources();
1777 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
1778 CloudRegion expected = new CloudRegion();
1779 expected.setLcpCloudRegionId("mdt1");
1780 expected.setCloudOwner("test-owner-name");
1781 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1783 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1784 assertThat(actual, sameBeanAs(expected));
1786 serviceMacro = mapper.readValue(
1787 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1788 resources = serviceMacro.getResources();
1790 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1791 assertThat(actual, sameBeanAs(expected));
1793 serviceMacro = mapper.readValue(
1794 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1795 resources = serviceMacro.getResources();
1797 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1798 assertThat(actual, sameBeanAs(expected));
1800 serviceMacro = mapper.readValue(
1801 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1802 resources = serviceMacro.getResources();
1804 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1809 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1810 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1811 GeneralBuildingBlock.class);
1812 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1813 ExecuteBuildingBlock.class);
1814 RequestDetails requestDetails = mapper
1815 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1816 requestDetails.getRequestParameters().getUserParams().clear();
1817 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1818 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1819 aaiVnf.setModelCustomizationId("modelCustId");
1820 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1821 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1822 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1823 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1824 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1825 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1826 String resourceId = "123";
1827 String vnfType = "vnfType";
1828 Service service = Mockito.mock(Service.class);
1829 String requestAction = "createInstance";
1830 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1831 requestAction, resourceId);
1832 doReturn(service).when(SPY_bbInputSetupUtils)
1833 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1834 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1835 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1836 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1837 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1838 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1839 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1840 executeBB.getBuildingBlock().setIsVirtualLink(Boolean.FALSE);
1841 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1842 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1843 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1846 @Test(expected = Exception.class)
1847 public void testgetGBBMacroException() throws Exception {
1848 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1849 GeneralBuildingBlock.class);
1850 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1851 ExecuteBuildingBlock.class);
1852 RequestDetails requestDetails = mapper
1853 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1854 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1855 String resourceId = "123";
1856 String vnfType = "vnfType";
1857 Service service = Mockito.mock(Service.class);
1858 String requestAction = "createInstance";
1859 doReturn(null).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1860 requestAction, resourceId);
1861 doReturn(service).when(SPY_bbInputSetupUtils)
1862 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1864 executeBB.getBuildingBlock().setBpmnFlowName("Network");
1865 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1866 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1870 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
1871 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1872 GeneralBuildingBlock.class);
1873 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1874 ExecuteBuildingBlock.class);
1875 RequestDetails requestDetails = mapper
1876 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1877 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1878 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1879 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1880 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1881 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1882 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1883 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1884 aaiVnf.setModelCustomizationId("modelCustId");
1885 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1886 String resourceId = "123";
1887 String vnfType = null;
1888 Service service = Mockito.mock(Service.class);
1889 String requestAction = "createInstance";
1890 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1891 requestAction, resourceId);
1892 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1893 doReturn(service).when(SPY_bbInputSetupUtils)
1894 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1895 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1896 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1897 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1898 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1900 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1901 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1902 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1903 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1904 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1906 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1907 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1908 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1909 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1910 isA(org.onap.so.serviceinstancebeans.Platform.class),
1911 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1912 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1914 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1915 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1916 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1917 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1918 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1919 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1921 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1922 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1923 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1924 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1925 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1926 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1927 any(String.class), any());
1931 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
1932 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1933 GeneralBuildingBlock.class);
1934 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1935 ExecuteBuildingBlock.class);
1936 RequestDetails requestDetails = mapper
1937 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1938 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1939 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1940 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1941 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1942 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1943 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1944 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1945 aaiVnf.setModelCustomizationId("modelCustId");
1946 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1947 String resourceId = "123";
1948 String vnfType = "vnfType";
1949 Service service = Mockito.mock(Service.class);
1950 String requestAction = "createInstance";
1951 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1952 requestAction, resourceId);
1953 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1954 doReturn(service).when(SPY_bbInputSetupUtils)
1955 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1956 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1957 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1958 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1959 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1961 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1962 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1963 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1964 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1965 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1967 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1968 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1969 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1970 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1971 isA(org.onap.so.serviceinstancebeans.Platform.class),
1972 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1973 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1975 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1976 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1977 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1978 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1979 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1980 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1982 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1983 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1984 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1985 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1986 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1987 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1988 any(String.class), any());
1992 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
1993 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1994 GeneralBuildingBlock.class);
1995 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1996 ExecuteBuildingBlock.class);
1997 RequestDetails requestDetails = mapper
1998 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1999 requestDetails.getRequestParameters().setUserParams(null);
2000 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2001 aaiVnf.setModelCustomizationId("modelCustId");
2002 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2003 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2004 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2005 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2006 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2007 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2008 String resourceId = "123";
2009 String vnfType = "vnfType";
2010 Service service = Mockito.mock(Service.class);
2011 String requestAction = "deactivateInstance";
2012 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2013 requestAction, resourceId);
2014 doReturn(service).when(SPY_bbInputSetupUtils)
2015 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2016 String generatedId = "12131";
2017 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
2018 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2020 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
2021 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2022 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2023 requestAction, resourceId, vnfType);
2024 assertThat(actual, sameBeanAs(gBB));
2028 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
2029 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2030 GeneralBuildingBlock.class);
2031 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2032 ExecuteBuildingBlock.class);
2033 RequestDetails requestDetails = mapper
2034 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2035 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2036 requestDetails.getRequestParameters().setUserParams(null);
2037 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2038 aaiVnf.setModelCustomizationId("modelCustId");
2039 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2040 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2041 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2042 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2043 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2044 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2045 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2047 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2048 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2049 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2050 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2051 executeBB.setConfigurationResourceKeys(configResourceKeys);
2053 String resourceId = "123";
2054 String vnfType = "vnfType";
2055 Service service = Mockito.mock(Service.class);
2056 String requestAction = "createInstance";
2057 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2058 requestAction, resourceId);
2059 doReturn(null).when(SPY_bbInputSetupUtils)
2060 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
2061 doReturn(service).when(SPY_bbInputSetupUtils)
2062 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2063 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2064 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2065 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2066 networkCustList.add(networkCust);
2067 doReturn(networkCustList).when(service).getNetworkCustomizations();
2068 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2069 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2071 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2072 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2073 executeBB.getBuildingBlock().setIsVirtualLink(false);
2074 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2075 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2076 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2078 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2079 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2080 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2081 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2082 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2083 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2085 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2086 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2087 executeBB.getBuildingBlock().setIsVirtualLink(true);
2088 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2089 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2090 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2092 executeBB.getBuildingBlock().setBpmnFlowName("CreateNetworkBB");
2093 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2094 executeBB.getBuildingBlock().setIsVirtualLink(true);
2095 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2096 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2097 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2101 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2102 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2103 GeneralBuildingBlock.class);
2104 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2105 ExecuteBuildingBlock.class);
2106 RequestDetails requestDetails = mapper
2107 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2108 requestDetails.getRequestParameters().setUserParams(null);
2109 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2110 aaiVnf.setModelCustomizationId("modelCustId");
2111 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2112 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2113 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2114 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2115 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2116 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2117 String resourceId = "123";
2118 String vnfType = "vnfType";
2119 Service service = Mockito.mock(Service.class);
2120 String requestAction = "deleteInstance";
2121 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2122 requestAction, resourceId);
2123 doReturn(service).when(SPY_bbInputSetupUtils)
2124 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2125 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2127 CloudConfiguration cloudConfig = new CloudConfiguration();
2128 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2129 requestDetails.setCloudConfiguration(cloudConfig);
2130 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2131 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
2132 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2133 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2134 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2135 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2136 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2137 isA(CloudConfiguration.class));
2139 requestAction = "activateInstance";
2140 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2141 requestAction, resourceId);
2142 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2143 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2144 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2145 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2146 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2147 isA(CloudConfiguration.class));
2149 requestAction = "unassignInstance";
2150 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2151 requestAction, resourceId);
2152 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2153 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2154 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2155 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2156 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2157 isA(CloudConfiguration.class));
2159 requestAction = "activateFabricConfiguration";
2160 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2161 requestAction, resourceId);
2162 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2163 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2164 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2165 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2166 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2167 isA(CloudConfiguration.class));
2170 @Test(expected = IllegalArgumentException.class)
2171 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2172 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2173 GeneralBuildingBlock.class);
2174 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2175 ExecuteBuildingBlock.class);
2176 RequestDetails requestDetails = mapper
2177 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2178 requestDetails.getRequestParameters().setUserParams(null);
2179 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2180 aaiVnf.setModelCustomizationId("modelCustId");
2181 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2182 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2183 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2184 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2185 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2186 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2187 String resourceId = "123";
2188 String vnfType = "vnfType";
2189 Service service = Mockito.mock(Service.class);
2190 String requestAction = "assignInstance";
2191 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2192 requestAction, resourceId);
2193 doReturn(service).when(SPY_bbInputSetupUtils)
2194 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2195 String generatedId = "12131";
2196 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
2197 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2199 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
2200 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2201 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2204 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2205 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2206 GeneralBuildingBlock.class);
2207 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2208 ExecuteBuildingBlock.class);
2209 RequestDetails requestDetails = mapper
2210 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2211 requestDetails.getRequestParameters().setUserParams(null);
2212 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2213 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2214 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2215 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2216 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2217 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2218 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2219 Service service = Mockito.mock(Service.class);
2220 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2221 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2222 String requestAction = "unassignInstance";
2224 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2225 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2226 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2227 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2228 executeBB.setConfigurationResourceKeys(configResourceKeys);
2230 L3Network network = new L3Network();
2231 network.setNetworkId("networkId");
2232 gBB.getServiceInstance().getNetworks().add(network);
2233 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2234 aaiNetwork.setModelCustomizationId("modelCustId");
2235 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2236 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2237 any(Service.class));
2239 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2240 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2241 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2242 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2243 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2244 any(Service.class));
2246 GenericVnf vnf = new GenericVnf();
2247 vnf.setVnfId("vnfId");
2248 gBB.getServiceInstance().getVnfs().add(vnf);
2249 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2250 aaiVnf.setModelCustomizationId("modelCustId");
2251 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2252 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2253 any(Service.class));
2255 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2256 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2257 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2258 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2259 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2260 any(Service.class));
2262 VfModule vfModule = new VfModule();
2263 vfModule.setVfModuleId("vfModuleId");
2264 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2265 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2266 aaiVfModule.setModelCustomizationId("modelCustId");
2267 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2269 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2270 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2271 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2272 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2273 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2274 any(Service.class));
2275 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2276 any(Service.class), any(String.class));
2278 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2279 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
2280 VolumeGroup volumeGroup = new VolumeGroup();
2281 volumeGroup.setVolumeGroupId("volumeGroupId");
2282 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2283 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2284 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2285 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(Defaults.CLOUD_OWNER.toString(),
2286 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2288 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2289 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2290 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2291 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2292 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2293 any(Service.class));
2294 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2295 isA(Service.class), isA(String.class));
2297 Configuration configuration = new Configuration();
2298 configuration.setConfigurationId("configurationId");
2299 gBB.getServiceInstance().getConfigurations().add(configuration);
2300 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2301 aaiConfiguration.setModelCustomizationId("modelCustId");
2302 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2303 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2305 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2306 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2307 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2308 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2309 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2310 any(Service.class), isA(ConfigurationResourceKeys.class));
2314 public void testGetVnfId() {
2315 String expected = "vnfId";
2316 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2317 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2318 executeBB.setRequestId("requestId");
2319 InfraActiveRequests request = new InfraActiveRequests();
2320 request.setVnfId(expected);
2321 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2323 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2325 assertEquals("VnfId is set correctly", expected, actual);
2329 public void testCreateVfModule() {
2330 String vfModuleId = "vfModuleId";
2331 String instanceName = "vfModuleName";
2332 Map<String, String> cloudParams = new HashMap<>();
2333 cloudParams.put("param1", "param1Value");
2334 VfModule expected = new VfModule();
2335 expected.setVfModuleId(vfModuleId);
2336 expected.setVfModuleName(instanceName);
2337 expected.setCloudParams(cloudParams);
2338 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2339 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2340 List<Map<String, String>> instanceParams = new ArrayList<>();
2341 instanceParams.add(cloudParams);
2343 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2345 assertThat(actual, sameBeanAs(expected));
2346 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2348 expected.getCloudParams().clear();
2349 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2350 assertThat(actual, sameBeanAs(expected));
2354 public void testCreateVolumeGroup() {
2355 String volumeGroupId = "volumeGroupId";
2356 String instanceName = "vfModuleName";
2357 String vnfType = "vnfType";
2358 Map<String, String> cloudParams = new HashMap<>();
2359 cloudParams.put("param1", "param1Value");
2360 VolumeGroup expected = new VolumeGroup();
2361 expected.setVolumeGroupId(volumeGroupId);
2362 expected.setVolumeGroupName(instanceName);
2363 expected.setCloudParams(cloudParams);
2364 expected.setVnfType(vnfType);
2365 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2366 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2367 List<Map<String, String>> instanceParams = new ArrayList<>();
2368 instanceParams.add(cloudParams);
2370 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2372 assertThat(actual, sameBeanAs(expected));
2373 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2375 expected.getCloudParams().clear();
2376 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2377 assertThat(actual, sameBeanAs(expected));
2381 public void testCreateNetwork() {
2382 String networkId = "networkId";
2383 String instanceName = "networkName";
2384 Map<String, String> cloudParams = new HashMap<>();
2385 cloudParams.put("param1", "param1Value");
2386 L3Network expected = new L3Network();
2387 expected.setNetworkId(networkId);
2388 expected.setNetworkName(instanceName);
2389 expected.setCloudParams(cloudParams);
2390 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2391 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2392 List<Map<String, String>> instanceParams = new ArrayList<>();
2393 instanceParams.add(cloudParams);
2394 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2396 assertThat(actual, sameBeanAs(expected));
2397 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2399 expected.getCloudParams().clear();
2400 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2401 assertThat(actual, sameBeanAs(expected));
2405 public void testCreateGenericVnf() {
2406 String vnfId = "vnfId";
2407 String instanceName = "vnfName";
2408 String vnfType = "vnfType";
2409 String platformName = "platformName";
2410 String lineOfBusinessName = "lineOfBusinessName";
2411 Platform platform = new Platform();
2412 platform.setPlatformName(platformName);
2413 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2414 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2415 Map<String, String> cloudParams = new HashMap<>();
2416 cloudParams.put("param1", "param1Value");
2417 GenericVnf expected = new GenericVnf();
2418 expected.setVnfId(vnfId);
2419 expected.setVnfName(instanceName);
2420 expected.setVnfType(vnfType);
2421 expected.setCloudParams(cloudParams);
2422 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2423 expected.setPlatform(platform);
2424 expected.setLineOfBusiness(lineOfBusiness);
2425 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2426 List<Map<String, String>> instanceParams = new ArrayList<>();
2427 instanceParams.add(cloudParams);
2428 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2429 platform.setPlatformName(platformName);
2430 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2431 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2433 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2434 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2436 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2438 assertThat(actual, sameBeanAs(expected));
2439 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2441 expected.getCloudParams().clear();
2442 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2443 assertThat(actual, sameBeanAs(expected));
2447 public void testMapCatalogVfModule() {
2448 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2449 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2450 VfModule vfModule = new VfModule();
2451 ModelInfo modelInfo = new ModelInfo();
2452 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2453 Service service = new Service();
2454 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2455 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2456 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2457 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2458 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2459 service.getVnfCustomizations().add(vnfResourceCust);
2460 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2462 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2464 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2466 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2468 modelInfo.setModelCustomizationUuid(null);
2469 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2471 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2473 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2477 public void testPopulateVfModule() throws Exception {
2478 String vnfId = "vnfId";
2479 String vfModuleId = "vfModuleId";
2480 String volumeGroupId = "volumeGroupId";
2481 String vfModuleCustomizationId = "vfModuleCustomizationId";
2482 ModelInfo modelInfo = new ModelInfo();
2483 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2484 Service service = new Service();
2485 String bbName = AssignFlows.VF_MODULE.toString();
2486 ServiceInstance serviceInstance = new ServiceInstance();
2487 GenericVnf vnf = new GenericVnf();
2488 vnf.setVnfId(vnfId);
2489 VolumeGroup volumeGroup = new VolumeGroup();
2490 volumeGroup.setVolumeGroupId(volumeGroupId);
2491 vnf.getVolumeGroups().add(volumeGroup);
2492 serviceInstance.getVnfs().add(vnf);
2493 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2494 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2495 String resourceId = vfModuleId;
2496 RelatedInstanceList[] relatedInstanceList = null;
2497 String instanceName = "vfModuleName";
2498 List<Map<String, String>> instanceParams = null;
2499 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2501 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2502 vnfAAI.setModelCustomizationId("vnfModelCustId");
2503 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2504 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2506 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2507 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2508 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2509 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2510 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2512 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2513 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2515 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2516 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));