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.ArgumentMatchers.any;
29 import static org.mockito.Matchers.eq;
30 import static org.mockito.ArgumentMatchers.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.ArgumentMatchers;
49 import org.mockito.Matchers;
50 import org.mockito.Mock;
51 import org.mockito.Mockito;
52 import org.mockito.Spy;
53 import org.mockito.junit.MockitoJUnitRunner;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
57 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
58 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
62 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
63 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
64 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
65 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
68 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
70 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
71 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
72 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
73 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
74 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
75 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
76 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
77 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
78 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
79 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
80 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
81 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
82 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
83 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
84 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
85 import org.onap.so.client.aai.AAIObjectType;
86 import org.onap.so.client.aai.entities.AAIResultWrapper;
87 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
88 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
89 import org.onap.so.constants.Defaults;
90 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
91 import org.onap.so.db.catalog.beans.CollectionResource;
92 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
93 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
94 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
95 import org.onap.so.db.catalog.beans.InstanceGroupType;
96 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
97 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
98 import org.onap.so.db.catalog.beans.OrchestrationStatus;
99 import org.onap.so.db.catalog.beans.Service;
100 import org.onap.so.db.catalog.beans.VfModuleCustomization;
101 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
102 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
103 import org.onap.so.db.request.beans.InfraActiveRequests;
104 import org.onap.so.serviceinstancebeans.CloudConfiguration;
105 import org.onap.so.serviceinstancebeans.ModelInfo;
106 import org.onap.so.serviceinstancebeans.ModelType;
107 import org.onap.so.serviceinstancebeans.RelatedInstance;
108 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
109 import org.onap.so.serviceinstancebeans.RequestDetails;
110 import org.onap.so.serviceinstancebeans.RequestInfo;
111 import org.onap.so.serviceinstancebeans.RequestParameters;
112 import org.onap.so.serviceinstancebeans.Resources;
113 import org.onap.so.serviceinstancebeans.SubscriberInfo;
115 import com.fasterxml.jackson.core.JsonParseException;
116 import com.fasterxml.jackson.core.JsonProcessingException;
117 import com.fasterxml.jackson.databind.JsonMappingException;
118 import com.fasterxml.jackson.databind.ObjectMapper;
119 @RunWith(MockitoJUnitRunner.class)
120 public class BBInputSetupTest {
121 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
123 protected ObjectMapper mapper = new ObjectMapper();
124 private static final String CLOUD_OWNER = "CloudOwner";
127 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
130 private BBInputSetupUtils SPY_bbInputSetupUtils;
133 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
137 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
138 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
142 public void testGetAlaCarteServiceInstance() throws Exception {
143 ServiceInstance expected = mapper.readValue(
144 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
145 ServiceInstance.class);
146 RequestDetails requestDetails = new RequestDetails();
147 RequestInfo requestInfo = new RequestInfo();
148 requestInfo.setInstanceName("SharansInstanceName");
149 requestDetails.setRequestInfo(requestInfo);
150 Customer customer = new Customer();
151 String serviceInstanceId = "SharansInstanceId";
152 boolean aLaCarte = true;
153 Service service = new Service();
154 service.setModelUUID("modelUUID");
155 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
156 modelInfoServiceInstance.setModelUuid("modelUUID");
157 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
158 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
159 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
160 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
161 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
162 Service differentService = new Service();
163 differentService.setModelUUID("modelUUIDDifferent");
165 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
166 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
167 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
168 doReturn(differentService).when(SPY_bbInputSetupUtils)
169 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
170 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
171 .mapCatalogServiceIntoServiceInstance(differentService);
173 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
174 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
175 assertThat(actual, sameBeanAs(expected));
178 @Test(expected = Exception.class)
179 public void testGetAlaCarteServiceInstanceException() throws Exception {
180 ServiceInstance expected = mapper.readValue(
181 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
182 ServiceInstance.class);
183 RequestDetails requestDetails = new RequestDetails();
184 RequestInfo requestInfo = new RequestInfo();
185 requestInfo.setInstanceName("SharansInstanceName");
186 requestDetails.setRequestInfo(requestInfo);
187 Customer customer = new Customer();
188 String serviceInstanceId = "SharansInstanceId";
189 boolean aLaCarte = true;
190 Service service = new Service();
191 service.setModelUUID("modelUUID");
192 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
193 modelInfoServiceInstance.setModelUuid("modelUUID");
194 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
195 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
196 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
197 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
198 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
199 Service differentService = new Service();
200 differentService.setModelUUID("modelUUIDDifferent");
202 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
203 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
204 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
205 doReturn(null).when(SPY_bbInputSetupUtils)
206 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
208 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
209 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
210 assertThat(actual, sameBeanAs(expected));
214 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
215 RequestDetails requestDetails = mapper.readValue(
216 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
217 SubscriberInfo subscriberInfo = new SubscriberInfo();
218 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
219 RequestParameters requestParams = new RequestParameters();
220 requestParams.setSubscriptionServiceType("subscriptionServiceType");
221 requestDetails.setRequestParameters(requestParams);
222 requestDetails.setSubscriberInfo(subscriberInfo);
223 String resourceId = "resourceId";
224 Customer expected = new Customer();
225 expected.setGlobalCustomerId("globalCustomerId");
226 ServiceSubscription serviceSubscription = new ServiceSubscription();
227 serviceSubscription.setServiceType("subscriptionServiceType");
229 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
230 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
232 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
234 assertThat(actual, sameBeanAs(expected));
236 requestDetails.setSubscriberInfo(null);
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(executeBB.getWorkflowResourceIds(),lookupKeyMap);
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 requestInfo.setSource("VID");
321 requestDetails.setRequestInfo(requestInfo);
322 CloudConfiguration cloudConfiguration = new CloudConfiguration();
323 cloudConfiguration.setLcpCloudRegionId("myRegionId");
324 requestDetails.setCloudConfiguration(cloudConfiguration);
325 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
326 String resourceId = "123";
327 String requestAction = "createInstance";
329 doReturn(null).when(bbInputSetupMapperLayer).mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isNull());
330 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction,
333 assertThat(actual, sameBeanAs(expected));
337 public void testGetGBBALaCarteNonService() throws Exception {
338 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
339 GeneralBuildingBlock.class);
340 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
341 ExecuteBuildingBlock.class);
342 RequestDetails requestDetails = mapper.readValue(
343 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
344 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
345 String requestAction = "createInstance";
346 Service service = Mockito.mock(Service.class);
347 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
348 String resourceId = "123";
349 String vnfType = "vnfType";
350 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
351 aaiServiceInstance.setModelVersionId("modelVersionId");
352 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
353 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
354 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
355 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
357 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
358 serviceInstance, lookupKeyMap, resourceId, vnfType);
359 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
360 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
361 executeBB, requestAction, null);
363 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
364 requestAction, resourceId, vnfType);
366 assertThat(actual, sameBeanAs(expected));
369 @Test(expected = Exception.class)
370 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
371 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
372 ExecuteBuildingBlock.class);
373 RequestDetails requestDetails = mapper.readValue(
374 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
375 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
376 String requestAction = "createInstance";
377 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
378 aaiServiceInstance.setModelVersionId("modelVersionId");
379 String resourceId = "123";
380 String vnfType = "vnfType";
382 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
387 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
388 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
389 GeneralBuildingBlock.class);
390 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
391 ExecuteBuildingBlock.class);
392 RequestDetails requestDetails = mapper.readValue(
393 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
394 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
395 String requestAction = "createInstance";
396 Service service = Mockito.mock(Service.class);
397 String resourceId = "123";
398 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
399 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
400 aaiServiceInstance.setModelVersionId("modelVersionId");
401 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
402 String vnfType = "vnfType";
403 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
404 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
405 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
407 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
408 serviceInstance, lookupKeyMap, resourceId, vnfType);
410 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
411 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
412 executeBB, requestAction,null);
414 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
415 requestAction, resourceId, vnfType);
417 assertThat(actual, sameBeanAs(expected));
421 public void testGetGBBALaCarteService() throws Exception {
422 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
423 GeneralBuildingBlock.class);
424 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
425 ExecuteBuildingBlock.class);
426 RequestDetails requestDetails = mapper.readValue(
427 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
428 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
430 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
431 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
432 requestDetails.setProject(requestProject);
433 requestDetails.setOwningEntity(requestOwningEntity);
435 Service service = Mockito.mock(Service.class);
436 Customer customer = Mockito.mock(Customer.class);
437 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
438 Project project = Mockito.mock(Project.class);
439 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
440 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
441 String resourceId = "123";
442 String requestAction = "createInstance";
443 executeBB.setaLaCarte(true);
444 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
445 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
447 doReturn(service).when(SPY_bbInputSetupUtils)
448 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
449 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
450 doReturn(owningEntity).when(bbInputSetupMapperLayer)
451 .mapRequestOwningEntity(requestDetails.getOwningEntity());
453 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
454 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
455 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
456 executeBB.getBuildingBlock().getBpmnFlowName());
457 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
458 executeBB, requestAction, customer);
460 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
461 requestAction, resourceId);
463 assertThat(actual, sameBeanAs(expected));
467 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
468 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
469 GeneralBuildingBlock.class);
470 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
471 ExecuteBuildingBlock.class);
472 RequestDetails requestDetails = mapper.readValue(
473 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
474 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
476 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
477 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
478 requestDetails.setProject(requestProject);
479 requestDetails.setOwningEntity(requestOwningEntity);
481 Service service = Mockito.mock(Service.class);
482 Customer customer = Mockito.mock(Customer.class);
483 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
484 Project project = Mockito.mock(Project.class);
485 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
486 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
487 String resourceId = "123";
488 String requestAction = "createInstance";
489 executeBB.setaLaCarte(true);
490 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
491 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
493 doReturn(null).when(SPY_bbInputSetupUtils)
494 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
495 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
496 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
497 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
498 doReturn(owningEntity).when(bbInputSetupMapperLayer)
499 .mapRequestOwningEntity(requestDetails.getOwningEntity());
501 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
502 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
503 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
504 executeBB.getBuildingBlock().getBpmnFlowName());
505 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
506 executeBB, requestAction,customer);
508 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
509 requestAction, resourceId);
511 assertThat(actual, sameBeanAs(expected));
515 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
516 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
517 GeneralBuildingBlock.class);
518 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
519 ExecuteBuildingBlock.class);
520 RequestDetails requestDetails = mapper.readValue(
521 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
522 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
524 Service service = Mockito.mock(Service.class);
525 Customer customer = Mockito.mock(Customer.class);
526 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
527 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
528 String resourceId = "123";
529 String requestAction = "createInstance";
530 executeBB.setaLaCarte(true);
531 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
532 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
534 Map<String, String> uriKeys = new HashMap<>();
535 uriKeys.put("global-customer-id", "globalCustomerId");
536 uriKeys.put("service-type", "serviceType");
538 doReturn(service).when(SPY_bbInputSetupUtils)
539 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
541 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
543 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
544 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
545 executeBB.getBuildingBlock().getBpmnFlowName());
546 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
547 executeBB, requestAction,customer);
549 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
550 requestAction, resourceId);
552 assertThat(actual, sameBeanAs(expected));
556 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
557 RequestDetails requestDetails = new RequestDetails();
558 RequestInfo requestInfo = new RequestInfo();
559 requestInfo.setInstanceName("SharansInstanceName");
560 requestDetails.setRequestInfo(requestInfo);
561 Customer customer = new Customer();
562 String serviceInstanceId = "SharansInstanceId";
563 boolean aLaCarte = true;
564 ServiceInstance expected = new ServiceInstance();
565 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
566 Service service = new Service();
567 service.setModelUUID("modelUUID");
568 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
570 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
571 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
574 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
575 lookupKeyMap, serviceInstanceId);
577 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
578 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
579 assertThat(actual, sameBeanAs(expected));
583 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
584 RequestDetails requestDetails = new RequestDetails();
585 RequestInfo requestInfo = new RequestInfo();
586 requestInfo.setInstanceName("SharansInstanceName");
587 requestDetails.setRequestInfo(requestInfo);
588 Customer customer = new Customer();
589 String serviceInstanceId = "SharansInstanceId";
590 boolean aLaCarte = true;
591 Service service = new Service();
592 service.setModelUUID("modelUUID");
593 ServiceInstance expected = new ServiceInstance();
594 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
595 serviceInstanceAAI.setModelVersionId("modelUUID");
596 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
597 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
599 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
600 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
601 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
603 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
604 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
605 assertThat(actual, sameBeanAs(expected));
609 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
610 RequestDetails requestDetails = new RequestDetails();
611 RequestInfo requestInfo = new RequestInfo();
612 requestInfo.setInstanceName("SharansInstanceName");
613 requestDetails.setRequestInfo(requestInfo);
614 Customer customer = new Customer();
615 String serviceInstanceId = "SharansInstanceId";
616 boolean aLaCarte = true;
617 Service service = new Service();
618 service.setModelUUID("modelUUID");
619 ServiceInstance expected = new ServiceInstance();
620 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
621 serviceInstanceAAI.setModelVersionId("modelUUID");
622 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
623 String bbName = "ActivateServiceInstanceBB";
625 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
626 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
628 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
629 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
630 assertThat(actual, sameBeanAs(expected));
634 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
635 RequestDetails requestDetails = new RequestDetails();
636 RequestInfo requestInfo = new RequestInfo();
637 requestDetails.setRequestInfo(requestInfo);
638 Customer customer = new Customer();
639 String serviceInstanceId = "SharansInstanceId";
640 boolean aLaCarte = true;
641 Service service = new Service();
642 service.setModelUUID("modelUUID");
643 ServiceInstance expected = new ServiceInstance();
644 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
645 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
646 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
647 String bbName = "ActivateServiceInstanceBB";
648 Service differentService = new Service();
649 differentService.setModelUUID("modelUUIDDifferent");
651 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
654 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
655 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
656 assertThat(actual, sameBeanAs(expected));
659 @Test(expected = Exception.class)
660 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
661 RequestDetails requestDetails = new RequestDetails();
662 RequestInfo requestInfo = new RequestInfo();
663 requestDetails.setRequestInfo(requestInfo);
664 Customer customer = new Customer();
665 String serviceInstanceId = "SharansInstanceId";
666 boolean aLaCarte = true;
667 Service service = new Service();
668 service.setModelUUID("modelUUID");
669 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
670 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
671 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
672 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
674 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
675 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
679 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
680 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
681 String instanceName = "instanceName";
682 String vnfType = "vnfType";
683 String resourceId = "networkId";
684 Service service = Mockito.mock(Service.class);
685 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
686 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
687 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
688 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
689 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
690 CloudConfiguration cloudConfiguration = new CloudConfiguration();
691 org.onap.so.serviceinstancebeans.Platform platform = Mockito
692 .mock(org.onap.so.serviceinstancebeans.Platform.class);
693 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
694 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
695 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
697 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
698 lookupKeyMap, resourceId, null);
699 doReturn(modelInfo).when(requestDetails).getModelInfo();
700 doReturn(requestInfo).when(requestDetails).getRequestInfo();
701 doReturn(instanceName).when(requestInfo).getInstanceName();
702 doReturn(platform).when(requestDetails).getPlatform();
703 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
704 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
705 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
707 doReturn(ModelType.network).when(modelInfo).getModelType();
708 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
709 lookupKeyMap, resourceId, vnfType);
710 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
711 lookupKeyMap, resourceId, null);
712 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
714 doReturn(ModelType.vnf).when(modelInfo).getModelType();
715 resourceId = "vnfId";
716 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
717 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
718 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
719 lookupKeyMap, resourceId, vnfType);
720 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
721 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
722 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
724 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
725 resourceId = "volumeGroupId";
726 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
727 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
728 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
729 lookupKeyMap, resourceId, vnfType);
730 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
731 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
732 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
734 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
735 resourceId = "vfModuleId";
736 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
737 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
738 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
739 lookupKeyMap, resourceId, vnfType);
740 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
741 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
742 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
746 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
747 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
748 GeneralBuildingBlock.class);
749 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
750 ExecuteBuildingBlock.class);
751 RequestDetails requestDetails = mapper.readValue(
752 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
753 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
754 RequestContext.class);
755 ServiceInstance serviceInstance = mapper.readValue(
756 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
757 ServiceInstance.class);
759 OrchestrationContext orchestrationContext = new OrchestrationContext();
760 orchestrationContext.setIsRollbackEnabled(false);
762 CloudRegion cloudRegion = new CloudRegion();
763 cloudRegion.setCloudOwner("test-owner-name");
764 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
765 cloudRegion.setComplex("complexName");
766 cloudRegion.setTenantId("tenantId");
768 Map<String, String> uriKeys = new HashMap<>();
769 uriKeys.put("global-customer-id","global-customer-id");
770 uriKeys.put("service-type","service-type");
772 Customer customer = new Customer();
773 ServiceSubscription serviceSubscription = new ServiceSubscription();
774 serviceSubscription.setServiceType("subscriptionServiceType");
775 customer.setGlobalCustomerId("globalCustomerId");
776 customer.setSubscriberName("subscriberName");
777 customer.setSubscriberType("subscriberType");
778 customer.setServiceSubscription(serviceSubscription);
780 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
782 String requestAction = "createInstance";
784 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
785 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
786 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
787 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
788 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
789 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion);
791 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
792 serviceInstance, executeBB, requestAction, null);
794 assertThat(actual, sameBeanAs(expected));
798 public void testGetServiceInstanceNOAAI() throws Exception {
799 ServiceInstance expected = mapper.readValue(
800 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
801 ServiceInstance.class);
802 Service service = mapper.readValue(
803 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
804 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
805 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
806 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
807 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
809 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
810 executeBB.setaLaCarte(true);
811 BuildingBlock buildingBlock = new BuildingBlock();
812 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
813 executeBB.setBuildingBlock(buildingBlock);
814 RequestDetails requestDetails = new RequestDetails();
815 RequestInfo reqInfo = new RequestInfo();
816 reqInfo.setInstanceName("serviceInstanceName");
817 requestDetails.setRequestInfo(reqInfo);
818 ModelInfo modelInfo = new ModelInfo();
819 modelInfo.setModelType(ModelType.service);
820 requestDetails.setModelInfo(modelInfo);
821 doReturn(null).when(SPY_bbInputSetupUtils)
822 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
823 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
824 .mapCatalogServiceIntoServiceInstance(service);
825 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
826 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
827 boolean aLaCarte = true;
829 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
830 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
831 executeBB.getBuildingBlock().getBpmnFlowName());
833 assertThat(actual, sameBeanAs(expected));
837 public void testGetServiceSubscription() throws IOException {
838 ServiceSubscription expected = new ServiceSubscription();
839 RequestDetails requestDetails = new RequestDetails();
840 RequestParameters params = new RequestParameters();
841 params.setSubscriptionServiceType("subscriptionServiceType");
842 requestDetails.setRequestParameters(params);
843 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
844 Customer customer = new Customer();
845 customer.setGlobalCustomerId("globalCustomerId");
846 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
847 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
848 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
850 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
851 assertThat(actual, sameBeanAs(expected));
855 public void testGetCustomer() throws IOException {
856 Customer expected = new Customer();
857 RequestDetails requestDetails = new RequestDetails();
858 SubscriberInfo subscriberInfo = new SubscriberInfo();
859 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
860 requestDetails.setSubscriberInfo(subscriberInfo);
861 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
862 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
863 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
864 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
866 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
867 assertThat(actual, sameBeanAs(expected));
871 public void testGetExistingServiceInstance() throws Exception {
872 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
873 ServiceInstance expected = new ServiceInstance();
875 doReturn(expected).when(bbInputSetupMapperLayer)
876 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
879 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
880 assertThat(actual, sameBeanAs(expected));
884 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
885 Service service = Mockito.mock(Service.class);
886 String key = "collectionCustId";
887 ServiceInstance serviceInstance = mapper.readValue(
888 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
889 ServiceInstance.class);
890 String resourceId = "123";
891 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
892 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
893 assertNull(serviceInstance.getCollection());
894 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
895 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
896 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
897 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
899 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
900 networkCollection.setModelCustomizationUUID(key);
901 networkCollection.setCollectionResource(new CollectionResource());
902 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
903 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
904 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
905 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
906 List<CollectionResourceCustomization> customizations = new ArrayList<>();
907 customizations.add(networkCollection);
908 doReturn(customizations).when(service).getCollectionResourceCustomizations();
910 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
911 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
913 assertNotNull(serviceInstance.getCollection());
914 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
916 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
917 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
918 serviceInstance.getCollection().getInstanceGroup(), key);
922 public void testIsVlanTagging() throws Exception {
923 boolean expected = true;
924 Service service = Mockito.mock(Service.class);
925 String key = "collectionCustId";
926 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
927 networkCollection.setModelCustomizationUUID(key);
928 networkCollection.setCollectionResource(new CollectionResource());
929 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
930 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
931 List<CollectionResourceCustomization> customizations = new ArrayList<>();
932 customizations.add(networkCollection);
933 doReturn(customizations).when(service).getCollectionResourceCustomizations();
934 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
935 assertEquals("Is Vlan Tagging check.", expected, actual);
939 public void testPopulateVolumeGroup() throws Exception {
940 RequestDetails requestDetails = new RequestDetails();
941 RelatedInstanceList ril = new RelatedInstanceList();
942 RelatedInstance ri = new RelatedInstance();
943 ModelInfo mi = new ModelInfo();
944 mi.setModelType(ModelType.vnf);
945 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
947 ril.setRelatedInstance(ri);
948 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
950 ModelInfo modelInfo = new ModelInfo();
951 modelInfo.setModelType(ModelType.volumeGroup);
953 RequestInfo reqInfo = new RequestInfo();
954 reqInfo.setInstanceName("volumeGroupName");
955 requestDetails.setModelInfo(modelInfo);
956 requestDetails.setRequestInfo(reqInfo);
958 ServiceInstance serviceInstance = new ServiceInstance();
959 GenericVnf vnf = new GenericVnf();
960 vnf.setVnfId("genericVnfId");
962 VolumeGroup vg = new VolumeGroup();
963 vg.setVolumeGroupName("volumeGroupName");
964 vg.setVolumeGroupId("volumeGroupId");
965 vnf.getVolumeGroups().add(vg);
966 serviceInstance.getVnfs().add(vnf);
968 Service service = mapper.readValue(
969 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
970 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
971 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
973 String bbName = AssignFlows.VOLUME_GROUP.toString();
974 String resourceId = "123";
975 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
976 eq(service), eq("vnfModelCustomizationUUID"));
977 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
978 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
979 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
981 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
982 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
983 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
984 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
985 vnf.getVolumeGroups().clear();
986 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
987 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
988 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
989 "vnfModelCustomizationUUID");
993 public void testMapCatalogVolumeGroup() {
994 VolumeGroup volumeGroup = new VolumeGroup();
995 RequestDetails requestDetails = new RequestDetails();
996 ModelInfo modelInfo = new ModelInfo();
997 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
998 requestDetails.setModelInfo(modelInfo);
999 Service service = new Service();
1000 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1001 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1002 service.getVnfCustomizations().add(resourceCust);
1003 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1004 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1005 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1006 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1008 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1010 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1012 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1016 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1017 String instanceName = "networkName";
1018 ModelInfo modelInfo = new ModelInfo();
1019 modelInfo.setModelType(ModelType.network);
1021 ServiceInstance serviceInstance = new ServiceInstance();
1022 L3Network network = new L3Network();
1023 network.setNetworkId("networkId");
1024 network.setNetworkName("networkName");
1025 serviceInstance.getNetworks().add(network);
1026 String resourceId = "123";
1028 Service service = mapper.readValue(
1029 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1030 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1031 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1032 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1034 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1036 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1039 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1041 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1043 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1045 instanceName = "networkName2";
1046 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1047 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1049 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1053 public void testMapCatalogNetwork() {
1054 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1055 L3Network network = new L3Network();
1057 RequestDetails requestDetails = new RequestDetails();
1058 ModelInfo modelInfo = new ModelInfo();
1059 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1060 requestDetails.setModelInfo(modelInfo);
1061 Service service = new Service();
1062 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1063 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1064 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1066 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1068 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1070 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1074 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1075 String instanceName = "configurationName";
1076 ModelInfo modelInfo = new ModelInfo();
1077 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1079 ServiceInstance serviceInstance = new ServiceInstance();
1080 Configuration configuration = new Configuration();
1081 configuration.setConfigurationId("configurationId");
1082 configuration.setConfigurationName("configurationName");
1083 serviceInstance.getConfigurations().add(configuration);
1084 String resourceId = "configurationId";
1086 Service service = mapper.readValue(
1087 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1088 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1089 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1090 service.getConfigurationCustomizations().add(configurationCust);
1091 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1092 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1093 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1094 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1095 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1096 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1097 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1099 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1101 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1102 instanceName, configResourceKeys);
1103 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1105 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1107 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1108 instanceName, configResourceKeys);
1109 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1111 instanceName = "configurationName2";
1112 resourceId = "resourceId2";
1113 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1114 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1115 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1116 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1117 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1118 instanceName, configResourceKeys);
1119 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1123 public void testMapCatalogConfiguration() {
1124 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1125 L3Network network = new L3Network();
1127 RequestDetails requestDetails = new RequestDetails();
1128 ModelInfo modelInfo = new ModelInfo();
1129 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1130 requestDetails.setModelInfo(modelInfo);
1131 Service service = new Service();
1132 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1133 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1134 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1136 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1138 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1140 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1144 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1145 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1146 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1147 String instanceName = "vnfName";
1148 ModelInfo modelInfo = new ModelInfo();
1149 modelInfo.setModelType(ModelType.vnf);
1151 ServiceInstance serviceInstance = new ServiceInstance();
1152 GenericVnf vnf = new GenericVnf();
1153 vnf.setVnfId("genericVnfId");
1154 vnf.setVnfName("vnfName");
1155 serviceInstance.getVnfs().add(vnf);
1156 String vnfType = "vnfType";
1157 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1158 RequestDetails.class);
1160 Service service = mapper.readValue(
1161 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1162 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1163 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1164 String bbName = AssignFlows.VNF.toString();
1166 Platform expectedPlatform = new Platform();
1167 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1168 String resourceId = "123";
1169 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1170 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1171 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1172 vnfAAI.setModelCustomizationId("modelCustId");
1173 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1174 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1175 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1176 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1177 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1178 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1180 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1181 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1183 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1185 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1186 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1187 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1189 instanceName = "vnfName2";
1190 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1191 resourceId, vnfType, null);
1192 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1193 resourceId, vnfType, null);
1194 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1195 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1197 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1199 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1200 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1201 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1202 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1203 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1207 public void testMapVnfcCollectionInstanceGroup() {
1208 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1209 GenericVnf genericVnf = new GenericVnf();
1210 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1211 Service service = Mockito.mock(Service.class);
1212 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1213 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1214 vnfcInstanceGroupCust.setModelUUID("modelUUID");
1215 vnfcInstanceGroupCust.setFunction("function");
1216 vnfcInstanceGroupCust.setDescription("description");
1217 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1218 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1219 instanceGroup.setModelUUID("modelUUID");
1220 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1221 modelInfoInstanceGroup.setModelUUID("modelUUID");
1222 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1223 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1224 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1225 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null, instanceGroup);
1227 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1229 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1232 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1233 throws JsonParseException, JsonMappingException, IOException {
1234 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1235 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1236 String instanceName = "vnfName";
1237 ModelInfo modelInfo = new ModelInfo();
1238 modelInfo.setModelType(ModelType.vnf);
1240 ServiceInstance serviceInstance = new ServiceInstance();
1241 GenericVnf vnf = new GenericVnf();
1242 vnf.setVnfId("genericVnfId");
1243 vnf.setVnfName("vnfName");
1244 serviceInstance.getVnfs().add(vnf);
1245 String vnfType = null;
1246 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1247 RequestDetails.class);
1249 Service service = mapper.readValue(
1250 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1251 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1252 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1253 String bbName = AssignFlows.VNF.toString();
1255 Platform expectedPlatform = new Platform();
1256 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1257 String resourceId = "123";
1258 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1259 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1260 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1261 vnfAAI.setModelCustomizationId("modelCustId");
1262 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1263 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1264 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1265 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1266 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1267 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1269 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1270 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1272 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1274 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1275 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1276 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1278 instanceName = "vnfName2";
1279 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1280 resourceId, vnfType, null);
1282 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1283 vnfAAI.setModelCustomizationId("modelCustId2");
1284 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1285 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1286 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1287 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1288 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1289 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1290 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1291 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1292 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1296 public void testMapCatalogVnf() {
1297 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1298 GenericVnf genericVnf = new GenericVnf();
1299 RequestDetails requestDetails = new RequestDetails();
1300 ModelInfo modelInfo = new ModelInfo();
1301 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1302 requestDetails.setModelInfo(modelInfo);
1303 Service service = new Service();
1304 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1305 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1306 service.getVnfCustomizations().add(resourceCust);
1307 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1309 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1311 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1313 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1317 public void testMapCatalogCollectionAndInstanceGroup() {
1318 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1319 modelInfoCollection.setCollectionFunction("collectionFunction");
1320 modelInfoCollection.setCollectionRole("collectionRole");
1321 modelInfoCollection.setCollectionType("collectionType");
1322 modelInfoCollection.setDescription("description");
1323 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1324 modelInfoCollection.setQuantity(0);
1326 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1327 modelInfoInstanceGroup.setFunction("function");
1328 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1329 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1330 modelInfoInstanceGroup.setModelUUID("modelUUID");
1331 modelInfoInstanceGroup.setType("VNFC");
1332 modelInfoInstanceGroup.setDescription("description");
1334 InstanceGroup instanceGroup = new InstanceGroup();
1335 Collection collection = new Collection();
1336 collection.setInstanceGroup(instanceGroup);
1338 CollectionResource collectionResource = new CollectionResource();
1339 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1340 collectionResource.setToscaNodeType("NetworkCollection");
1341 collectionResource.setInstanceGroup(catalogInstanceGroup);
1343 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1344 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1345 collectionCust.setCollectionResource(collectionResource);
1347 Service service = new Service();
1348 service.getCollectionResourceCustomizations().add(collectionCust);
1349 ServiceInstance serviceInstance = new ServiceInstance();
1350 serviceInstance.setCollection(collection);
1352 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1353 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1354 instanceGroupCust.setFunction("function");
1355 instanceGroupCust.setDescription("description");
1357 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1358 collectionResource);
1360 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1361 catalogInstanceGroup);
1363 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1364 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1365 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1367 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1368 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1372 public void testAddRelationshipsToSI() throws Exception {
1373 ServiceInstance serviceInstance = new ServiceInstance();
1374 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1375 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1377 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1378 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1379 relationshipList.getRelationship().add(relationship);
1380 serviceInstanceAAI.setRelationshipList(relationshipList);
1382 Map<String, String> uriKeys = new HashMap<>();
1383 uriKeys.put("global-customer-id", "globalCustomerId");
1384 uriKeys.put("service-type", "serviceType");
1387 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1388 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1389 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1390 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1391 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1393 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1395 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1396 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1397 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1398 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1399 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1400 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1404 public void testMapConfigurations() throws JsonProcessingException {
1405 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1406 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1407 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1408 relationshipList.getRelationship().add(relationship);
1409 expectedAAI.setRelationshipList(relationshipList);
1411 Configuration expected = new Configuration();
1412 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1413 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1414 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1416 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1417 doReturn(expected).when(bbInputSetupMapperLayer)
1418 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1420 List<Configuration> configurations = new ArrayList<>();
1422 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1424 assertEquals(expected, configurations.get(0));
1428 public void testMapGenericVnfs() throws JsonProcessingException {
1429 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1430 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1431 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1432 relationshipList.getRelationship().add(relationship);
1433 expectedAAI.setRelationshipList(relationshipList);
1435 GenericVnf expected = new GenericVnf();
1436 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1437 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1438 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1440 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1441 doReturn(expected).when(bbInputSetupMapperLayer)
1442 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1443 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1444 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1445 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1447 List<GenericVnf> genericVnfs = new ArrayList<>();
1449 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1451 assertEquals(expected, genericVnfs.get(0));
1452 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1453 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1454 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1458 public void testMapVolumeGroups() throws JsonProcessingException {
1459 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1461 VolumeGroup expected = new VolumeGroup();
1462 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1463 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1465 doReturn(expected).when(bbInputSetupMapperLayer)
1466 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1468 List<VolumeGroup> volumeGroupsList =
1469 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1471 assertEquals(expected, volumeGroupsList.get(0));
1475 public void testMapLineOfBusiness() throws JsonProcessingException {
1476 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1478 LineOfBusiness expected = new LineOfBusiness();
1479 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1480 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1482 doReturn(expected).when(bbInputSetupMapperLayer)
1483 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1485 GenericVnf vnf = new GenericVnf();
1487 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1489 assertEquals(expected, vnf.getLineOfBusiness());
1493 public void testMapPlatform() throws JsonProcessingException {
1494 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1496 Platform expected = new Platform();
1497 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1498 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1500 doReturn(expected).when(bbInputSetupMapperLayer)
1501 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1503 GenericVnf vnf = new GenericVnf();
1505 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1507 assertEquals(expected, vnf.getPlatform());
1511 public void testMapCollection() throws JsonProcessingException {
1512 List<AAIResultWrapper> collections = new ArrayList<>();
1513 ServiceInstance serviceInstance = new ServiceInstance();
1515 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1516 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1517 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1518 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1519 aaiCollection.setRelationshipList(collectionRelationshipList);
1521 collections.add(new AAIResultWrapper(
1522 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1524 Collection collection = new Collection();
1525 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1526 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1527 InstanceGroup instanceGroup = new InstanceGroup();
1528 instanceGroupsList.add(instanceGroup);
1529 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1530 CollectionResource collectionResource = new CollectionResource();
1531 doReturn(collection).when(bbInputSetupMapperLayer)
1532 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1533 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1534 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1535 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1536 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1538 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1540 assertEquals(collection, serviceInstance.getCollection());
1541 assertEquals(instanceGroup, collection.getInstanceGroup());
1543 instanceGroupsList.clear();
1544 collection = new Collection();
1546 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1547 assertEquals(collection, serviceInstance.getCollection());
1548 assertNull(collection.getInstanceGroup());
1552 public void testMapL3Networks() throws JsonProcessingException {
1553 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1554 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1555 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1556 relationshipList.getRelationship().add(relationship);
1557 expectedAAI.setRelationshipList(relationshipList);
1559 L3Network expected = new L3Network();
1560 List<L3Network> l3Networks = new ArrayList<>();
1561 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1562 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1563 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1565 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1566 doReturn(expected).when(bbInputSetupMapperLayer)
1567 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1568 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1569 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1570 eq(expected.getContrailNetworkRouteTableReferences()));
1572 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1574 assertEquals(expected, l3Networks.get(0));
1575 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1576 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1577 eq(expected.getContrailNetworkRouteTableReferences()));
1581 public void testMapRouteTableReferences() throws JsonProcessingException {
1582 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1584 RouteTableReference expected = new RouteTableReference();
1585 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1586 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1587 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1589 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1590 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1592 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1593 contrailNetworkRouteTableReferences);
1595 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1599 public void testMapOwningEntity() throws JsonProcessingException {
1600 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1602 OwningEntity expected = new OwningEntity();
1603 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1604 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1606 doReturn(expected).when(bbInputSetupMapperLayer)
1607 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1609 ServiceInstance serviceInstance = new ServiceInstance();
1611 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1613 assertEquals(expected, serviceInstance.getOwningEntity());
1617 public void testMapProject() throws JsonProcessingException {
1618 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1620 Project expected = new Project();
1621 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1622 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1624 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1626 ServiceInstance serviceInstance = new ServiceInstance();
1628 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1630 assertEquals(expected, serviceInstance.getProject());
1634 public void testMapCustomer() throws Exception {
1635 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1636 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1638 Customer expected = new Customer();
1639 ServiceSubscription serviceSubscription = new ServiceSubscription();
1641 String globalCustomerId = "globalCustomerId";
1642 String subscriptionServiceType = "subscriptionServiceType";
1644 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1645 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1646 subscriptionServiceType);
1647 doReturn(expected).when(bbInputSetupMapperLayer)
1648 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1649 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1650 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1652 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1654 assertEquals(expected, actual);
1655 assertEquals(serviceSubscription, expected.getServiceSubscription());
1659 public void testPopulateLookupKeyMapWithIds() {
1660 Map<ResourceKey, String> expected = new HashMap<>();
1661 Map<ResourceKey, String> actual = new HashMap<>();
1662 String serviceInstanceId = "serviceInstanceId";
1663 String networkId = "networkId";
1664 String vnfId = "vnfId";
1665 String vfModuleId = "vfModuleId";
1666 String volumeGroupId = "volumeGroupId";
1667 String configurationId = "configurationId";
1669 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1670 expected.put(ResourceKey.NETWORK_ID, networkId);
1671 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1672 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1673 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1674 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1676 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1677 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1678 workflowResourceIds.setNetworkId(networkId);
1679 workflowResourceIds.setVnfId(vnfId);
1680 workflowResourceIds.setVfModuleId(vfModuleId);
1681 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1682 workflowResourceIds.setConfigurationId(configurationId);
1684 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1686 assertThat(actual, sameBeanAs(expected));
1690 public void testgetGBBMacro() throws Exception {
1691 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1692 GeneralBuildingBlock.class);
1693 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1694 ExecuteBuildingBlock.class);
1695 RequestDetails requestDetails = mapper
1696 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1697 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1698 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1699 aaiVnf.setModelCustomizationId("modelCustId");
1700 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1701 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1702 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1703 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1704 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1705 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1706 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1707 String resourceId = "123";
1708 String vnfType = "vnfType";
1709 Service service = Mockito.mock(Service.class);
1710 String requestAction = "createInstance";
1712 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1713 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1714 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1715 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1716 executeBB.setConfigurationResourceKeys(configResourceKeys);
1717 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1718 requestAction, resourceId);
1719 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1720 doReturn(service).when(SPY_bbInputSetupUtils)
1721 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1722 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1723 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1724 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1725 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1727 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1728 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1729 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1730 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1731 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1733 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1734 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1735 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1736 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1737 isA(org.onap.so.serviceinstancebeans.Platform.class),
1738 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1739 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1741 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1742 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1743 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1744 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1745 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1746 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1748 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1749 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1750 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1751 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1752 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1753 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(),ArgumentMatchers.isNull(),
1754 any(String.class), any());
1756 Configuration configuration = new Configuration();
1757 configuration.setConfigurationId("configurationId");
1758 gBB.getServiceInstance().getConfigurations().add(configuration);
1759 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1760 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1761 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1762 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1763 configurationCustList.add(configurationCust);
1764 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1765 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1767 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1768 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1769 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1770 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1771 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1775 public void testgetGBBMacroCloudConfiguration() throws Exception {
1776 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1777 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1778 CloudConfiguration cloudConfig = null;
1779 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1780 aaiCloudRegion.setCloudOwner("test-owner-name");
1781 Resources resources = serviceMacro.getResources();
1782 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
1783 CloudRegion expected = new CloudRegion();
1784 expected.setLcpCloudRegionId("mdt1");
1785 expected.setCloudOwner("test-owner-name");
1786 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1788 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1789 assertThat(actual, sameBeanAs(expected));
1791 serviceMacro = mapper.readValue(
1792 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1793 resources = serviceMacro.getResources();
1795 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1796 assertThat(actual, sameBeanAs(expected));
1798 serviceMacro = mapper.readValue(
1799 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1800 resources = serviceMacro.getResources();
1802 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1803 assertThat(actual, sameBeanAs(expected));
1805 serviceMacro = mapper.readValue(
1806 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1807 resources = serviceMacro.getResources();
1809 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1814 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1815 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1816 GeneralBuildingBlock.class);
1817 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1818 ExecuteBuildingBlock.class);
1819 RequestDetails requestDetails = mapper
1820 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1821 requestDetails.getRequestParameters().getUserParams().clear();
1822 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1823 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1824 aaiVnf.setModelCustomizationId("modelCustId");
1825 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1826 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1827 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1828 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1829 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1830 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1831 String resourceId = "123";
1832 String vnfType = "vnfType";
1833 Service service = Mockito.mock(Service.class);
1834 String requestAction = "createInstance";
1835 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1836 requestAction, resourceId);
1837 doReturn(service).when(SPY_bbInputSetupUtils)
1838 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1840 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1841 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1842 executeBB.getBuildingBlock().setIsVirtualLink(Boolean.FALSE);
1843 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1844 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1845 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1848 @Test(expected = Exception.class)
1849 public void testgetGBBMacroException() throws Exception {
1850 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1851 GeneralBuildingBlock.class);
1852 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1853 ExecuteBuildingBlock.class);
1854 RequestDetails requestDetails = mapper
1855 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1856 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1857 String resourceId = "123";
1858 String vnfType = "vnfType";
1859 Service service = Mockito.mock(Service.class);
1860 String requestAction = "createInstance";
1861 doReturn(null).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1862 requestAction, resourceId);
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(),ArgumentMatchers.isNull(), any(String.class), ArgumentMatchers.isNull(), 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), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
1927 ArgumentMatchers.isNull(), 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), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
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";
2018 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
2019 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2020 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2021 requestAction, resourceId, vnfType);
2022 assertThat(actual, sameBeanAs(gBB));
2026 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
2027 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2028 GeneralBuildingBlock.class);
2029 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2030 ExecuteBuildingBlock.class);
2031 RequestDetails requestDetails = mapper
2032 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2033 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2034 requestDetails.getRequestParameters().setUserParams(null);
2035 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2036 aaiVnf.setModelCustomizationId("modelCustId");
2037 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2038 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2039 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2040 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2041 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2042 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2043 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2045 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2046 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2047 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2048 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2049 executeBB.setConfigurationResourceKeys(configResourceKeys);
2051 String resourceId = "123";
2052 String vnfType = "vnfType";
2053 Service service = Mockito.mock(Service.class);
2054 String requestAction = "createInstance";
2055 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2056 requestAction, resourceId);
2058 doReturn(service).when(SPY_bbInputSetupUtils)
2059 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2060 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2061 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2062 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2063 networkCustList.add(networkCust);
2064 doReturn(networkCustList).when(service).getNetworkCustomizations();
2065 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2066 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2068 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2069 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2070 executeBB.getBuildingBlock().setIsVirtualLink(false);
2071 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2072 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2073 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2075 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2076 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2077 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2078 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2079 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2080 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2082 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2083 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2084 executeBB.getBuildingBlock().setIsVirtualLink(true);
2085 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2086 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2087 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2089 executeBB.getBuildingBlock().setBpmnFlowName("CreateNetworkBB");
2090 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2091 executeBB.getBuildingBlock().setIsVirtualLink(true);
2092 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2093 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2094 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2098 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2099 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2100 GeneralBuildingBlock.class);
2101 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2102 ExecuteBuildingBlock.class);
2103 RequestDetails requestDetails = mapper
2104 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2105 requestDetails.getRequestParameters().setUserParams(null);
2106 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2107 aaiVnf.setModelCustomizationId("modelCustId");
2108 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2109 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2110 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2111 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2112 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2113 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2114 String resourceId = "123";
2115 String vnfType = "vnfType";
2116 Service service = Mockito.mock(Service.class);
2117 String requestAction = "deleteInstance";
2118 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2119 requestAction, resourceId);
2120 doReturn(service).when(SPY_bbInputSetupUtils)
2121 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2122 //doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2124 CloudConfiguration cloudConfig = new CloudConfiguration();
2125 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2126 requestDetails.setCloudConfiguration(cloudConfig);
2127 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2128 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
2129 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2130 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2131 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2132 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2133 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2134 isA(CloudConfiguration.class));
2136 requestAction = "activateInstance";
2137 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2138 requestAction, resourceId);
2139 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2140 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2141 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2142 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2143 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2144 isA(CloudConfiguration.class));
2146 requestAction = "unassignInstance";
2147 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2148 requestAction, resourceId);
2149 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2150 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2151 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2152 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2153 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2154 isA(CloudConfiguration.class));
2156 requestAction = "activateFabricConfiguration";
2157 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2158 requestAction, resourceId);
2159 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2160 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2161 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2162 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2163 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2164 isA(CloudConfiguration.class));
2167 @Test(expected = IllegalArgumentException.class)
2168 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2169 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2170 GeneralBuildingBlock.class);
2171 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2172 ExecuteBuildingBlock.class);
2173 RequestDetails requestDetails = mapper
2174 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2175 requestDetails.getRequestParameters().setUserParams(null);
2176 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2177 aaiVnf.setModelCustomizationId("modelCustId");
2178 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2179 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2180 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2181 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2182 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2183 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2184 String resourceId = "123";
2185 String vnfType = "vnfType";
2186 Service service = Mockito.mock(Service.class);
2187 String requestAction = "assignInstance";
2188 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2189 requestAction, resourceId);
2190 doReturn(service).when(SPY_bbInputSetupUtils)
2191 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2192 String generatedId = "12131";
2194 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2195 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2198 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2199 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2200 GeneralBuildingBlock.class);
2201 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2202 ExecuteBuildingBlock.class);
2203 RequestDetails requestDetails = mapper
2204 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2205 requestDetails.getRequestParameters().setUserParams(null);
2206 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2207 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2208 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2209 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2210 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2211 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2212 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2213 Service service = Mockito.mock(Service.class);
2214 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2215 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2216 String requestAction = "unassignInstance";
2218 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2219 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2220 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2221 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2222 executeBB.setConfigurationResourceKeys(configResourceKeys);
2224 L3Network network = new L3Network();
2225 network.setNetworkId("networkId");
2226 gBB.getServiceInstance().getNetworks().add(network);
2227 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2228 aaiNetwork.setModelCustomizationId("modelCustId");
2229 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2230 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2231 any(Service.class));
2233 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2234 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2235 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2236 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2237 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2238 any(Service.class));
2240 GenericVnf vnf = new GenericVnf();
2241 vnf.setVnfId("vnfId");
2242 gBB.getServiceInstance().getVnfs().add(vnf);
2243 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2244 aaiVnf.setModelCustomizationId("modelCustId");
2245 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2246 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2247 any(Service.class));
2249 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2250 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2251 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2252 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2253 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2254 any(Service.class));
2256 VfModule vfModule = new VfModule();
2257 vfModule.setVfModuleId("vfModuleId");
2258 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2259 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2260 aaiVfModule.setModelCustomizationId("modelCustId");
2261 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2263 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2264 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2265 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2266 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2267 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2268 any(Service.class));
2269 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2270 any(Service.class), any(String.class));
2272 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2273 VolumeGroup volumeGroup = new VolumeGroup();
2274 volumeGroup.setVolumeGroupId("volumeGroupId");
2275 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2276 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2277 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2278 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(Defaults.CLOUD_OWNER.toString(),
2279 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2281 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2282 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2283 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2284 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2285 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2286 any(Service.class));
2287 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2288 isA(Service.class), isA(String.class));
2290 Configuration configuration = new Configuration();
2291 configuration.setConfigurationId("configurationId");
2292 gBB.getServiceInstance().getConfigurations().add(configuration);
2293 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2294 aaiConfiguration.setModelCustomizationId("modelCustId");
2295 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2296 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2298 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2299 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2300 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2301 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2302 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2303 any(Service.class), isA(ConfigurationResourceKeys.class));
2307 public void testGetVnfId() {
2308 String expected = "vnfId";
2309 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2310 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2311 executeBB.setRequestId("requestId");
2312 InfraActiveRequests request = new InfraActiveRequests();
2313 request.setVnfId(expected);
2314 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2316 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2318 assertEquals("VnfId is set correctly", expected, actual);
2322 public void testCreateVfModule() {
2323 String vfModuleId = "vfModuleId";
2324 String instanceName = "vfModuleName";
2325 Map<String, String> cloudParams = new HashMap<>();
2326 cloudParams.put("param1", "param1Value");
2327 VfModule expected = new VfModule();
2328 expected.setVfModuleId(vfModuleId);
2329 expected.setVfModuleName(instanceName);
2330 expected.setCloudParams(cloudParams);
2331 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2332 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2333 List<Map<String, String>> instanceParams = new ArrayList<>();
2334 instanceParams.add(cloudParams);
2336 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2338 assertThat(actual, sameBeanAs(expected));
2339 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2341 expected.getCloudParams().clear();
2342 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2343 assertThat(actual, sameBeanAs(expected));
2347 public void testCreateVolumeGroup() {
2348 String volumeGroupId = "volumeGroupId";
2349 String instanceName = "vfModuleName";
2350 String vnfType = "vnfType";
2351 Map<String, String> cloudParams = new HashMap<>();
2352 cloudParams.put("param1", "param1Value");
2353 VolumeGroup expected = new VolumeGroup();
2354 expected.setVolumeGroupId(volumeGroupId);
2355 expected.setVolumeGroupName(instanceName);
2356 expected.setCloudParams(cloudParams);
2357 expected.setVnfType(vnfType);
2358 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2359 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2360 List<Map<String, String>> instanceParams = new ArrayList<>();
2361 instanceParams.add(cloudParams);
2363 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2365 assertThat(actual, sameBeanAs(expected));
2366 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2368 expected.getCloudParams().clear();
2369 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2370 assertThat(actual, sameBeanAs(expected));
2374 public void testCreateNetwork() {
2375 String networkId = "networkId";
2376 String instanceName = "networkName";
2377 Map<String, String> cloudParams = new HashMap<>();
2378 cloudParams.put("param1", "param1Value");
2379 L3Network expected = new L3Network();
2380 expected.setNetworkId(networkId);
2381 expected.setNetworkName(instanceName);
2382 expected.setCloudParams(cloudParams);
2383 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2384 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2385 List<Map<String, String>> instanceParams = new ArrayList<>();
2386 instanceParams.add(cloudParams);
2387 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2389 assertThat(actual, sameBeanAs(expected));
2390 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2392 expected.getCloudParams().clear();
2393 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2394 assertThat(actual, sameBeanAs(expected));
2398 public void testCreateGenericVnf() {
2399 String vnfId = "vnfId";
2400 String instanceName = "vnfName";
2401 String vnfType = "vnfType";
2402 String platformName = "platformName";
2403 String lineOfBusinessName = "lineOfBusinessName";
2404 Platform platform = new Platform();
2405 platform.setPlatformName(platformName);
2406 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2407 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2408 Map<String, String> cloudParams = new HashMap<>();
2409 cloudParams.put("param1", "param1Value");
2410 GenericVnf expected = new GenericVnf();
2411 expected.setVnfId(vnfId);
2412 expected.setVnfName(instanceName);
2413 expected.setVnfType(vnfType);
2414 expected.setCloudParams(cloudParams);
2415 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2416 expected.setPlatform(platform);
2417 expected.setLineOfBusiness(lineOfBusiness);
2418 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2419 List<Map<String, String>> instanceParams = new ArrayList<>();
2420 instanceParams.add(cloudParams);
2421 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2422 platform.setPlatformName(platformName);
2423 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2424 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2426 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2427 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2429 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2431 assertThat(actual, sameBeanAs(expected));
2432 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2434 expected.getCloudParams().clear();
2435 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2436 assertThat(actual, sameBeanAs(expected));
2440 public void testMapCatalogVfModule() {
2441 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2442 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2443 VfModule vfModule = new VfModule();
2444 ModelInfo modelInfo = new ModelInfo();
2445 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2446 Service service = new Service();
2447 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2448 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2449 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2450 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2451 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2452 service.getVnfCustomizations().add(vnfResourceCust);
2453 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2455 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2457 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2459 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2461 modelInfo.setModelCustomizationUuid(null);
2462 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2464 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2466 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2470 public void testPopulateVfModule() throws Exception {
2471 String vnfId = "vnfId";
2472 String vfModuleId = "vfModuleId";
2473 String volumeGroupId = "volumeGroupId";
2474 String vfModuleCustomizationId = "vfModuleCustomizationId";
2475 ModelInfo modelInfo = new ModelInfo();
2476 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2477 Service service = new Service();
2478 String bbName = AssignFlows.VF_MODULE.toString();
2479 ServiceInstance serviceInstance = new ServiceInstance();
2480 GenericVnf vnf = new GenericVnf();
2481 vnf.setVnfId(vnfId);
2482 VolumeGroup volumeGroup = new VolumeGroup();
2483 volumeGroup.setVolumeGroupId(volumeGroupId);
2484 vnf.getVolumeGroups().add(volumeGroup);
2485 serviceInstance.getVnfs().add(vnf);
2486 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2487 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2488 String resourceId = vfModuleId;
2489 RelatedInstanceList[] relatedInstanceList = null;
2490 String instanceName = "vfModuleName";
2491 List<Map<String, String>> instanceParams = null;
2492 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2494 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2495 vnfAAI.setModelCustomizationId("vnfModelCustId");
2496 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2497 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2499 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2500 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2501 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2502 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2503 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2505 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2506 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2508 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2509 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));