2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.bpmn.servicedecomposition.tasks;
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import static org.mockito.Matchers.any;
29 import static org.mockito.Matchers.eq;
30 import static org.mockito.Matchers.isA;
31 import static org.mockito.Mockito.doNothing;
32 import static org.mockito.Mockito.doReturn;
33 import static org.mockito.Mockito.times;
34 import static org.mockito.Mockito.verify;
37 import java.io.IOException;
38 import java.util.ArrayList;
39 import java.util.Arrays;
40 import java.util.HashMap;
41 import java.util.List;
44 import org.camunda.bpm.engine.delegate.DelegateExecution;
45 import org.junit.Before;
46 import org.junit.Test;
47 import org.junit.runner.RunWith;
48 import org.mockito.Mock;
49 import org.mockito.Mockito;
50 import org.mockito.Spy;
51 import org.mockito.runners.MockitoJUnitRunner;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
57 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
58 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
62 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
63 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
64 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
65 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
68 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
69 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
70 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
71 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
72 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
73 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
74 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
75 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
76 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
77 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
78 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
79 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
80 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
81 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
82 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
83 import org.onap.so.client.aai.AAIObjectType;
84 import org.onap.so.client.aai.entities.AAIResultWrapper;
85 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
86 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
87 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
88 import org.onap.so.db.catalog.beans.CollectionResource;
89 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
90 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
91 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
92 import org.onap.so.db.catalog.beans.InstanceGroupType;
93 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
94 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
95 import org.onap.so.db.catalog.beans.OrchestrationStatus;
96 import org.onap.so.db.catalog.beans.Service;
97 import org.onap.so.db.catalog.beans.VfModuleCustomization;
98 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
99 import org.onap.so.db.request.beans.InfraActiveRequests;
100 import org.onap.so.serviceinstancebeans.CloudConfiguration;
101 import org.onap.so.serviceinstancebeans.ModelInfo;
102 import org.onap.so.serviceinstancebeans.ModelType;
103 import org.onap.so.serviceinstancebeans.RelatedInstance;
104 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
105 import org.onap.so.serviceinstancebeans.RequestDetails;
106 import org.onap.so.serviceinstancebeans.RequestInfo;
107 import org.onap.so.serviceinstancebeans.RequestParameters;
108 import org.onap.so.serviceinstancebeans.Resources;
109 import org.onap.so.serviceinstancebeans.SubscriberInfo;
111 import com.fasterxml.jackson.core.JsonParseException;
112 import com.fasterxml.jackson.core.JsonProcessingException;
113 import com.fasterxml.jackson.databind.JsonMappingException;
114 import com.fasterxml.jackson.databind.ObjectMapper;
115 @RunWith(MockitoJUnitRunner.class)
116 public class BBInputSetupTest {
117 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
119 protected ObjectMapper mapper = new ObjectMapper();
120 private static final String CLOUD_OWNER = "att-aic";
123 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
126 private BBInputSetupUtils SPY_bbInputSetupUtils;
129 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
133 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
134 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
138 public void testGetAlaCarteServiceInstance() throws Exception {
139 ServiceInstance expected = mapper.readValue(
140 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
141 ServiceInstance.class);
142 RequestDetails requestDetails = new RequestDetails();
143 RequestInfo requestInfo = new RequestInfo();
144 requestInfo.setInstanceName("SharansInstanceName");
145 requestDetails.setRequestInfo(requestInfo);
146 Customer customer = new Customer();
147 String serviceInstanceId = "SharansInstanceId";
148 boolean aLaCarte = true;
149 Service service = new Service();
150 service.setModelUUID("modelUUID");
151 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
152 modelInfoServiceInstance.setModelUuid("modelUUID");
153 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
154 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
155 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
156 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
157 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
158 Service differentService = new Service();
159 differentService.setModelUUID("modelUUIDDifferent");
161 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
162 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
163 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
164 doReturn(differentService).when(SPY_bbInputSetupUtils)
165 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
166 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
167 .mapCatalogServiceIntoServiceInstance(differentService);
169 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
170 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
171 assertThat(actual, sameBeanAs(expected));
174 @Test(expected = Exception.class)
175 public void testGetAlaCarteServiceInstanceException() throws Exception {
176 ServiceInstance expected = mapper.readValue(
177 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
178 ServiceInstance.class);
179 RequestDetails requestDetails = new RequestDetails();
180 RequestInfo requestInfo = new RequestInfo();
181 requestInfo.setInstanceName("SharansInstanceName");
182 requestDetails.setRequestInfo(requestInfo);
183 Customer customer = new Customer();
184 String serviceInstanceId = "SharansInstanceId";
185 boolean aLaCarte = true;
186 Service service = new Service();
187 service.setModelUUID("modelUUID");
188 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
189 modelInfoServiceInstance.setModelUuid("modelUUID");
190 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
191 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
192 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
193 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
194 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
195 Service differentService = new Service();
196 differentService.setModelUUID("modelUUIDDifferent");
198 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
199 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
200 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
201 doReturn(null).when(SPY_bbInputSetupUtils)
202 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
204 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
205 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
206 assertThat(actual, sameBeanAs(expected));
210 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
211 RequestDetails requestDetails = mapper.readValue(
212 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
213 SubscriberInfo subscriberInfo = new SubscriberInfo();
214 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
215 RequestParameters requestParams = new RequestParameters();
216 requestParams.setSubscriptionServiceType("subscriptionServiceType");
217 requestDetails.setRequestParameters(requestParams);
218 requestDetails.setSubscriberInfo(subscriberInfo);
219 String resourceId = "resourceId";
220 Customer expected = new Customer();
221 expected.setGlobalCustomerId("globalCustomerId");
222 ServiceSubscription serviceSubscription = new ServiceSubscription();
223 serviceSubscription.setServiceType("subscriptionServiceType");
225 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
226 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
228 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
230 assertThat(actual, sameBeanAs(expected));
232 requestDetails.setSubscriberInfo(null);
234 doReturn(null).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
235 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromURI(resourceId);
236 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscriptionFromURI(resourceId, expected);
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(any(WorkflowResourceIds.class), any());
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 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
321 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
322 String resourceId = "123";
323 String requestAction = "createInstance";
324 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
325 requestAction, resourceId);
326 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(any(WorkflowResourceIds.class), any());
327 doReturn(null).when(bbInputSetupMapperLayer).mapAAIGenericVnfIntoGenericVnf(any(org.onap.aai.domain.yang.GenericVnf.class));
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");
354 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
356 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
357 serviceInstance, lookupKeyMap, resourceId, vnfType);
358 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
359 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
360 executeBB, requestAction, null);
362 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
363 requestAction, resourceId, vnfType);
365 assertThat(actual, sameBeanAs(expected));
368 @Test(expected = Exception.class)
369 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
370 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
371 ExecuteBuildingBlock.class);
372 RequestDetails requestDetails = mapper.readValue(
373 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
374 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
375 String requestAction = "createInstance";
376 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
377 aaiServiceInstance.setModelVersionId("modelVersionId");
378 String resourceId = "123";
379 String vnfType = "vnfType";
380 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
381 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
383 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
388 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
389 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
390 GeneralBuildingBlock.class);
391 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
392 ExecuteBuildingBlock.class);
393 RequestDetails requestDetails = mapper.readValue(
394 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
395 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
396 String requestAction = "createInstance";
397 Service service = Mockito.mock(Service.class);
398 String resourceId = "123";
399 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
400 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
401 aaiServiceInstance.setModelVersionId("modelVersionId");
402 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
403 String vnfType = "vnfType";
404 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
405 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
406 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
407 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
409 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
410 serviceInstance, lookupKeyMap, resourceId, vnfType);
412 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
413 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
414 executeBB, requestAction,null);
416 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
417 requestAction, resourceId, vnfType);
419 assertThat(actual, sameBeanAs(expected));
423 public void testGetGBBALaCarteService() throws Exception {
424 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
425 GeneralBuildingBlock.class);
426 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
427 ExecuteBuildingBlock.class);
428 RequestDetails requestDetails = mapper.readValue(
429 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
430 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
432 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
433 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
434 requestDetails.setProject(requestProject);
435 requestDetails.setOwningEntity(requestOwningEntity);
437 Service service = Mockito.mock(Service.class);
438 Customer customer = Mockito.mock(Customer.class);
439 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
440 Project project = Mockito.mock(Project.class);
441 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
442 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
443 String resourceId = "123";
444 String requestAction = "createInstance";
445 executeBB.setaLaCarte(true);
446 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
447 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
449 doReturn(service).when(SPY_bbInputSetupUtils)
450 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
451 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
452 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
453 doReturn(owningEntity).when(bbInputSetupMapperLayer)
454 .mapRequestOwningEntity(requestDetails.getOwningEntity());
456 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
457 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
458 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
459 executeBB.getBuildingBlock().getBpmnFlowName());
460 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
461 executeBB, requestAction, customer);
463 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
464 requestAction, resourceId);
466 assertThat(actual, sameBeanAs(expected));
470 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
471 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
472 GeneralBuildingBlock.class);
473 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
474 ExecuteBuildingBlock.class);
475 RequestDetails requestDetails = mapper.readValue(
476 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
477 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
479 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
480 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
481 requestDetails.setProject(requestProject);
482 requestDetails.setOwningEntity(requestOwningEntity);
484 Service service = Mockito.mock(Service.class);
485 Customer customer = Mockito.mock(Customer.class);
486 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
487 Project project = Mockito.mock(Project.class);
488 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
489 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
490 String resourceId = "123";
491 String requestAction = "createInstance";
492 executeBB.setaLaCarte(true);
493 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
494 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
496 doReturn(null).when(SPY_bbInputSetupUtils)
497 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
498 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
499 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
500 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
501 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
502 doReturn(owningEntity).when(bbInputSetupMapperLayer)
503 .mapRequestOwningEntity(requestDetails.getOwningEntity());
505 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
506 doReturn(serviceSubscription).when(SPY_bbInputSetup).getServiceSubscription(requestDetails, customer);
507 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
508 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
509 executeBB.getBuildingBlock().getBpmnFlowName());
510 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
511 executeBB, requestAction,customer);
513 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
514 requestAction, resourceId);
516 assertThat(actual, sameBeanAs(expected));
520 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
521 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
522 GeneralBuildingBlock.class);
523 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
524 ExecuteBuildingBlock.class);
525 RequestDetails requestDetails = mapper.readValue(
526 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
527 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
529 Service service = Mockito.mock(Service.class);
530 Customer customer = Mockito.mock(Customer.class);
531 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
532 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
533 String resourceId = "123";
534 String requestAction = "createInstance";
535 executeBB.setaLaCarte(true);
536 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
537 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
539 Map<String, String> uriKeys = new HashMap<>();
540 uriKeys.put("global-customer-id", "globalCustomerId");
541 uriKeys.put("service-type", "serviceType");
542 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
543 .getURIKeysFromServiceInstance(resourceId);
544 doReturn(service).when(SPY_bbInputSetupUtils)
545 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
546 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
548 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
549 doReturn(serviceSubscription).when(SPY_bbInputSetup).getServiceSubscription(requestDetails, customer);
550 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
551 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
552 executeBB.getBuildingBlock().getBpmnFlowName());
553 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
554 executeBB, requestAction,customer);
556 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
557 requestAction, resourceId);
559 assertThat(actual, sameBeanAs(expected));
563 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
564 RequestDetails requestDetails = new RequestDetails();
565 RequestInfo requestInfo = new RequestInfo();
566 requestInfo.setInstanceName("SharansInstanceName");
567 requestDetails.setRequestInfo(requestInfo);
568 Customer customer = new Customer();
569 String serviceInstanceId = "SharansInstanceId";
570 boolean aLaCarte = true;
571 ServiceInstance expected = new ServiceInstance();
572 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
573 Service service = new Service();
574 service.setModelUUID("modelUUID");
575 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
577 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
578 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
581 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
582 lookupKeyMap, serviceInstanceId);
584 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
585 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
586 assertThat(actual, sameBeanAs(expected));
590 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
591 RequestDetails requestDetails = new RequestDetails();
592 RequestInfo requestInfo = new RequestInfo();
593 requestInfo.setInstanceName("SharansInstanceName");
594 requestDetails.setRequestInfo(requestInfo);
595 Customer customer = new Customer();
596 String serviceInstanceId = "SharansInstanceId";
597 boolean aLaCarte = true;
598 Service service = new Service();
599 service.setModelUUID("modelUUID");
600 ServiceInstance expected = new ServiceInstance();
601 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
602 serviceInstanceAAI.setModelVersionId("modelUUID");
603 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
604 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
606 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
607 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
608 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
610 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
611 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
612 assertThat(actual, sameBeanAs(expected));
616 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
617 RequestDetails requestDetails = new RequestDetails();
618 RequestInfo requestInfo = new RequestInfo();
619 requestInfo.setInstanceName("SharansInstanceName");
620 requestDetails.setRequestInfo(requestInfo);
621 Customer customer = new Customer();
622 String serviceInstanceId = "SharansInstanceId";
623 boolean aLaCarte = true;
624 Service service = new Service();
625 service.setModelUUID("modelUUID");
626 ServiceInstance expected = new ServiceInstance();
627 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
628 serviceInstanceAAI.setModelVersionId("modelUUID");
629 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
630 String bbName = "ActivateServiceInstanceBB";
632 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
633 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
635 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
636 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
637 assertThat(actual, sameBeanAs(expected));
641 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
642 RequestDetails requestDetails = new RequestDetails();
643 RequestInfo requestInfo = new RequestInfo();
644 requestDetails.setRequestInfo(requestInfo);
645 Customer customer = new Customer();
646 String serviceInstanceId = "SharansInstanceId";
647 boolean aLaCarte = true;
648 Service service = new Service();
649 service.setModelUUID("modelUUID");
650 ServiceInstance expected = new ServiceInstance();
651 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
652 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
653 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
654 String bbName = "ActivateServiceInstanceBB";
655 Service differentService = new Service();
656 differentService.setModelUUID("modelUUIDDifferent");
658 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
659 doReturn(differentService).when(SPY_bbInputSetupUtils)
660 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
661 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
663 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
664 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
665 assertThat(actual, sameBeanAs(expected));
668 @Test(expected = Exception.class)
669 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
670 RequestDetails requestDetails = new RequestDetails();
671 RequestInfo requestInfo = new RequestInfo();
672 requestDetails.setRequestInfo(requestInfo);
673 Customer customer = new Customer();
674 String serviceInstanceId = "SharansInstanceId";
675 boolean aLaCarte = true;
676 Service service = new Service();
677 service.setModelUUID("modelUUID");
678 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
679 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
680 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
681 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
683 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
684 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
688 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
689 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
690 String instanceName = "instanceName";
691 String vnfType = "vnfType";
692 String resourceId = "networkId";
693 Service service = Mockito.mock(Service.class);
694 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
695 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
696 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
697 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
698 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
699 CloudConfiguration cloudConfiguration = new CloudConfiguration();
700 org.onap.so.serviceinstancebeans.Platform platform = Mockito
701 .mock(org.onap.so.serviceinstancebeans.Platform.class);
702 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
703 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
704 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
706 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
707 lookupKeyMap, resourceId, null);
708 doReturn(modelInfo).when(requestDetails).getModelInfo();
709 doReturn(requestInfo).when(requestDetails).getRequestInfo();
710 doReturn(instanceName).when(requestInfo).getInstanceName();
711 doReturn(platform).when(requestDetails).getPlatform();
712 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
713 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
714 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
716 doReturn(ModelType.network).when(modelInfo).getModelType();
717 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
718 lookupKeyMap, resourceId, vnfType);
719 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
720 lookupKeyMap, resourceId, null);
721 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
723 doReturn(ModelType.vnf).when(modelInfo).getModelType();
724 resourceId = "vnfId";
725 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
726 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
727 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
728 lookupKeyMap, resourceId, vnfType);
729 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
730 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
731 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
733 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
734 resourceId = "volumeGroupId";
735 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
736 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
737 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
738 lookupKeyMap, resourceId, vnfType);
739 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
740 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
741 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
743 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
744 resourceId = "vfModuleId";
745 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
746 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
747 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
748 lookupKeyMap, resourceId, vnfType);
749 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
750 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
751 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
755 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
756 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
757 GeneralBuildingBlock.class);
758 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
759 ExecuteBuildingBlock.class);
760 RequestDetails requestDetails = mapper.readValue(
761 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
762 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
763 RequestContext.class);
764 ServiceInstance serviceInstance = mapper.readValue(
765 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
766 ServiceInstance.class);
768 OrchestrationContext orchestrationContext = new OrchestrationContext();
769 orchestrationContext.setIsRollbackEnabled(false);
771 CloudRegion cloudRegion = new CloudRegion();
772 cloudRegion.setCloudOwner("att-aic");
773 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
774 cloudRegion.setComplex("complexName");
775 cloudRegion.setTenantId("tenantId");
777 Map<String, String> uriKeys = new HashMap<>();
778 uriKeys.put("global-customer-id","global-customer-id");
779 uriKeys.put("service-type","service-type");
781 Customer customer = new Customer();
782 ServiceSubscription serviceSubscription = new ServiceSubscription();
783 serviceSubscription.setServiceType("subscriptionServiceType");
784 customer.setGlobalCustomerId("globalCustomerId");
785 customer.setSubscriberName("subscriberName");
786 customer.setSubscriberType("subscriberType");
787 customer.setServiceSubscription(serviceSubscription);
789 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
791 String requestAction = "createInstance";
793 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
794 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
795 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
796 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
797 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
798 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion,
801 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
802 serviceInstance, executeBB, requestAction, null);
804 assertThat(actual, sameBeanAs(expected));
808 public void testGetServiceInstanceNOAAI() throws Exception {
809 ServiceInstance expected = mapper.readValue(
810 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
811 ServiceInstance.class);
812 Service service = mapper.readValue(
813 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
814 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
815 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
816 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
817 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
819 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
820 executeBB.setaLaCarte(true);
821 BuildingBlock buildingBlock = new BuildingBlock();
822 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
823 executeBB.setBuildingBlock(buildingBlock);
824 RequestDetails requestDetails = new RequestDetails();
825 RequestInfo reqInfo = new RequestInfo();
826 reqInfo.setInstanceName("serviceInstanceName");
827 requestDetails.setRequestInfo(reqInfo);
828 ModelInfo modelInfo = new ModelInfo();
829 modelInfo.setModelType(ModelType.service);
830 requestDetails.setModelInfo(modelInfo);
831 doReturn(null).when(SPY_bbInputSetupUtils)
832 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
833 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
834 .mapCatalogServiceIntoServiceInstance(service);
835 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
836 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
837 boolean aLaCarte = true;
839 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
840 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
841 executeBB.getBuildingBlock().getBpmnFlowName());
843 assertThat(actual, sameBeanAs(expected));
847 public void testGetServiceSubscription() throws IOException {
848 ServiceSubscription expected = new ServiceSubscription();
849 RequestDetails requestDetails = new RequestDetails();
850 RequestParameters params = new RequestParameters();
851 params.setSubscriptionServiceType("subscriptionServiceType");
852 requestDetails.setRequestParameters(params);
853 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
854 Customer customer = new Customer();
855 customer.setGlobalCustomerId("globalCustomerId");
856 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
857 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
858 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
860 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
861 assertThat(actual, sameBeanAs(expected));
865 public void testGetCustomer() throws IOException {
866 Customer expected = new Customer();
867 RequestDetails requestDetails = new RequestDetails();
868 SubscriberInfo subscriberInfo = new SubscriberInfo();
869 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
870 requestDetails.setSubscriberInfo(subscriberInfo);
871 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
872 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
873 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
874 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
876 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
877 assertThat(actual, sameBeanAs(expected));
881 public void testGetExistingServiceInstance() throws Exception {
882 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
883 ServiceInstance expected = new ServiceInstance();
885 doReturn(expected).when(bbInputSetupMapperLayer)
886 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
888 doNothing().when(SPY_bbInputSetup).addRelationshipsToSI(serviceInstanceAAI, expected);
890 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
891 assertThat(actual, sameBeanAs(expected));
895 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
896 Service service = Mockito.mock(Service.class);
897 String key = "collectionCustId";
898 ServiceInstance serviceInstance = mapper.readValue(
899 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
900 ServiceInstance.class);
901 String resourceId = "123";
902 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
903 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
904 assertNull(serviceInstance.getCollection());
905 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
906 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
907 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
908 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
909 doNothing().when(SPY_bbInputSetup).mapCatalogNetworkCollectionInstanceGroup(service,
910 collection.getInstanceGroup(), key);
911 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
912 networkCollection.setModelCustomizationUUID(key);
913 networkCollection.setCollectionResource(new CollectionResource());
914 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
915 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
916 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
917 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
918 List<CollectionResourceCustomization> customizations = new ArrayList<>();
919 customizations.add(networkCollection);
920 doReturn(customizations).when(service).getCollectionResourceCustomizations();
922 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
923 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
925 assertNotNull(serviceInstance.getCollection());
926 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
928 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
929 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
930 serviceInstance.getCollection().getInstanceGroup(), key);
934 public void testIsVlanTagging() throws Exception {
935 boolean expected = true;
936 Service service = Mockito.mock(Service.class);
937 String key = "collectionCustId";
938 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
939 networkCollection.setModelCustomizationUUID(key);
940 networkCollection.setCollectionResource(new CollectionResource());
941 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
942 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
943 List<CollectionResourceCustomization> customizations = new ArrayList<>();
944 customizations.add(networkCollection);
945 doReturn(customizations).when(service).getCollectionResourceCustomizations();
946 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
947 assertEquals("Is Vlan Tagging check.", expected, actual);
951 public void testPopulateVolumeGroup() throws Exception {
952 RequestDetails requestDetails = new RequestDetails();
953 RelatedInstanceList ril = new RelatedInstanceList();
954 RelatedInstance ri = new RelatedInstance();
955 ModelInfo mi = new ModelInfo();
956 mi.setModelType(ModelType.vnf);
957 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
959 ril.setRelatedInstance(ri);
960 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
962 ModelInfo modelInfo = new ModelInfo();
963 modelInfo.setModelType(ModelType.volumeGroup);
965 RequestInfo reqInfo = new RequestInfo();
966 reqInfo.setInstanceName("volumeGroupName");
967 requestDetails.setModelInfo(modelInfo);
968 requestDetails.setRequestInfo(reqInfo);
970 ServiceInstance serviceInstance = new ServiceInstance();
971 GenericVnf vnf = new GenericVnf();
972 vnf.setVnfId("genericVnfId");
974 VolumeGroup vg = new VolumeGroup();
975 vg.setVolumeGroupName("volumeGroupName");
976 vg.setVolumeGroupId("volumeGroupId");
977 vnf.getVolumeGroups().add(vg);
978 serviceInstance.getVnfs().add(vnf);
980 Service service = mapper.readValue(
981 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
982 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
983 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
985 String bbName = AssignFlows.VOLUME_GROUP.toString();
986 String resourceId = "123";
987 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
988 eq(service), eq("vnfModelCustomizationUUID"));
989 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
990 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
991 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
993 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
994 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
995 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
996 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
997 vnf.getVolumeGroups().clear();
998 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
999 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1000 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1001 "vnfModelCustomizationUUID");
1005 public void testMapCatalogVolumeGroup() {
1006 VolumeGroup volumeGroup = new VolumeGroup();
1007 RequestDetails requestDetails = new RequestDetails();
1008 ModelInfo modelInfo = new ModelInfo();
1009 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1010 requestDetails.setModelInfo(modelInfo);
1011 Service service = new Service();
1012 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1013 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1014 service.getVnfCustomizations().add(resourceCust);
1015 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1016 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1017 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1018 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1020 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1022 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1024 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1028 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1029 String instanceName = "networkName";
1030 ModelInfo modelInfo = new ModelInfo();
1031 modelInfo.setModelType(ModelType.network);
1033 ServiceInstance serviceInstance = new ServiceInstance();
1034 L3Network network = new L3Network();
1035 network.setNetworkId("networkId");
1036 network.setNetworkName("networkName");
1037 serviceInstance.getNetworks().add(network);
1038 String resourceId = "123";
1040 Service service = mapper.readValue(
1041 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1042 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1043 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1044 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1046 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1048 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1051 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1053 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1055 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1057 instanceName = "networkName2";
1058 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1059 doReturn(network2).when(SPY_bbInputSetup).createNetwork(lookupKeyMap, instanceName, resourceId, null);
1060 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1062 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1066 public void testMapCatalogNetwork() {
1067 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1068 L3Network network = new L3Network();
1070 RequestDetails requestDetails = new RequestDetails();
1071 ModelInfo modelInfo = new ModelInfo();
1072 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1073 requestDetails.setModelInfo(modelInfo);
1074 Service service = new Service();
1075 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1076 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1077 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1079 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1081 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1083 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1087 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1088 String instanceName = "configurationName";
1089 ModelInfo modelInfo = new ModelInfo();
1090 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1092 ServiceInstance serviceInstance = new ServiceInstance();
1093 Configuration configuration = new Configuration();
1094 configuration.setConfigurationId("configurationId");
1095 configuration.setConfigurationName("configurationName");
1096 serviceInstance.getConfigurations().add(configuration);
1097 String resourceId = "configurationId";
1099 Service service = mapper.readValue(
1100 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1101 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1102 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1103 service.getConfigurationCustomizations().add(configurationCust);
1104 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1105 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1106 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1107 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1108 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1109 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1110 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1112 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1114 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1115 instanceName, configResourceKeys);
1116 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1118 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1120 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1121 instanceName, configResourceKeys);
1122 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1124 instanceName = "configurationName2";
1125 resourceId = "resourceId2";
1126 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1127 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1128 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1129 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1130 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1131 instanceName, configResourceKeys);
1132 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1136 public void testMapCatalogConfiguration() {
1137 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1138 L3Network network = new L3Network();
1140 RequestDetails requestDetails = new RequestDetails();
1141 ModelInfo modelInfo = new ModelInfo();
1142 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1143 requestDetails.setModelInfo(modelInfo);
1144 Service service = new Service();
1145 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1146 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1147 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1149 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1151 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1153 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1157 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1158 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1159 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1160 String instanceName = "vnfName";
1161 ModelInfo modelInfo = new ModelInfo();
1162 modelInfo.setModelType(ModelType.vnf);
1164 ServiceInstance serviceInstance = new ServiceInstance();
1165 GenericVnf vnf = new GenericVnf();
1166 vnf.setVnfId("genericVnfId");
1167 vnf.setVnfName("vnfName");
1168 serviceInstance.getVnfs().add(vnf);
1169 String vnfType = "vnfType";
1170 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1171 RequestDetails.class);
1173 Service service = mapper.readValue(
1174 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1175 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1176 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1177 String bbName = AssignFlows.VNF.toString();
1179 Platform expectedPlatform = new Platform();
1180 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1181 String resourceId = "123";
1182 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1183 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1184 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1185 vnfAAI.setModelCustomizationId("modelCustId");
1186 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1187 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1188 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1189 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1190 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1191 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1193 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1194 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1196 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1198 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1199 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1200 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1202 instanceName = "vnfName2";
1203 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1204 resourceId, vnfType, null);
1205 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1206 resourceId, vnfType, null);
1207 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1208 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1210 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1212 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1213 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1214 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1215 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1216 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1220 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1221 throws JsonParseException, JsonMappingException, IOException {
1222 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1223 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1224 String instanceName = "vnfName";
1225 ModelInfo modelInfo = new ModelInfo();
1226 modelInfo.setModelType(ModelType.vnf);
1228 ServiceInstance serviceInstance = new ServiceInstance();
1229 GenericVnf vnf = new GenericVnf();
1230 vnf.setVnfId("genericVnfId");
1231 vnf.setVnfName("vnfName");
1232 serviceInstance.getVnfs().add(vnf);
1233 String vnfType = null;
1234 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1235 RequestDetails.class);
1237 Service service = mapper.readValue(
1238 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1239 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1240 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1241 String bbName = AssignFlows.VNF.toString();
1243 Platform expectedPlatform = new Platform();
1244 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1245 String resourceId = "123";
1246 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1247 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1248 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1249 vnfAAI.setModelCustomizationId("modelCustId");
1250 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1251 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1252 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1253 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1254 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1255 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1257 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1258 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1260 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1262 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1263 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1264 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1266 instanceName = "vnfName2";
1267 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1268 resourceId, vnfType, null);
1269 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1270 resourceId, vnfType, null);
1271 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1272 vnfAAI.setModelCustomizationId("modelCustId2");
1273 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1274 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1275 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1276 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1277 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1278 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1279 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1280 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1281 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1285 public void testMapCatalogVnf() {
1286 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1287 GenericVnf genericVnf = new GenericVnf();
1288 RequestDetails requestDetails = new RequestDetails();
1289 ModelInfo modelInfo = new ModelInfo();
1290 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1291 requestDetails.setModelInfo(modelInfo);
1292 Service service = new Service();
1293 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1294 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1295 service.getVnfCustomizations().add(resourceCust);
1296 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1298 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1300 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1302 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1306 public void testMapCatalogCollectionAndInstanceGroup() {
1307 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1308 modelInfoCollection.setCollectionFunction("collectionFunction");
1309 modelInfoCollection.setCollectionRole("collectionRole");
1310 modelInfoCollection.setCollectionType("collectionType");
1311 modelInfoCollection.setDescription("description");
1312 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1313 modelInfoCollection.setQuantity(0);
1315 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1316 modelInfoInstanceGroup.setFunction("function");
1317 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1318 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1319 modelInfoInstanceGroup.setModelUUID("modelUUID");
1320 modelInfoInstanceGroup.setType("VNFC");
1321 modelInfoInstanceGroup.setDescription("description");
1323 InstanceGroup instanceGroup = new InstanceGroup();
1324 Collection collection = new Collection();
1325 collection.setInstanceGroup(instanceGroup);
1327 CollectionResource collectionResource = new CollectionResource();
1328 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1329 collectionResource.setToscaNodeType("NetworkCollection");
1330 collectionResource.setInstanceGroup(catalogInstanceGroup);
1332 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1333 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1334 collectionCust.setCollectionResource(collectionResource);
1336 Service service = new Service();
1337 service.getCollectionResourceCustomizations().add(collectionCust);
1338 ServiceInstance serviceInstance = new ServiceInstance();
1339 serviceInstance.setCollection(collection);
1341 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1342 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1343 instanceGroupCust.setFunction("function");
1344 instanceGroupCust.setDescription("description");
1346 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1347 collectionResource);
1348 doReturn(instanceGroupCustList).when(SPY_bbInputSetupUtils)
1349 .getCollectionResourceInstanceGroupCustomization(collectionCust.getModelCustomizationUUID());
1350 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1351 catalogInstanceGroup);
1353 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1354 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1355 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1357 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1358 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1362 public void testAddRelationshipsToSI() throws Exception {
1363 ServiceInstance serviceInstance = new ServiceInstance();
1364 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1365 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1367 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1368 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1369 relationshipList.getRelationship().add(relationship);
1370 serviceInstanceAAI.setRelationshipList(relationshipList);
1372 Map<String, String> uriKeys = new HashMap<>();
1373 uriKeys.put("global-customer-id", "globalCustomerId");
1374 uriKeys.put("service-type", "serviceType");
1376 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
1377 .getURIKeysFromServiceInstance(serviceInstanceAAI.getServiceInstanceId());
1378 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1379 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1380 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1381 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1382 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1384 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1386 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1387 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1388 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1389 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1390 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1391 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1395 public void testMapConfigurations() throws JsonProcessingException {
1396 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1397 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1398 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1399 relationshipList.getRelationship().add(relationship);
1400 expectedAAI.setRelationshipList(relationshipList);
1402 Configuration expected = new Configuration();
1403 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1404 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1405 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1407 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1408 doReturn(expected).when(bbInputSetupMapperLayer)
1409 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1411 List<Configuration> configurations = new ArrayList<>();
1413 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1415 assertEquals(expected, configurations.get(0));
1419 public void testMapGenericVnfs() throws JsonProcessingException {
1420 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1421 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1422 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1423 relationshipList.getRelationship().add(relationship);
1424 expectedAAI.setRelationshipList(relationshipList);
1426 GenericVnf expected = new GenericVnf();
1427 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1428 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1429 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1431 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1432 doReturn(expected).when(bbInputSetupMapperLayer)
1433 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1434 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1435 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1436 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1438 List<GenericVnf> genericVnfs = new ArrayList<>();
1440 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1442 assertEquals(expected, genericVnfs.get(0));
1443 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1444 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1445 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1449 public void testMapVolumeGroups() throws JsonProcessingException {
1450 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1452 VolumeGroup expected = new VolumeGroup();
1453 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1454 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1456 doReturn(expected).when(bbInputSetupMapperLayer)
1457 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1459 List<VolumeGroup> volumeGroupsList =
1460 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1462 assertEquals(expected, volumeGroupsList.get(0));
1466 public void testMapLineOfBusiness() throws JsonProcessingException {
1467 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1469 LineOfBusiness expected = new LineOfBusiness();
1470 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1471 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1473 doReturn(expected).when(bbInputSetupMapperLayer)
1474 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1476 GenericVnf vnf = new GenericVnf();
1478 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1480 assertEquals(expected, vnf.getLineOfBusiness());
1484 public void testMapPlatform() throws JsonProcessingException {
1485 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1487 Platform expected = new Platform();
1488 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1489 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1491 doReturn(expected).when(bbInputSetupMapperLayer)
1492 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1494 GenericVnf vnf = new GenericVnf();
1496 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1498 assertEquals(expected, vnf.getPlatform());
1502 public void testMapCollection() throws JsonProcessingException {
1503 List<AAIResultWrapper> collections = new ArrayList<>();
1504 ServiceInstance serviceInstance = new ServiceInstance();
1506 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1507 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1508 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1509 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1510 aaiCollection.setRelationshipList(collectionRelationshipList);
1512 collections.add(new AAIResultWrapper(
1513 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1515 Collection collection = new Collection();
1516 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1517 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1518 InstanceGroup instanceGroup = new InstanceGroup();
1519 instanceGroupsList.add(instanceGroup);
1520 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1521 CollectionResource collectionResource = new CollectionResource();
1522 doReturn(collection).when(bbInputSetupMapperLayer)
1523 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1524 doReturn(instanceGroup).when(SPY_bbInputSetup).mapInstanceGroup(isA(AAIResultWrapper.class));
1525 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1526 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1527 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1528 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1530 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1532 assertEquals(collection, serviceInstance.getCollection());
1533 assertEquals(instanceGroup, collection.getInstanceGroup());
1535 instanceGroupsList.clear();
1536 collection = new Collection();
1538 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1539 assertEquals(collection, serviceInstance.getCollection());
1540 assertNull(collection.getInstanceGroup());
1544 public void testMapL3Networks() throws JsonProcessingException {
1545 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1546 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1547 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1548 relationshipList.getRelationship().add(relationship);
1549 expectedAAI.setRelationshipList(relationshipList);
1551 L3Network expected = new L3Network();
1552 List<L3Network> l3Networks = new ArrayList<>();
1553 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1554 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1555 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1557 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1558 doReturn(expected).when(bbInputSetupMapperLayer)
1559 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1560 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1561 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1562 eq(expected.getContrailNetworkRouteTableReferences()));
1564 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1566 assertEquals(expected, l3Networks.get(0));
1567 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1568 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1569 eq(expected.getContrailNetworkRouteTableReferences()));
1573 public void testMapRouteTableReferences() throws JsonProcessingException {
1574 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1576 RouteTableReference expected = new RouteTableReference();
1577 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1578 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1579 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1581 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1582 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1584 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1585 contrailNetworkRouteTableReferences);
1587 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1591 public void testMapOwningEntity() throws JsonProcessingException {
1592 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1594 OwningEntity expected = new OwningEntity();
1595 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1596 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1598 doReturn(expected).when(bbInputSetupMapperLayer)
1599 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1601 ServiceInstance serviceInstance = new ServiceInstance();
1603 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1605 assertEquals(expected, serviceInstance.getOwningEntity());
1609 public void testMapProject() throws JsonProcessingException {
1610 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1612 Project expected = new Project();
1613 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1614 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1616 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1618 ServiceInstance serviceInstance = new ServiceInstance();
1620 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1622 assertEquals(expected, serviceInstance.getProject());
1626 public void testMapCustomer() throws Exception {
1627 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1628 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1630 Customer expected = new Customer();
1631 ServiceSubscription serviceSubscription = new ServiceSubscription();
1633 String globalCustomerId = "globalCustomerId";
1634 String subscriptionServiceType = "subscriptionServiceType";
1636 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1637 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1638 subscriptionServiceType);
1639 doReturn(expected).when(bbInputSetupMapperLayer)
1640 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1641 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1642 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1644 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1646 assertEquals(expected, actual);
1647 assertEquals(serviceSubscription, expected.getServiceSubscription());
1651 public void testPopulateLookupKeyMapWithIds() {
1652 Map<ResourceKey, String> expected = new HashMap<>();
1653 Map<ResourceKey, String> actual = new HashMap<>();
1654 String serviceInstanceId = "serviceInstanceId";
1655 String networkId = "networkId";
1656 String vnfId = "vnfId";
1657 String vfModuleId = "vfModuleId";
1658 String volumeGroupId = "volumeGroupId";
1659 String configurationId = "configurationId";
1661 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1662 expected.put(ResourceKey.NETWORK_ID, networkId);
1663 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1664 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1665 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1666 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1668 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1669 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1670 workflowResourceIds.setNetworkId(networkId);
1671 workflowResourceIds.setVnfId(vnfId);
1672 workflowResourceIds.setVfModuleId(vfModuleId);
1673 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1674 workflowResourceIds.setConfigurationId(configurationId);
1676 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1678 assertThat(actual, sameBeanAs(expected));
1682 public void testgetGBBMacro() throws Exception {
1683 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1684 GeneralBuildingBlock.class);
1685 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1686 ExecuteBuildingBlock.class);
1687 RequestDetails requestDetails = mapper
1688 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1689 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1690 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1691 aaiVnf.setModelCustomizationId("modelCustId");
1692 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1693 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1694 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1695 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1696 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1697 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1698 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1699 String resourceId = "123";
1700 String vnfType = "vnfType";
1701 Service service = Mockito.mock(Service.class);
1702 String requestAction = "createInstance";
1704 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1705 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1706 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1707 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1708 executeBB.setConfigurationResourceKeys(configResourceKeys);
1709 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1710 requestAction, resourceId);
1711 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1712 doReturn(service).when(SPY_bbInputSetupUtils)
1713 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1714 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1715 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1716 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1717 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1719 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1720 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1721 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1722 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1723 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1725 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1726 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1727 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1728 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1729 isA(org.onap.so.serviceinstancebeans.Platform.class),
1730 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1731 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1733 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1734 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1735 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1736 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1737 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1738 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1740 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1741 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1742 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1743 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1744 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1745 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1746 any(String.class), any());
1748 Configuration configuration = new Configuration();
1749 configuration.setConfigurationId("configurationId");
1750 gBB.getServiceInstance().getConfigurations().add(configuration);
1751 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1752 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1753 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1754 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1755 configurationCustList.add(configurationCust);
1756 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1757 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class), isA(ConfigurationResourceKeys.class));
1759 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1760 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1761 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1762 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1763 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class), isA(ConfigurationResourceKeys.class));
1767 public void testgetGBBMacroCloudConfiguration() throws Exception {
1768 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1769 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1770 CloudConfiguration cloudConfig = null;
1771 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1772 Resources resources = serviceMacro.getResources();
1773 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class), eq("att-aic"));
1774 CloudRegion expected = new CloudRegion();
1775 expected.setLcpCloudRegionId("mdt1");
1776 expected.setCloudOwner("att-aic");
1777 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1779 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1780 assertThat(actual, sameBeanAs(expected));
1782 serviceMacro = mapper.readValue(
1783 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1784 resources = serviceMacro.getResources();
1786 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1787 assertThat(actual, sameBeanAs(expected));
1789 serviceMacro = mapper.readValue(
1790 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1791 resources = serviceMacro.getResources();
1793 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1794 assertThat(actual, sameBeanAs(expected));
1796 serviceMacro = mapper.readValue(
1797 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1798 resources = serviceMacro.getResources();
1800 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1805 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1806 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1807 GeneralBuildingBlock.class);
1808 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1809 ExecuteBuildingBlock.class);
1810 RequestDetails requestDetails = mapper
1811 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1812 requestDetails.getRequestParameters().getUserParams().clear();
1813 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1814 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1815 aaiVnf.setModelCustomizationId("modelCustId");
1816 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1817 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1818 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1819 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1820 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1821 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1822 String resourceId = "123";
1823 String vnfType = "vnfType";
1824 Service service = Mockito.mock(Service.class);
1825 String requestAction = "createInstance";
1826 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1827 requestAction, resourceId);
1828 doReturn(service).when(SPY_bbInputSetupUtils)
1829 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1830 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1831 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1832 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1833 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1834 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1835 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1836 executeBB.getBuildingBlock().setIsVirtualLink(Boolean.FALSE);
1837 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1838 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1839 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1842 @Test(expected = Exception.class)
1843 public void testgetGBBMacroException() 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 String resourceId = "123";
1852 String vnfType = "vnfType";
1853 Service service = Mockito.mock(Service.class);
1854 String requestAction = "createInstance";
1855 doReturn(null).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1856 requestAction, resourceId);
1857 doReturn(service).when(SPY_bbInputSetupUtils)
1858 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1860 executeBB.getBuildingBlock().setBpmnFlowName("Network");
1861 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1862 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1866 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
1867 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1868 GeneralBuildingBlock.class);
1869 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1870 ExecuteBuildingBlock.class);
1871 RequestDetails requestDetails = mapper
1872 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1873 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1874 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1875 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1876 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1877 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1878 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1879 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1880 aaiVnf.setModelCustomizationId("modelCustId");
1881 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1882 String resourceId = "123";
1883 String vnfType = null;
1884 Service service = Mockito.mock(Service.class);
1885 String requestAction = "createInstance";
1886 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1887 requestAction, resourceId);
1888 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1889 doReturn(service).when(SPY_bbInputSetupUtils)
1890 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1891 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1892 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1893 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1894 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1896 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1897 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1898 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1899 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1900 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1902 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1903 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1904 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1905 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1906 isA(org.onap.so.serviceinstancebeans.Platform.class),
1907 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1908 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1910 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1911 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1912 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1913 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1914 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1915 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1917 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1918 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1919 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1920 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1921 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1922 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1923 any(String.class), any());
1927 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
1928 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1929 GeneralBuildingBlock.class);
1930 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1931 ExecuteBuildingBlock.class);
1932 RequestDetails requestDetails = mapper
1933 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1934 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1935 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1936 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1937 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1938 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1939 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1940 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1941 aaiVnf.setModelCustomizationId("modelCustId");
1942 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1943 String resourceId = "123";
1944 String vnfType = "vnfType";
1945 Service service = Mockito.mock(Service.class);
1946 String requestAction = "createInstance";
1947 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1948 requestAction, resourceId);
1949 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1950 doReturn(service).when(SPY_bbInputSetupUtils)
1951 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1952 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1953 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1954 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1955 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1957 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1958 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1959 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1960 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1961 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1963 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1964 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1965 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1966 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1967 isA(org.onap.so.serviceinstancebeans.Platform.class),
1968 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1969 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1971 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1972 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1973 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1974 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1975 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1976 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1978 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1979 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1980 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1981 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1982 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1983 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1984 any(String.class), any());
1988 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
1989 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1990 GeneralBuildingBlock.class);
1991 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1992 ExecuteBuildingBlock.class);
1993 RequestDetails requestDetails = mapper
1994 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1995 requestDetails.getRequestParameters().setUserParams(null);
1996 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1997 aaiVnf.setModelCustomizationId("modelCustId");
1998 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1999 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2000 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2001 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2002 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2003 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2004 String resourceId = "123";
2005 String vnfType = "vnfType";
2006 Service service = Mockito.mock(Service.class);
2007 String requestAction = "deactivateInstance";
2008 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2009 requestAction, resourceId);
2010 doReturn(service).when(SPY_bbInputSetupUtils)
2011 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2012 String generatedId = "12131";
2013 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
2014 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2016 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
2017 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2018 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2019 requestAction, resourceId, vnfType);
2020 assertThat(actual, sameBeanAs(gBB));
2024 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
2025 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2026 GeneralBuildingBlock.class);
2027 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2028 ExecuteBuildingBlock.class);
2029 RequestDetails requestDetails = mapper
2030 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2031 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2032 requestDetails.getRequestParameters().setUserParams(null);
2033 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2034 aaiVnf.setModelCustomizationId("modelCustId");
2035 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2036 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2037 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2038 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2039 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2040 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2041 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2043 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2044 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2045 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2046 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2047 executeBB.setConfigurationResourceKeys(configResourceKeys);
2049 String resourceId = "123";
2050 String vnfType = "vnfType";
2051 Service service = Mockito.mock(Service.class);
2052 String requestAction = "createInstance";
2053 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2054 requestAction, resourceId);
2055 doReturn(null).when(SPY_bbInputSetupUtils)
2056 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
2057 doReturn(service).when(SPY_bbInputSetupUtils)
2058 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2059 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2060 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2061 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2062 networkCustList.add(networkCust);
2063 doReturn(networkCustList).when(service).getNetworkCustomizations();
2064 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2065 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2067 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2068 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2069 executeBB.getBuildingBlock().setIsVirtualLink(false);
2070 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2071 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2072 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2074 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2075 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2076 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2077 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2078 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2079 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2081 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2082 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2083 executeBB.getBuildingBlock().setIsVirtualLink(true);
2084 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2085 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2086 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2088 executeBB.getBuildingBlock().setBpmnFlowName("CreateNetworkBB");
2089 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2090 executeBB.getBuildingBlock().setIsVirtualLink(true);
2091 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2092 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2093 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2097 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2098 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2099 GeneralBuildingBlock.class);
2100 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2101 ExecuteBuildingBlock.class);
2102 RequestDetails requestDetails = mapper
2103 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2104 requestDetails.getRequestParameters().setUserParams(null);
2105 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2106 aaiVnf.setModelCustomizationId("modelCustId");
2107 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2108 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2109 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2110 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2111 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2112 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2113 String resourceId = "123";
2114 String vnfType = "vnfType";
2115 Service service = Mockito.mock(Service.class);
2116 String requestAction = "deleteInstance";
2117 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2118 requestAction, resourceId);
2119 doReturn(service).when(SPY_bbInputSetupUtils)
2120 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2121 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2123 CloudConfiguration cloudConfig = new CloudConfiguration();
2124 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2125 requestDetails.setCloudConfiguration(cloudConfig);
2126 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2127 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(),
2129 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2130 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2131 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2132 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2133 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2134 isA(CloudConfiguration.class));
2136 requestAction = "activateInstance";
2137 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2138 requestAction, resourceId);
2139 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2140 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2141 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2142 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2143 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2144 isA(CloudConfiguration.class));
2146 requestAction = "unassignInstance";
2147 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2148 requestAction, resourceId);
2149 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2150 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2151 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2152 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2153 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2154 isA(CloudConfiguration.class));
2156 requestAction = "activateFabricConfiguration";
2157 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2158 requestAction, resourceId);
2159 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2160 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2161 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2162 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2163 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2164 isA(CloudConfiguration.class));
2167 @Test(expected = IllegalArgumentException.class)
2168 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2169 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2170 GeneralBuildingBlock.class);
2171 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2172 ExecuteBuildingBlock.class);
2173 RequestDetails requestDetails = mapper
2174 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2175 requestDetails.getRequestParameters().setUserParams(null);
2176 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2177 aaiVnf.setModelCustomizationId("modelCustId");
2178 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2179 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2180 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2181 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2182 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2183 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2184 String resourceId = "123";
2185 String vnfType = "vnfType";
2186 Service service = Mockito.mock(Service.class);
2187 String requestAction = "assignInstance";
2188 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2189 requestAction, resourceId);
2190 doReturn(service).when(SPY_bbInputSetupUtils)
2191 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2192 String generatedId = "12131";
2193 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
2194 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2196 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
2197 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2198 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2201 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2202 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2203 GeneralBuildingBlock.class);
2204 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2205 ExecuteBuildingBlock.class);
2206 RequestDetails requestDetails = mapper
2207 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2208 requestDetails.getRequestParameters().setUserParams(null);
2209 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2210 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2211 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2212 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2213 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2214 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2215 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2216 Service service = Mockito.mock(Service.class);
2217 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2218 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2219 String requestAction = "unassignInstance";
2221 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2222 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2223 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2224 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2225 executeBB.setConfigurationResourceKeys(configResourceKeys);
2227 L3Network network = new L3Network();
2228 network.setNetworkId("networkId");
2229 gBB.getServiceInstance().getNetworks().add(network);
2230 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2231 aaiNetwork.setModelCustomizationId("modelCustId");
2232 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2233 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2234 any(Service.class));
2236 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2237 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2238 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2239 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2240 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2241 any(Service.class));
2243 GenericVnf vnf = new GenericVnf();
2244 vnf.setVnfId("vnfId");
2245 gBB.getServiceInstance().getVnfs().add(vnf);
2246 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2247 aaiVnf.setModelCustomizationId("modelCustId");
2248 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2249 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2250 any(Service.class));
2252 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2253 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2254 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2255 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2256 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2257 any(Service.class));
2259 VfModule vfModule = new VfModule();
2260 vfModule.setVfModuleId("vfModuleId");
2261 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2262 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2263 aaiVfModule.setModelCustomizationId("modelCustId");
2264 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2266 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2267 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2268 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2269 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2270 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2271 any(Service.class));
2272 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2273 any(Service.class), any(String.class));
2275 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2276 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(),
2278 VolumeGroup volumeGroup = new VolumeGroup();
2279 volumeGroup.setVolumeGroupId("volumeGroupId");
2280 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2281 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2282 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2283 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup("att-aic",
2284 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2286 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2287 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2288 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2289 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2290 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2291 any(Service.class));
2292 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2293 isA(Service.class), isA(String.class));
2295 Configuration configuration = new Configuration();
2296 configuration.setConfigurationId("configurationId");
2297 gBB.getServiceInstance().getConfigurations().add(configuration);
2298 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2299 aaiConfiguration.setModelCustomizationId("modelCustId");
2300 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2301 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2303 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2304 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2305 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2306 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2307 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2308 any(Service.class), isA(ConfigurationResourceKeys.class));
2312 public void testGetVnfId() {
2313 String expected = "vnfId";
2314 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2315 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2316 executeBB.setRequestId("requestId");
2317 InfraActiveRequests request = new InfraActiveRequests();
2318 request.setVnfId(expected);
2319 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2321 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2323 assertEquals("VnfId is set correctly", expected, actual);
2327 public void testCreateVfModule() {
2328 String vfModuleId = "vfModuleId";
2329 String instanceName = "vfModuleName";
2330 Map<String, String> cloudParams = new HashMap<>();
2331 cloudParams.put("param1", "param1Value");
2332 VfModule expected = new VfModule();
2333 expected.setVfModuleId(vfModuleId);
2334 expected.setVfModuleName(instanceName);
2335 expected.setCloudParams(cloudParams);
2336 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2337 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2338 List<Map<String, String>> instanceParams = new ArrayList<>();
2339 instanceParams.add(cloudParams);
2341 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2343 assertThat(actual, sameBeanAs(expected));
2344 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2346 expected.getCloudParams().clear();
2347 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2348 assertThat(actual, sameBeanAs(expected));
2352 public void testCreateVolumeGroup() {
2353 String volumeGroupId = "volumeGroupId";
2354 String instanceName = "vfModuleName";
2355 String vnfType = "vnfType";
2356 Map<String, String> cloudParams = new HashMap<>();
2357 cloudParams.put("param1", "param1Value");
2358 VolumeGroup expected = new VolumeGroup();
2359 expected.setVolumeGroupId(volumeGroupId);
2360 expected.setVolumeGroupName(instanceName);
2361 expected.setCloudParams(cloudParams);
2362 expected.setVnfType(vnfType);
2363 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2364 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2365 List<Map<String, String>> instanceParams = new ArrayList<>();
2366 instanceParams.add(cloudParams);
2368 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2370 assertThat(actual, sameBeanAs(expected));
2371 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2373 expected.getCloudParams().clear();
2374 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2375 assertThat(actual, sameBeanAs(expected));
2379 public void testCreateNetwork() {
2380 String networkId = "networkId";
2381 String instanceName = "networkName";
2382 Map<String, String> cloudParams = new HashMap<>();
2383 cloudParams.put("param1", "param1Value");
2384 L3Network expected = new L3Network();
2385 expected.setNetworkId(networkId);
2386 expected.setNetworkName(instanceName);
2387 expected.setCloudParams(cloudParams);
2388 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2389 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2390 List<Map<String, String>> instanceParams = new ArrayList<>();
2391 instanceParams.add(cloudParams);
2392 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2394 assertThat(actual, sameBeanAs(expected));
2395 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2397 expected.getCloudParams().clear();
2398 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2399 assertThat(actual, sameBeanAs(expected));
2403 public void testCreateGenericVnf() {
2404 String vnfId = "vnfId";
2405 String instanceName = "vnfName";
2406 String vnfType = "vnfType";
2407 String platformName = "platformName";
2408 String lineOfBusinessName = "lineOfBusinessName";
2409 Platform platform = new Platform();
2410 platform.setPlatformName(platformName);
2411 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2412 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2413 Map<String, String> cloudParams = new HashMap<>();
2414 cloudParams.put("param1", "param1Value");
2415 GenericVnf expected = new GenericVnf();
2416 expected.setVnfId(vnfId);
2417 expected.setVnfName(instanceName);
2418 expected.setVnfType(vnfType);
2419 expected.setCloudParams(cloudParams);
2420 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2421 expected.setPlatform(platform);
2422 expected.setLineOfBusiness(lineOfBusiness);
2423 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2424 List<Map<String, String>> instanceParams = new ArrayList<>();
2425 instanceParams.add(cloudParams);
2426 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2427 platform.setPlatformName(platformName);
2428 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2429 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2431 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2432 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2434 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2436 assertThat(actual, sameBeanAs(expected));
2437 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2439 expected.getCloudParams().clear();
2440 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2441 assertThat(actual, sameBeanAs(expected));
2445 public void testMapCatalogVfModule() {
2446 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2447 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2448 VfModule vfModule = new VfModule();
2449 ModelInfo modelInfo = new ModelInfo();
2450 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2451 Service service = new Service();
2452 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2453 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2454 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2455 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2456 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2457 service.getVnfCustomizations().add(vnfResourceCust);
2458 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2460 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2462 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2464 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2466 modelInfo.setModelCustomizationUuid(null);
2467 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2469 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2471 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2475 public void testPopulateVfModule() throws Exception {
2476 String vnfId = "vnfId";
2477 String vfModuleId = "vfModuleId";
2478 String volumeGroupId = "volumeGroupId";
2479 String vfModuleCustomizationId = "vfModuleCustomizationId";
2480 ModelInfo modelInfo = new ModelInfo();
2481 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2482 Service service = new Service();
2483 String bbName = AssignFlows.VF_MODULE.toString();
2484 ServiceInstance serviceInstance = new ServiceInstance();
2485 GenericVnf vnf = new GenericVnf();
2486 vnf.setVnfId(vnfId);
2487 VolumeGroup volumeGroup = new VolumeGroup();
2488 volumeGroup.setVolumeGroupId(volumeGroupId);
2489 vnf.getVolumeGroups().add(volumeGroup);
2490 serviceInstance.getVnfs().add(vnf);
2491 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2492 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2493 String resourceId = vfModuleId;
2494 RelatedInstanceList[] relatedInstanceList = null;
2495 String instanceName = "vfModuleName";
2496 List<Map<String, String>> instanceParams = null;
2497 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2499 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2500 vnfAAI.setModelCustomizationId("vnfModelCustId");
2501 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2502 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2504 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2505 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2506 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2507 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2508 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2510 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2511 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2513 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2514 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));