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.request.beans.InfraActiveRequests;
103 import org.onap.so.serviceinstancebeans.CloudConfiguration;
104 import org.onap.so.serviceinstancebeans.ModelInfo;
105 import org.onap.so.serviceinstancebeans.ModelType;
106 import org.onap.so.serviceinstancebeans.RelatedInstance;
107 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
108 import org.onap.so.serviceinstancebeans.RequestDetails;
109 import org.onap.so.serviceinstancebeans.RequestInfo;
110 import org.onap.so.serviceinstancebeans.RequestParameters;
111 import org.onap.so.serviceinstancebeans.Resources;
112 import org.onap.so.serviceinstancebeans.SubscriberInfo;
114 import com.fasterxml.jackson.core.JsonParseException;
115 import com.fasterxml.jackson.core.JsonProcessingException;
116 import com.fasterxml.jackson.databind.JsonMappingException;
117 import com.fasterxml.jackson.databind.ObjectMapper;
118 @RunWith(MockitoJUnitRunner.class)
119 public class BBInputSetupTest {
120 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
122 protected ObjectMapper mapper = new ObjectMapper();
123 private static final String CLOUD_OWNER = "CloudOwner";
126 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
129 private BBInputSetupUtils SPY_bbInputSetupUtils;
132 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
136 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
137 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
141 public void testGetAlaCarteServiceInstance() throws Exception {
142 ServiceInstance expected = mapper.readValue(
143 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
144 ServiceInstance.class);
145 RequestDetails requestDetails = new RequestDetails();
146 RequestInfo requestInfo = new RequestInfo();
147 requestInfo.setInstanceName("SharansInstanceName");
148 requestDetails.setRequestInfo(requestInfo);
149 Customer customer = new Customer();
150 String serviceInstanceId = "SharansInstanceId";
151 boolean aLaCarte = true;
152 Service service = new Service();
153 service.setModelUUID("modelUUID");
154 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
155 modelInfoServiceInstance.setModelUuid("modelUUID");
156 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
157 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
158 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
159 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
160 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
161 Service differentService = new Service();
162 differentService.setModelUUID("modelUUIDDifferent");
164 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
165 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
166 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
167 doReturn(differentService).when(SPY_bbInputSetupUtils)
168 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
169 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
170 .mapCatalogServiceIntoServiceInstance(differentService);
172 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
173 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
174 assertThat(actual, sameBeanAs(expected));
177 @Test(expected = Exception.class)
178 public void testGetAlaCarteServiceInstanceException() throws Exception {
179 ServiceInstance expected = mapper.readValue(
180 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
181 ServiceInstance.class);
182 RequestDetails requestDetails = new RequestDetails();
183 RequestInfo requestInfo = new RequestInfo();
184 requestInfo.setInstanceName("SharansInstanceName");
185 requestDetails.setRequestInfo(requestInfo);
186 Customer customer = new Customer();
187 String serviceInstanceId = "SharansInstanceId";
188 boolean aLaCarte = true;
189 Service service = new Service();
190 service.setModelUUID("modelUUID");
191 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
192 modelInfoServiceInstance.setModelUuid("modelUUID");
193 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
194 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
195 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
196 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
197 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
198 Service differentService = new Service();
199 differentService.setModelUUID("modelUUIDDifferent");
201 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
202 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
203 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
204 doReturn(null).when(SPY_bbInputSetupUtils)
205 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
207 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
208 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
209 assertThat(actual, sameBeanAs(expected));
213 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
214 RequestDetails requestDetails = mapper.readValue(
215 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
216 SubscriberInfo subscriberInfo = new SubscriberInfo();
217 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
218 RequestParameters requestParams = new RequestParameters();
219 requestParams.setSubscriptionServiceType("subscriptionServiceType");
220 requestDetails.setRequestParameters(requestParams);
221 requestDetails.setSubscriberInfo(subscriberInfo);
222 String resourceId = "resourceId";
223 Customer expected = new Customer();
224 expected.setGlobalCustomerId("globalCustomerId");
225 ServiceSubscription serviceSubscription = new ServiceSubscription();
226 serviceSubscription.setServiceType("subscriptionServiceType");
228 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
229 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
231 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
233 assertThat(actual, sameBeanAs(expected));
235 requestDetails.setSubscriberInfo(null);
238 assertThat(actual, sameBeanAs(expected));
243 public void testSetHomingFlag() throws JsonParseException, JsonMappingException, IOException {
244 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
245 GeneralBuildingBlock.class);
246 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
247 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
248 GenericVnf genericVnfExpected = new GenericVnf();
249 genericVnfExpected.setVnfId("vnfId");
250 genericVnfExpected.setCallHoming(true);
251 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
252 boolean homing = true;
253 GenericVnf genericVnfActual = new GenericVnf();
254 genericVnfActual.setVnfId("vnfId");
255 genericVnfActual.setCallHoming(false);
256 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
257 GeneralBuildingBlock.class);
258 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
260 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
261 assertThat(actual, sameBeanAs(expected));
265 public void testGetExecuteBBFromExecution() throws IOException {
266 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
267 BuildingBlock bb = new BuildingBlock();
268 bb.setBpmnFlowName("AssignServiceInstanceBB");
269 expected.setBuildingBlock(bb);
270 expected.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
271 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
272 doReturn(expected).when(execution).getVariable(any(String.class));
273 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
274 assertThat(actual, sameBeanAs(expected));
278 public void testGetGBB() throws Exception {
279 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
280 GeneralBuildingBlock.class);
282 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
283 executeBB.setRequestId("requestId");
284 RequestDetails requestDetails = new RequestDetails();
285 ModelInfo modelInfo = new ModelInfo();
286 modelInfo.setModelType(ModelType.service);
287 requestDetails.setModelInfo(modelInfo);
288 RequestParameters requestParams = new RequestParameters();
289 requestParams.setaLaCarte(true);
290 requestDetails.setRequestParameters(requestParams);
291 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
292 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
293 String resourceId = "123";
294 String requestAction = "createInstance";
295 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
296 requestAction, resourceId);
297 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),lookupKeyMap);
298 boolean aLaCarte = true;
299 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte,
302 assertThat(actual, sameBeanAs(expected));
306 public void testGetGBBCM() throws Exception {
307 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"),
308 GeneralBuildingBlock.class);
310 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
311 executeBB.setRequestId("requestId");
312 RequestDetails requestDetails = new RequestDetails();
313 requestDetails.setModelInfo(null);
314 RequestParameters requestParams = new RequestParameters();
315 requestParams.setaLaCarte(true);
316 requestDetails.setRequestParameters(requestParams);
317 RequestInfo requestInfo = new RequestInfo();
318 requestInfo.setSuppressRollback(true);
319 requestDetails.setRequestInfo(requestInfo);
320 CloudConfiguration cloudConfiguration = new CloudConfiguration();
321 cloudConfiguration.setLcpCloudRegionId("myRegionId");
322 requestDetails.setCloudConfiguration(cloudConfiguration);
323 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
324 String resourceId = "123";
325 String requestAction = "createInstance";
327 doReturn(null).when(bbInputSetupMapperLayer).mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isNull());
328 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction,
331 assertThat(actual, sameBeanAs(expected));
335 public void testGetGBBALaCarteNonService() throws Exception {
336 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
337 GeneralBuildingBlock.class);
338 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
339 ExecuteBuildingBlock.class);
340 RequestDetails requestDetails = mapper.readValue(
341 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
342 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
343 String requestAction = "createInstance";
344 Service service = Mockito.mock(Service.class);
345 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
346 String resourceId = "123";
347 String vnfType = "vnfType";
348 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
349 aaiServiceInstance.setModelVersionId("modelVersionId");
350 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
351 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
352 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
353 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
355 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
356 serviceInstance, lookupKeyMap, resourceId, vnfType);
357 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
358 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
359 executeBB, requestAction, null);
361 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
362 requestAction, resourceId, vnfType);
364 assertThat(actual, sameBeanAs(expected));
367 @Test(expected = Exception.class)
368 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
369 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
370 ExecuteBuildingBlock.class);
371 RequestDetails requestDetails = mapper.readValue(
372 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
373 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
374 String requestAction = "createInstance";
375 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
376 aaiServiceInstance.setModelVersionId("modelVersionId");
377 String resourceId = "123";
378 String vnfType = "vnfType";
380 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
385 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
386 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
387 GeneralBuildingBlock.class);
388 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
389 ExecuteBuildingBlock.class);
390 RequestDetails requestDetails = mapper.readValue(
391 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
392 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
393 String requestAction = "createInstance";
394 Service service = Mockito.mock(Service.class);
395 String resourceId = "123";
396 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
397 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
398 aaiServiceInstance.setModelVersionId("modelVersionId");
399 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
400 String vnfType = "vnfType";
401 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
402 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
403 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
405 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
406 serviceInstance, lookupKeyMap, resourceId, vnfType);
408 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
409 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
410 executeBB, requestAction,null);
412 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
413 requestAction, resourceId, vnfType);
415 assertThat(actual, sameBeanAs(expected));
419 public void testGetGBBALaCarteService() throws Exception {
420 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
421 GeneralBuildingBlock.class);
422 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
423 ExecuteBuildingBlock.class);
424 RequestDetails requestDetails = mapper.readValue(
425 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
426 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
428 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
429 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
430 requestDetails.setProject(requestProject);
431 requestDetails.setOwningEntity(requestOwningEntity);
433 Service service = Mockito.mock(Service.class);
434 Customer customer = Mockito.mock(Customer.class);
435 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
436 Project project = Mockito.mock(Project.class);
437 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
438 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
439 String resourceId = "123";
440 String requestAction = "createInstance";
441 executeBB.setaLaCarte(true);
442 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
443 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
445 doReturn(service).when(SPY_bbInputSetupUtils)
446 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
447 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
448 doReturn(owningEntity).when(bbInputSetupMapperLayer)
449 .mapRequestOwningEntity(requestDetails.getOwningEntity());
451 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
452 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
453 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
454 executeBB.getBuildingBlock().getBpmnFlowName());
455 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
456 executeBB, requestAction, customer);
458 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
459 requestAction, resourceId);
461 assertThat(actual, sameBeanAs(expected));
465 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
466 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
467 GeneralBuildingBlock.class);
468 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
469 ExecuteBuildingBlock.class);
470 RequestDetails requestDetails = mapper.readValue(
471 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
472 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
474 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
475 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
476 requestDetails.setProject(requestProject);
477 requestDetails.setOwningEntity(requestOwningEntity);
479 Service service = Mockito.mock(Service.class);
480 Customer customer = Mockito.mock(Customer.class);
481 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
482 Project project = Mockito.mock(Project.class);
483 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
484 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
485 String resourceId = "123";
486 String requestAction = "createInstance";
487 executeBB.setaLaCarte(true);
488 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
489 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
491 doReturn(null).when(SPY_bbInputSetupUtils)
492 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
493 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
494 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
495 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
496 doReturn(owningEntity).when(bbInputSetupMapperLayer)
497 .mapRequestOwningEntity(requestDetails.getOwningEntity());
499 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
500 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
501 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
502 executeBB.getBuildingBlock().getBpmnFlowName());
503 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
504 executeBB, requestAction,customer);
506 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
507 requestAction, resourceId);
509 assertThat(actual, sameBeanAs(expected));
513 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
514 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
515 GeneralBuildingBlock.class);
516 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
517 ExecuteBuildingBlock.class);
518 RequestDetails requestDetails = mapper.readValue(
519 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
520 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
522 Service service = Mockito.mock(Service.class);
523 Customer customer = Mockito.mock(Customer.class);
524 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
525 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
526 String resourceId = "123";
527 String requestAction = "createInstance";
528 executeBB.setaLaCarte(true);
529 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
530 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
532 Map<String, String> uriKeys = new HashMap<>();
533 uriKeys.put("global-customer-id", "globalCustomerId");
534 uriKeys.put("service-type", "serviceType");
536 doReturn(service).when(SPY_bbInputSetupUtils)
537 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
539 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
541 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
542 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
543 executeBB.getBuildingBlock().getBpmnFlowName());
544 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
545 executeBB, requestAction,customer);
547 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
548 requestAction, resourceId);
550 assertThat(actual, sameBeanAs(expected));
554 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
555 RequestDetails requestDetails = new RequestDetails();
556 RequestInfo requestInfo = new RequestInfo();
557 requestInfo.setInstanceName("SharansInstanceName");
558 requestDetails.setRequestInfo(requestInfo);
559 Customer customer = new Customer();
560 String serviceInstanceId = "SharansInstanceId";
561 boolean aLaCarte = true;
562 ServiceInstance expected = new ServiceInstance();
563 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
564 Service service = new Service();
565 service.setModelUUID("modelUUID");
566 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
568 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
569 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
572 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
573 lookupKeyMap, serviceInstanceId);
575 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
576 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
577 assertThat(actual, sameBeanAs(expected));
581 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
582 RequestDetails requestDetails = new RequestDetails();
583 RequestInfo requestInfo = new RequestInfo();
584 requestInfo.setInstanceName("SharansInstanceName");
585 requestDetails.setRequestInfo(requestInfo);
586 Customer customer = new Customer();
587 String serviceInstanceId = "SharansInstanceId";
588 boolean aLaCarte = true;
589 Service service = new Service();
590 service.setModelUUID("modelUUID");
591 ServiceInstance expected = new ServiceInstance();
592 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
593 serviceInstanceAAI.setModelVersionId("modelUUID");
594 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
595 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
597 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
598 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
599 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
601 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
602 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
603 assertThat(actual, sameBeanAs(expected));
607 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
608 RequestDetails requestDetails = new RequestDetails();
609 RequestInfo requestInfo = new RequestInfo();
610 requestInfo.setInstanceName("SharansInstanceName");
611 requestDetails.setRequestInfo(requestInfo);
612 Customer customer = new Customer();
613 String serviceInstanceId = "SharansInstanceId";
614 boolean aLaCarte = true;
615 Service service = new Service();
616 service.setModelUUID("modelUUID");
617 ServiceInstance expected = new ServiceInstance();
618 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
619 serviceInstanceAAI.setModelVersionId("modelUUID");
620 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
621 String bbName = "ActivateServiceInstanceBB";
623 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
624 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
626 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
627 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
628 assertThat(actual, sameBeanAs(expected));
632 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
633 RequestDetails requestDetails = new RequestDetails();
634 RequestInfo requestInfo = new RequestInfo();
635 requestDetails.setRequestInfo(requestInfo);
636 Customer customer = new Customer();
637 String serviceInstanceId = "SharansInstanceId";
638 boolean aLaCarte = true;
639 Service service = new Service();
640 service.setModelUUID("modelUUID");
641 ServiceInstance expected = new ServiceInstance();
642 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
643 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
644 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
645 String bbName = "ActivateServiceInstanceBB";
646 Service differentService = new Service();
647 differentService.setModelUUID("modelUUIDDifferent");
649 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
652 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
653 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
654 assertThat(actual, sameBeanAs(expected));
657 @Test(expected = Exception.class)
658 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
659 RequestDetails requestDetails = new RequestDetails();
660 RequestInfo requestInfo = new RequestInfo();
661 requestDetails.setRequestInfo(requestInfo);
662 Customer customer = new Customer();
663 String serviceInstanceId = "SharansInstanceId";
664 boolean aLaCarte = true;
665 Service service = new Service();
666 service.setModelUUID("modelUUID");
667 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
668 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
669 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
670 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
672 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
673 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
677 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
678 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
679 String instanceName = "instanceName";
680 String vnfType = "vnfType";
681 String resourceId = "networkId";
682 Service service = Mockito.mock(Service.class);
683 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
684 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
685 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
686 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
687 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
688 CloudConfiguration cloudConfiguration = new CloudConfiguration();
689 org.onap.so.serviceinstancebeans.Platform platform = Mockito
690 .mock(org.onap.so.serviceinstancebeans.Platform.class);
691 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
692 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
693 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
695 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
696 lookupKeyMap, resourceId, null);
697 doReturn(modelInfo).when(requestDetails).getModelInfo();
698 doReturn(requestInfo).when(requestDetails).getRequestInfo();
699 doReturn(instanceName).when(requestInfo).getInstanceName();
700 doReturn(platform).when(requestDetails).getPlatform();
701 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
702 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
703 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
705 doReturn(ModelType.network).when(modelInfo).getModelType();
706 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
707 lookupKeyMap, resourceId, vnfType);
708 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
709 lookupKeyMap, resourceId, null);
710 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
712 doReturn(ModelType.vnf).when(modelInfo).getModelType();
713 resourceId = "vnfId";
714 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
715 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
716 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
717 lookupKeyMap, resourceId, vnfType);
718 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
719 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
720 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
722 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
723 resourceId = "volumeGroupId";
724 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
725 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
726 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
727 lookupKeyMap, resourceId, vnfType);
728 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
729 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
730 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
732 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
733 resourceId = "vfModuleId";
734 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
735 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
736 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
737 lookupKeyMap, resourceId, vnfType);
738 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
739 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
740 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
744 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
745 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
746 GeneralBuildingBlock.class);
747 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
748 ExecuteBuildingBlock.class);
749 RequestDetails requestDetails = mapper.readValue(
750 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
751 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
752 RequestContext.class);
753 ServiceInstance serviceInstance = mapper.readValue(
754 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
755 ServiceInstance.class);
757 OrchestrationContext orchestrationContext = new OrchestrationContext();
758 orchestrationContext.setIsRollbackEnabled(false);
760 CloudRegion cloudRegion = new CloudRegion();
761 cloudRegion.setCloudOwner("test-owner-name");
762 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
763 cloudRegion.setComplex("complexName");
764 cloudRegion.setTenantId("tenantId");
766 Map<String, String> uriKeys = new HashMap<>();
767 uriKeys.put("global-customer-id","global-customer-id");
768 uriKeys.put("service-type","service-type");
770 Customer customer = new Customer();
771 ServiceSubscription serviceSubscription = new ServiceSubscription();
772 serviceSubscription.setServiceType("subscriptionServiceType");
773 customer.setGlobalCustomerId("globalCustomerId");
774 customer.setSubscriberName("subscriberName");
775 customer.setSubscriberType("subscriberType");
776 customer.setServiceSubscription(serviceSubscription);
778 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
780 String requestAction = "createInstance";
782 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
783 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
784 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
785 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
786 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
787 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion);
789 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
790 serviceInstance, executeBB, requestAction, null);
792 assertThat(actual, sameBeanAs(expected));
796 public void testGetServiceInstanceNOAAI() throws Exception {
797 ServiceInstance expected = mapper.readValue(
798 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
799 ServiceInstance.class);
800 Service service = mapper.readValue(
801 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
802 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
803 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
804 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
805 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
807 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
808 executeBB.setaLaCarte(true);
809 BuildingBlock buildingBlock = new BuildingBlock();
810 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
811 executeBB.setBuildingBlock(buildingBlock);
812 RequestDetails requestDetails = new RequestDetails();
813 RequestInfo reqInfo = new RequestInfo();
814 reqInfo.setInstanceName("serviceInstanceName");
815 requestDetails.setRequestInfo(reqInfo);
816 ModelInfo modelInfo = new ModelInfo();
817 modelInfo.setModelType(ModelType.service);
818 requestDetails.setModelInfo(modelInfo);
819 doReturn(null).when(SPY_bbInputSetupUtils)
820 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
821 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
822 .mapCatalogServiceIntoServiceInstance(service);
823 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
824 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
825 boolean aLaCarte = true;
827 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
828 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
829 executeBB.getBuildingBlock().getBpmnFlowName());
831 assertThat(actual, sameBeanAs(expected));
835 public void testGetServiceSubscription() throws IOException {
836 ServiceSubscription expected = new ServiceSubscription();
837 RequestDetails requestDetails = new RequestDetails();
838 RequestParameters params = new RequestParameters();
839 params.setSubscriptionServiceType("subscriptionServiceType");
840 requestDetails.setRequestParameters(params);
841 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
842 Customer customer = new Customer();
843 customer.setGlobalCustomerId("globalCustomerId");
844 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
845 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
846 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
848 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
849 assertThat(actual, sameBeanAs(expected));
853 public void testGetCustomer() throws IOException {
854 Customer expected = new Customer();
855 RequestDetails requestDetails = new RequestDetails();
856 SubscriberInfo subscriberInfo = new SubscriberInfo();
857 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
858 requestDetails.setSubscriberInfo(subscriberInfo);
859 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
860 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
861 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
862 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
864 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
865 assertThat(actual, sameBeanAs(expected));
869 public void testGetExistingServiceInstance() throws Exception {
870 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
871 ServiceInstance expected = new ServiceInstance();
873 doReturn(expected).when(bbInputSetupMapperLayer)
874 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
877 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
878 assertThat(actual, sameBeanAs(expected));
882 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
883 Service service = Mockito.mock(Service.class);
884 String key = "collectionCustId";
885 ServiceInstance serviceInstance = mapper.readValue(
886 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
887 ServiceInstance.class);
888 String resourceId = "123";
889 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
890 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
891 assertNull(serviceInstance.getCollection());
892 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
893 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
894 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
895 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
897 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
898 networkCollection.setModelCustomizationUUID(key);
899 networkCollection.setCollectionResource(new CollectionResource());
900 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
901 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
902 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
903 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
904 List<CollectionResourceCustomization> customizations = new ArrayList<>();
905 customizations.add(networkCollection);
906 doReturn(customizations).when(service).getCollectionResourceCustomizations();
908 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
909 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
911 assertNotNull(serviceInstance.getCollection());
912 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
914 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
915 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
916 serviceInstance.getCollection().getInstanceGroup(), key);
920 public void testIsVlanTagging() throws Exception {
921 boolean expected = true;
922 Service service = Mockito.mock(Service.class);
923 String key = "collectionCustId";
924 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
925 networkCollection.setModelCustomizationUUID(key);
926 networkCollection.setCollectionResource(new CollectionResource());
927 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
928 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
929 List<CollectionResourceCustomization> customizations = new ArrayList<>();
930 customizations.add(networkCollection);
931 doReturn(customizations).when(service).getCollectionResourceCustomizations();
932 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
933 assertEquals("Is Vlan Tagging check.", expected, actual);
937 public void testPopulateVolumeGroup() throws Exception {
938 RequestDetails requestDetails = new RequestDetails();
939 RelatedInstanceList ril = new RelatedInstanceList();
940 RelatedInstance ri = new RelatedInstance();
941 ModelInfo mi = new ModelInfo();
942 mi.setModelType(ModelType.vnf);
943 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
945 ril.setRelatedInstance(ri);
946 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
948 ModelInfo modelInfo = new ModelInfo();
949 modelInfo.setModelType(ModelType.volumeGroup);
951 RequestInfo reqInfo = new RequestInfo();
952 reqInfo.setInstanceName("volumeGroupName");
953 requestDetails.setModelInfo(modelInfo);
954 requestDetails.setRequestInfo(reqInfo);
956 ServiceInstance serviceInstance = new ServiceInstance();
957 GenericVnf vnf = new GenericVnf();
958 vnf.setVnfId("genericVnfId");
960 VolumeGroup vg = new VolumeGroup();
961 vg.setVolumeGroupName("volumeGroupName");
962 vg.setVolumeGroupId("volumeGroupId");
963 vnf.getVolumeGroups().add(vg);
964 serviceInstance.getVnfs().add(vnf);
966 Service service = mapper.readValue(
967 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
968 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
969 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
971 String bbName = AssignFlows.VOLUME_GROUP.toString();
972 String resourceId = "123";
973 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
974 eq(service), eq("vnfModelCustomizationUUID"));
975 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
976 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
977 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
979 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
980 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
981 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
982 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
983 vnf.getVolumeGroups().clear();
984 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
985 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
986 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
987 "vnfModelCustomizationUUID");
991 public void testMapCatalogVolumeGroup() {
992 VolumeGroup volumeGroup = new VolumeGroup();
993 RequestDetails requestDetails = new RequestDetails();
994 ModelInfo modelInfo = new ModelInfo();
995 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
996 requestDetails.setModelInfo(modelInfo);
997 Service service = new Service();
998 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
999 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1000 service.getVnfCustomizations().add(resourceCust);
1001 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1002 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1003 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1004 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1006 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1008 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1010 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1014 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1015 String instanceName = "networkName";
1016 ModelInfo modelInfo = new ModelInfo();
1017 modelInfo.setModelType(ModelType.network);
1019 ServiceInstance serviceInstance = new ServiceInstance();
1020 L3Network network = new L3Network();
1021 network.setNetworkId("networkId");
1022 network.setNetworkName("networkName");
1023 serviceInstance.getNetworks().add(network);
1024 String resourceId = "123";
1026 Service service = mapper.readValue(
1027 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1028 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1029 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1030 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1032 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1034 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1037 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1039 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1041 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1043 instanceName = "networkName2";
1044 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1045 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1047 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1051 public void testMapCatalogNetwork() {
1052 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1053 L3Network network = new L3Network();
1055 RequestDetails requestDetails = new RequestDetails();
1056 ModelInfo modelInfo = new ModelInfo();
1057 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1058 requestDetails.setModelInfo(modelInfo);
1059 Service service = new Service();
1060 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1061 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1062 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1064 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1066 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1068 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1072 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1073 String instanceName = "configurationName";
1074 ModelInfo modelInfo = new ModelInfo();
1075 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1077 ServiceInstance serviceInstance = new ServiceInstance();
1078 Configuration configuration = new Configuration();
1079 configuration.setConfigurationId("configurationId");
1080 configuration.setConfigurationName("configurationName");
1081 serviceInstance.getConfigurations().add(configuration);
1082 String resourceId = "configurationId";
1084 Service service = mapper.readValue(
1085 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1086 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1087 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1088 service.getConfigurationCustomizations().add(configurationCust);
1089 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1090 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1091 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1092 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1093 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1094 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1095 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1097 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1099 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1100 instanceName, configResourceKeys);
1101 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1103 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1105 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1106 instanceName, configResourceKeys);
1107 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1109 instanceName = "configurationName2";
1110 resourceId = "resourceId2";
1111 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1112 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1113 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1114 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1115 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1116 instanceName, configResourceKeys);
1117 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1121 public void testMapCatalogConfiguration() {
1122 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1123 L3Network network = new L3Network();
1125 RequestDetails requestDetails = new RequestDetails();
1126 ModelInfo modelInfo = new ModelInfo();
1127 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1128 requestDetails.setModelInfo(modelInfo);
1129 Service service = new Service();
1130 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1131 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1132 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1134 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1136 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1138 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1142 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1143 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1144 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1145 String instanceName = "vnfName";
1146 ModelInfo modelInfo = new ModelInfo();
1147 modelInfo.setModelType(ModelType.vnf);
1149 ServiceInstance serviceInstance = new ServiceInstance();
1150 GenericVnf vnf = new GenericVnf();
1151 vnf.setVnfId("genericVnfId");
1152 vnf.setVnfName("vnfName");
1153 serviceInstance.getVnfs().add(vnf);
1154 String vnfType = "vnfType";
1155 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1156 RequestDetails.class);
1158 Service service = mapper.readValue(
1159 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1160 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1161 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1162 String bbName = AssignFlows.VNF.toString();
1164 Platform expectedPlatform = new Platform();
1165 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1166 String resourceId = "123";
1167 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1168 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1169 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1170 vnfAAI.setModelCustomizationId("modelCustId");
1171 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1172 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1173 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1174 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1175 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1176 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1178 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1179 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1181 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1183 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1184 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1185 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1187 instanceName = "vnfName2";
1188 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1189 resourceId, vnfType, null);
1190 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1191 resourceId, vnfType, null);
1192 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1193 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1195 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1197 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1198 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1199 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1200 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1201 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1205 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1206 throws JsonParseException, JsonMappingException, IOException {
1207 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1208 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1209 String instanceName = "vnfName";
1210 ModelInfo modelInfo = new ModelInfo();
1211 modelInfo.setModelType(ModelType.vnf);
1213 ServiceInstance serviceInstance = new ServiceInstance();
1214 GenericVnf vnf = new GenericVnf();
1215 vnf.setVnfId("genericVnfId");
1216 vnf.setVnfName("vnfName");
1217 serviceInstance.getVnfs().add(vnf);
1218 String vnfType = null;
1219 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1220 RequestDetails.class);
1222 Service service = mapper.readValue(
1223 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1224 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1225 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1226 String bbName = AssignFlows.VNF.toString();
1228 Platform expectedPlatform = new Platform();
1229 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1230 String resourceId = "123";
1231 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1232 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1233 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1234 vnfAAI.setModelCustomizationId("modelCustId");
1235 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1236 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1237 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1238 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1239 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1240 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1242 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1243 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1245 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1247 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1248 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1249 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1251 instanceName = "vnfName2";
1252 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1253 resourceId, vnfType, null);
1255 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1256 vnfAAI.setModelCustomizationId("modelCustId2");
1257 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1258 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1259 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1260 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1261 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1262 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1263 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1264 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1265 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1269 public void testMapCatalogVnf() {
1270 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1271 GenericVnf genericVnf = new GenericVnf();
1272 RequestDetails requestDetails = new RequestDetails();
1273 ModelInfo modelInfo = new ModelInfo();
1274 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1275 requestDetails.setModelInfo(modelInfo);
1276 Service service = new Service();
1277 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1278 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1279 service.getVnfCustomizations().add(resourceCust);
1280 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1282 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1284 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1286 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1290 public void testMapCatalogCollectionAndInstanceGroup() {
1291 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1292 modelInfoCollection.setCollectionFunction("collectionFunction");
1293 modelInfoCollection.setCollectionRole("collectionRole");
1294 modelInfoCollection.setCollectionType("collectionType");
1295 modelInfoCollection.setDescription("description");
1296 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1297 modelInfoCollection.setQuantity(0);
1299 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1300 modelInfoInstanceGroup.setFunction("function");
1301 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1302 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1303 modelInfoInstanceGroup.setModelUUID("modelUUID");
1304 modelInfoInstanceGroup.setType("VNFC");
1305 modelInfoInstanceGroup.setDescription("description");
1307 InstanceGroup instanceGroup = new InstanceGroup();
1308 Collection collection = new Collection();
1309 collection.setInstanceGroup(instanceGroup);
1311 CollectionResource collectionResource = new CollectionResource();
1312 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1313 collectionResource.setToscaNodeType("NetworkCollection");
1314 collectionResource.setInstanceGroup(catalogInstanceGroup);
1316 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1317 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1318 collectionCust.setCollectionResource(collectionResource);
1320 Service service = new Service();
1321 service.getCollectionResourceCustomizations().add(collectionCust);
1322 ServiceInstance serviceInstance = new ServiceInstance();
1323 serviceInstance.setCollection(collection);
1325 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1326 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1327 instanceGroupCust.setFunction("function");
1328 instanceGroupCust.setDescription("description");
1330 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1331 collectionResource);
1333 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1334 catalogInstanceGroup);
1336 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1337 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1338 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1340 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1341 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1345 public void testAddRelationshipsToSI() throws Exception {
1346 ServiceInstance serviceInstance = new ServiceInstance();
1347 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1348 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1350 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1351 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1352 relationshipList.getRelationship().add(relationship);
1353 serviceInstanceAAI.setRelationshipList(relationshipList);
1355 Map<String, String> uriKeys = new HashMap<>();
1356 uriKeys.put("global-customer-id", "globalCustomerId");
1357 uriKeys.put("service-type", "serviceType");
1360 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1361 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1362 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1363 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1364 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1366 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1368 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1369 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1370 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1371 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1372 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1373 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1377 public void testMapConfigurations() throws JsonProcessingException {
1378 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1379 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1380 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1381 relationshipList.getRelationship().add(relationship);
1382 expectedAAI.setRelationshipList(relationshipList);
1384 Configuration expected = new Configuration();
1385 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1386 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1387 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1389 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1390 doReturn(expected).when(bbInputSetupMapperLayer)
1391 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1393 List<Configuration> configurations = new ArrayList<>();
1395 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1397 assertEquals(expected, configurations.get(0));
1401 public void testMapGenericVnfs() throws JsonProcessingException {
1402 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1403 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1404 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1405 relationshipList.getRelationship().add(relationship);
1406 expectedAAI.setRelationshipList(relationshipList);
1408 GenericVnf expected = new GenericVnf();
1409 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1410 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1411 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1413 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1414 doReturn(expected).when(bbInputSetupMapperLayer)
1415 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1416 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1417 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1418 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1420 List<GenericVnf> genericVnfs = new ArrayList<>();
1422 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1424 assertEquals(expected, genericVnfs.get(0));
1425 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1426 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1427 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1431 public void testMapVolumeGroups() throws JsonProcessingException {
1432 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1434 VolumeGroup expected = new VolumeGroup();
1435 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1436 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1438 doReturn(expected).when(bbInputSetupMapperLayer)
1439 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1441 List<VolumeGroup> volumeGroupsList =
1442 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1444 assertEquals(expected, volumeGroupsList.get(0));
1448 public void testMapLineOfBusiness() throws JsonProcessingException {
1449 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1451 LineOfBusiness expected = new LineOfBusiness();
1452 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1453 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1455 doReturn(expected).when(bbInputSetupMapperLayer)
1456 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1458 GenericVnf vnf = new GenericVnf();
1460 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1462 assertEquals(expected, vnf.getLineOfBusiness());
1466 public void testMapPlatform() throws JsonProcessingException {
1467 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1469 Platform expected = new Platform();
1470 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1471 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1473 doReturn(expected).when(bbInputSetupMapperLayer)
1474 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1476 GenericVnf vnf = new GenericVnf();
1478 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1480 assertEquals(expected, vnf.getPlatform());
1484 public void testMapCollection() throws JsonProcessingException {
1485 List<AAIResultWrapper> collections = new ArrayList<>();
1486 ServiceInstance serviceInstance = new ServiceInstance();
1488 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1489 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1490 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1491 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1492 aaiCollection.setRelationshipList(collectionRelationshipList);
1494 collections.add(new AAIResultWrapper(
1495 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1497 Collection collection = new Collection();
1498 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1499 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1500 InstanceGroup instanceGroup = new InstanceGroup();
1501 instanceGroupsList.add(instanceGroup);
1502 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1503 CollectionResource collectionResource = new CollectionResource();
1504 doReturn(collection).when(bbInputSetupMapperLayer)
1505 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1506 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1507 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1508 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1509 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1511 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1513 assertEquals(collection, serviceInstance.getCollection());
1514 assertEquals(instanceGroup, collection.getInstanceGroup());
1516 instanceGroupsList.clear();
1517 collection = new Collection();
1519 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1520 assertEquals(collection, serviceInstance.getCollection());
1521 assertNull(collection.getInstanceGroup());
1525 public void testMapL3Networks() throws JsonProcessingException {
1526 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1527 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1528 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1529 relationshipList.getRelationship().add(relationship);
1530 expectedAAI.setRelationshipList(relationshipList);
1532 L3Network expected = new L3Network();
1533 List<L3Network> l3Networks = new ArrayList<>();
1534 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1535 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1536 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1538 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1539 doReturn(expected).when(bbInputSetupMapperLayer)
1540 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1541 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1542 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1543 eq(expected.getContrailNetworkRouteTableReferences()));
1545 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1547 assertEquals(expected, l3Networks.get(0));
1548 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1549 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1550 eq(expected.getContrailNetworkRouteTableReferences()));
1554 public void testMapRouteTableReferences() throws JsonProcessingException {
1555 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1557 RouteTableReference expected = new RouteTableReference();
1558 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1559 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1560 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1562 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1563 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1565 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1566 contrailNetworkRouteTableReferences);
1568 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1572 public void testMapOwningEntity() throws JsonProcessingException {
1573 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1575 OwningEntity expected = new OwningEntity();
1576 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1577 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1579 doReturn(expected).when(bbInputSetupMapperLayer)
1580 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1582 ServiceInstance serviceInstance = new ServiceInstance();
1584 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1586 assertEquals(expected, serviceInstance.getOwningEntity());
1590 public void testMapProject() throws JsonProcessingException {
1591 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1593 Project expected = new Project();
1594 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1595 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1597 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1599 ServiceInstance serviceInstance = new ServiceInstance();
1601 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1603 assertEquals(expected, serviceInstance.getProject());
1607 public void testMapCustomer() throws Exception {
1608 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1609 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1611 Customer expected = new Customer();
1612 ServiceSubscription serviceSubscription = new ServiceSubscription();
1614 String globalCustomerId = "globalCustomerId";
1615 String subscriptionServiceType = "subscriptionServiceType";
1617 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1618 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1619 subscriptionServiceType);
1620 doReturn(expected).when(bbInputSetupMapperLayer)
1621 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1622 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1623 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1625 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1627 assertEquals(expected, actual);
1628 assertEquals(serviceSubscription, expected.getServiceSubscription());
1632 public void testPopulateLookupKeyMapWithIds() {
1633 Map<ResourceKey, String> expected = new HashMap<>();
1634 Map<ResourceKey, String> actual = new HashMap<>();
1635 String serviceInstanceId = "serviceInstanceId";
1636 String networkId = "networkId";
1637 String vnfId = "vnfId";
1638 String vfModuleId = "vfModuleId";
1639 String volumeGroupId = "volumeGroupId";
1640 String configurationId = "configurationId";
1642 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1643 expected.put(ResourceKey.NETWORK_ID, networkId);
1644 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1645 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1646 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1647 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1649 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1650 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1651 workflowResourceIds.setNetworkId(networkId);
1652 workflowResourceIds.setVnfId(vnfId);
1653 workflowResourceIds.setVfModuleId(vfModuleId);
1654 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1655 workflowResourceIds.setConfigurationId(configurationId);
1657 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1659 assertThat(actual, sameBeanAs(expected));
1663 public void testgetGBBMacro() throws Exception {
1664 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1665 GeneralBuildingBlock.class);
1666 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1667 ExecuteBuildingBlock.class);
1668 RequestDetails requestDetails = mapper
1669 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1670 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1671 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1672 aaiVnf.setModelCustomizationId("modelCustId");
1673 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1674 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1675 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1676 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1677 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1678 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1679 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1680 String resourceId = "123";
1681 String vnfType = "vnfType";
1682 Service service = Mockito.mock(Service.class);
1683 String requestAction = "createInstance";
1685 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1686 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1687 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1688 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1689 executeBB.setConfigurationResourceKeys(configResourceKeys);
1690 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1691 requestAction, resourceId);
1692 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1693 doReturn(service).when(SPY_bbInputSetupUtils)
1694 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1695 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1696 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1697 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1698 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1700 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1701 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1702 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1703 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1704 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1706 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1707 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1708 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1709 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1710 isA(org.onap.so.serviceinstancebeans.Platform.class),
1711 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1712 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1714 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1715 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1716 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1717 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1718 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1719 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1721 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1722 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1723 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1724 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1725 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1726 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(),ArgumentMatchers.isNull(),
1727 any(String.class), any());
1729 Configuration configuration = new Configuration();
1730 configuration.setConfigurationId("configurationId");
1731 gBB.getServiceInstance().getConfigurations().add(configuration);
1732 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1733 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1734 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1735 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1736 configurationCustList.add(configurationCust);
1737 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1738 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1740 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1741 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1742 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1743 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1744 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1748 public void testgetGBBMacroCloudConfiguration() throws Exception {
1749 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1750 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1751 CloudConfiguration cloudConfig = null;
1752 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1753 aaiCloudRegion.setCloudOwner("test-owner-name");
1754 Resources resources = serviceMacro.getResources();
1755 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
1756 CloudRegion expected = new CloudRegion();
1757 expected.setLcpCloudRegionId("mdt1");
1758 expected.setCloudOwner("test-owner-name");
1759 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1761 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1762 assertThat(actual, sameBeanAs(expected));
1764 serviceMacro = mapper.readValue(
1765 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1766 resources = serviceMacro.getResources();
1768 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1769 assertThat(actual, sameBeanAs(expected));
1771 serviceMacro = mapper.readValue(
1772 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1773 resources = serviceMacro.getResources();
1775 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1776 assertThat(actual, sameBeanAs(expected));
1778 serviceMacro = mapper.readValue(
1779 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1780 resources = serviceMacro.getResources();
1782 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1787 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1788 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1789 GeneralBuildingBlock.class);
1790 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1791 ExecuteBuildingBlock.class);
1792 RequestDetails requestDetails = mapper
1793 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1794 requestDetails.getRequestParameters().getUserParams().clear();
1795 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1796 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1797 aaiVnf.setModelCustomizationId("modelCustId");
1798 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1799 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1800 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1801 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1802 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1803 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1804 String resourceId = "123";
1805 String vnfType = "vnfType";
1806 Service service = Mockito.mock(Service.class);
1807 String requestAction = "createInstance";
1808 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1809 requestAction, resourceId);
1810 doReturn(service).when(SPY_bbInputSetupUtils)
1811 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1813 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1814 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1815 executeBB.getBuildingBlock().setIsVirtualLink(Boolean.FALSE);
1816 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1817 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1818 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1821 @Test(expected = Exception.class)
1822 public void testgetGBBMacroException() throws Exception {
1823 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1824 GeneralBuildingBlock.class);
1825 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1826 ExecuteBuildingBlock.class);
1827 RequestDetails requestDetails = mapper
1828 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1829 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1830 String resourceId = "123";
1831 String vnfType = "vnfType";
1832 Service service = Mockito.mock(Service.class);
1833 String requestAction = "createInstance";
1834 doReturn(null).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1835 requestAction, resourceId);
1837 executeBB.getBuildingBlock().setBpmnFlowName("Network");
1838 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1839 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1843 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
1844 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1845 GeneralBuildingBlock.class);
1846 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1847 ExecuteBuildingBlock.class);
1848 RequestDetails requestDetails = mapper
1849 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1850 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1851 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1852 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1853 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1854 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1855 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1856 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1857 aaiVnf.setModelCustomizationId("modelCustId");
1858 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1859 String resourceId = "123";
1860 String vnfType = null;
1861 Service service = Mockito.mock(Service.class);
1862 String requestAction = "createInstance";
1863 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1864 requestAction, resourceId);
1865 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1866 doReturn(service).when(SPY_bbInputSetupUtils)
1867 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1868 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1869 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1870 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1871 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1873 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1874 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1875 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1876 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1877 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1879 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1880 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1881 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1882 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1883 isA(org.onap.so.serviceinstancebeans.Platform.class),
1884 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1885 isA(ServiceInstance.class), any(),ArgumentMatchers.isNull(), any(String.class), ArgumentMatchers.isNull(), any());
1887 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1888 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1889 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1890 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1891 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1892 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1894 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1895 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1896 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1897 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1898 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1899 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
1900 ArgumentMatchers.isNull(), any());
1904 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
1905 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1906 GeneralBuildingBlock.class);
1907 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1908 ExecuteBuildingBlock.class);
1909 RequestDetails requestDetails = mapper
1910 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1911 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1912 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1913 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1914 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1915 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1916 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1917 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1918 aaiVnf.setModelCustomizationId("modelCustId");
1919 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1920 String resourceId = "123";
1921 String vnfType = "vnfType";
1922 Service service = Mockito.mock(Service.class);
1923 String requestAction = "createInstance";
1924 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1925 requestAction, resourceId);
1926 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1927 doReturn(service).when(SPY_bbInputSetupUtils)
1928 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1929 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1930 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1931 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1932 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1934 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1935 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1936 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1937 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1938 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1940 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1941 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1942 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1943 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1944 isA(org.onap.so.serviceinstancebeans.Platform.class),
1945 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1946 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1948 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1949 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1950 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1951 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1952 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1953 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1955 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1956 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1957 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1958 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1959 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1960 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
1961 any(String.class), any());
1965 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
1966 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1967 GeneralBuildingBlock.class);
1968 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1969 ExecuteBuildingBlock.class);
1970 RequestDetails requestDetails = mapper
1971 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1972 requestDetails.getRequestParameters().setUserParams(null);
1973 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1974 aaiVnf.setModelCustomizationId("modelCustId");
1975 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1976 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1977 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1978 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1979 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1980 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1981 String resourceId = "123";
1982 String vnfType = "vnfType";
1983 Service service = Mockito.mock(Service.class);
1984 String requestAction = "deactivateInstance";
1985 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1986 requestAction, resourceId);
1987 doReturn(service).when(SPY_bbInputSetupUtils)
1988 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1989 String generatedId = "12131";
1991 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
1992 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
1993 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
1994 requestAction, resourceId, vnfType);
1995 assertThat(actual, sameBeanAs(gBB));
1999 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
2000 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2001 GeneralBuildingBlock.class);
2002 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2003 ExecuteBuildingBlock.class);
2004 RequestDetails requestDetails = mapper
2005 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2006 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2007 requestDetails.getRequestParameters().setUserParams(null);
2008 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2009 aaiVnf.setModelCustomizationId("modelCustId");
2010 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2011 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2012 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2013 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2014 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2015 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2016 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2018 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2019 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2020 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2021 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2022 executeBB.setConfigurationResourceKeys(configResourceKeys);
2024 String resourceId = "123";
2025 String vnfType = "vnfType";
2026 Service service = Mockito.mock(Service.class);
2027 String requestAction = "createInstance";
2028 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2029 requestAction, resourceId);
2031 doReturn(service).when(SPY_bbInputSetupUtils)
2032 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2033 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2034 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2035 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2036 networkCustList.add(networkCust);
2037 doReturn(networkCustList).when(service).getNetworkCustomizations();
2038 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2039 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2041 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2042 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2043 executeBB.getBuildingBlock().setIsVirtualLink(false);
2044 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2045 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2046 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2048 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2049 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2050 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2051 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2052 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2053 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2055 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2056 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2057 executeBB.getBuildingBlock().setIsVirtualLink(true);
2058 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2059 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2060 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2062 executeBB.getBuildingBlock().setBpmnFlowName("CreateNetworkBB");
2063 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2064 executeBB.getBuildingBlock().setIsVirtualLink(true);
2065 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2066 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2067 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2071 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2072 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2073 GeneralBuildingBlock.class);
2074 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2075 ExecuteBuildingBlock.class);
2076 RequestDetails requestDetails = mapper
2077 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2078 requestDetails.getRequestParameters().setUserParams(null);
2079 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2080 aaiVnf.setModelCustomizationId("modelCustId");
2081 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2082 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2083 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2084 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2085 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2086 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2087 String resourceId = "123";
2088 String vnfType = "vnfType";
2089 Service service = Mockito.mock(Service.class);
2090 String requestAction = "deleteInstance";
2091 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2092 requestAction, resourceId);
2093 doReturn(service).when(SPY_bbInputSetupUtils)
2094 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2095 //doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2097 CloudConfiguration cloudConfig = new CloudConfiguration();
2098 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2099 requestDetails.setCloudConfiguration(cloudConfig);
2100 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2101 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
2102 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2103 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2104 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2105 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2106 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2107 isA(CloudConfiguration.class));
2109 requestAction = "activateInstance";
2110 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2111 requestAction, resourceId);
2112 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2113 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2114 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2115 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2116 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2117 isA(CloudConfiguration.class));
2119 requestAction = "unassignInstance";
2120 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2121 requestAction, resourceId);
2122 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2123 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2124 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2125 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2126 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2127 isA(CloudConfiguration.class));
2129 requestAction = "activateFabricConfiguration";
2130 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2131 requestAction, resourceId);
2132 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2133 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2134 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2135 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2136 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2137 isA(CloudConfiguration.class));
2140 @Test(expected = IllegalArgumentException.class)
2141 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2142 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2143 GeneralBuildingBlock.class);
2144 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2145 ExecuteBuildingBlock.class);
2146 RequestDetails requestDetails = mapper
2147 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2148 requestDetails.getRequestParameters().setUserParams(null);
2149 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2150 aaiVnf.setModelCustomizationId("modelCustId");
2151 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2152 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2153 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2154 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2155 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2156 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2157 String resourceId = "123";
2158 String vnfType = "vnfType";
2159 Service service = Mockito.mock(Service.class);
2160 String requestAction = "assignInstance";
2161 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2162 requestAction, resourceId);
2163 doReturn(service).when(SPY_bbInputSetupUtils)
2164 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2165 String generatedId = "12131";
2167 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2168 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2171 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2172 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2173 GeneralBuildingBlock.class);
2174 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2175 ExecuteBuildingBlock.class);
2176 RequestDetails requestDetails = mapper
2177 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2178 requestDetails.getRequestParameters().setUserParams(null);
2179 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2180 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2181 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2182 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2183 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2184 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2185 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2186 Service service = Mockito.mock(Service.class);
2187 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2188 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2189 String requestAction = "unassignInstance";
2191 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2192 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2193 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2194 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2195 executeBB.setConfigurationResourceKeys(configResourceKeys);
2197 L3Network network = new L3Network();
2198 network.setNetworkId("networkId");
2199 gBB.getServiceInstance().getNetworks().add(network);
2200 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2201 aaiNetwork.setModelCustomizationId("modelCustId");
2202 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2203 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2204 any(Service.class));
2206 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2207 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2208 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2209 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2210 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2211 any(Service.class));
2213 GenericVnf vnf = new GenericVnf();
2214 vnf.setVnfId("vnfId");
2215 gBB.getServiceInstance().getVnfs().add(vnf);
2216 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2217 aaiVnf.setModelCustomizationId("modelCustId");
2218 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2219 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2220 any(Service.class));
2222 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2223 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2224 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2225 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2226 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2227 any(Service.class));
2229 VfModule vfModule = new VfModule();
2230 vfModule.setVfModuleId("vfModuleId");
2231 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2232 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2233 aaiVfModule.setModelCustomizationId("modelCustId");
2234 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2236 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2237 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2238 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2239 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2240 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2241 any(Service.class));
2242 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2243 any(Service.class), any(String.class));
2245 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2246 VolumeGroup volumeGroup = new VolumeGroup();
2247 volumeGroup.setVolumeGroupId("volumeGroupId");
2248 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2249 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2250 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2251 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(Defaults.CLOUD_OWNER.toString(),
2252 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2254 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2255 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2256 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2257 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2258 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2259 any(Service.class));
2260 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2261 isA(Service.class), isA(String.class));
2263 Configuration configuration = new Configuration();
2264 configuration.setConfigurationId("configurationId");
2265 gBB.getServiceInstance().getConfigurations().add(configuration);
2266 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2267 aaiConfiguration.setModelCustomizationId("modelCustId");
2268 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2269 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2271 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2272 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2273 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2274 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2275 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2276 any(Service.class), isA(ConfigurationResourceKeys.class));
2280 public void testGetVnfId() {
2281 String expected = "vnfId";
2282 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2283 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2284 executeBB.setRequestId("requestId");
2285 InfraActiveRequests request = new InfraActiveRequests();
2286 request.setVnfId(expected);
2287 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2289 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2291 assertEquals("VnfId is set correctly", expected, actual);
2295 public void testCreateVfModule() {
2296 String vfModuleId = "vfModuleId";
2297 String instanceName = "vfModuleName";
2298 Map<String, String> cloudParams = new HashMap<>();
2299 cloudParams.put("param1", "param1Value");
2300 VfModule expected = new VfModule();
2301 expected.setVfModuleId(vfModuleId);
2302 expected.setVfModuleName(instanceName);
2303 expected.setCloudParams(cloudParams);
2304 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2305 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2306 List<Map<String, String>> instanceParams = new ArrayList<>();
2307 instanceParams.add(cloudParams);
2309 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2311 assertThat(actual, sameBeanAs(expected));
2312 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2314 expected.getCloudParams().clear();
2315 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2316 assertThat(actual, sameBeanAs(expected));
2320 public void testCreateVolumeGroup() {
2321 String volumeGroupId = "volumeGroupId";
2322 String instanceName = "vfModuleName";
2323 String vnfType = "vnfType";
2324 Map<String, String> cloudParams = new HashMap<>();
2325 cloudParams.put("param1", "param1Value");
2326 VolumeGroup expected = new VolumeGroup();
2327 expected.setVolumeGroupId(volumeGroupId);
2328 expected.setVolumeGroupName(instanceName);
2329 expected.setCloudParams(cloudParams);
2330 expected.setVnfType(vnfType);
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 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2338 assertThat(actual, sameBeanAs(expected));
2339 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2341 expected.getCloudParams().clear();
2342 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2343 assertThat(actual, sameBeanAs(expected));
2347 public void testCreateNetwork() {
2348 String networkId = "networkId";
2349 String instanceName = "networkName";
2350 Map<String, String> cloudParams = new HashMap<>();
2351 cloudParams.put("param1", "param1Value");
2352 L3Network expected = new L3Network();
2353 expected.setNetworkId(networkId);
2354 expected.setNetworkName(instanceName);
2355 expected.setCloudParams(cloudParams);
2356 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2357 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2358 List<Map<String, String>> instanceParams = new ArrayList<>();
2359 instanceParams.add(cloudParams);
2360 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2362 assertThat(actual, sameBeanAs(expected));
2363 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2365 expected.getCloudParams().clear();
2366 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2367 assertThat(actual, sameBeanAs(expected));
2371 public void testCreateGenericVnf() {
2372 String vnfId = "vnfId";
2373 String instanceName = "vnfName";
2374 String vnfType = "vnfType";
2375 String platformName = "platformName";
2376 String lineOfBusinessName = "lineOfBusinessName";
2377 Platform platform = new Platform();
2378 platform.setPlatformName(platformName);
2379 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2380 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2381 Map<String, String> cloudParams = new HashMap<>();
2382 cloudParams.put("param1", "param1Value");
2383 GenericVnf expected = new GenericVnf();
2384 expected.setVnfId(vnfId);
2385 expected.setVnfName(instanceName);
2386 expected.setVnfType(vnfType);
2387 expected.setCloudParams(cloudParams);
2388 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2389 expected.setPlatform(platform);
2390 expected.setLineOfBusiness(lineOfBusiness);
2391 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2392 List<Map<String, String>> instanceParams = new ArrayList<>();
2393 instanceParams.add(cloudParams);
2394 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2395 platform.setPlatformName(platformName);
2396 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2397 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2399 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2400 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2402 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2404 assertThat(actual, sameBeanAs(expected));
2405 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2407 expected.getCloudParams().clear();
2408 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2409 assertThat(actual, sameBeanAs(expected));
2413 public void testMapCatalogVfModule() {
2414 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2415 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2416 VfModule vfModule = new VfModule();
2417 ModelInfo modelInfo = new ModelInfo();
2418 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2419 Service service = new Service();
2420 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2421 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2422 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2423 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2424 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2425 service.getVnfCustomizations().add(vnfResourceCust);
2426 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2428 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2430 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2432 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2434 modelInfo.setModelCustomizationUuid(null);
2435 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2437 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2439 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2443 public void testPopulateVfModule() throws Exception {
2444 String vnfId = "vnfId";
2445 String vfModuleId = "vfModuleId";
2446 String volumeGroupId = "volumeGroupId";
2447 String vfModuleCustomizationId = "vfModuleCustomizationId";
2448 ModelInfo modelInfo = new ModelInfo();
2449 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2450 Service service = new Service();
2451 String bbName = AssignFlows.VF_MODULE.toString();
2452 ServiceInstance serviceInstance = new ServiceInstance();
2453 GenericVnf vnf = new GenericVnf();
2454 vnf.setVnfId(vnfId);
2455 VolumeGroup volumeGroup = new VolumeGroup();
2456 volumeGroup.setVolumeGroupId(volumeGroupId);
2457 vnf.getVolumeGroups().add(volumeGroup);
2458 serviceInstance.getVnfs().add(vnf);
2459 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2460 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2461 String resourceId = vfModuleId;
2462 RelatedInstanceList[] relatedInstanceList = null;
2463 String instanceName = "vfModuleName";
2464 List<Map<String, String>> instanceParams = null;
2465 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2467 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2468 vnfAAI.setModelCustomizationId("vnfModelCustId");
2469 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2470 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2472 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2473 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2474 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2475 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2476 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2478 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2479 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2481 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2482 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));