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.assertNull;
27 import static org.mockito.ArgumentMatchers.any;
28 import static org.mockito.ArgumentMatchers.eq;
29 import static org.mockito.ArgumentMatchers.isA;
30 import static org.mockito.Mockito.doReturn;
31 import static org.mockito.Mockito.times;
32 import static org.mockito.Mockito.verify;
35 import java.io.IOException;
36 import java.util.Arrays;
37 import java.util.List;
38 import java.util.Optional;
40 import org.junit.Before;
41 import org.junit.Rule;
42 import org.junit.Test;
43 import org.junit.rules.ExpectedException;
44 import org.junit.runner.RunWith;
45 import org.mockito.InjectMocks;
46 import org.mockito.Mock;
47 import org.mockito.Mockito;
48 import org.mockito.junit.MockitoJUnitRunner;
49 import org.onap.aai.domain.yang.CloudRegion;
50 import org.onap.aai.domain.yang.Configuration;
51 import org.onap.aai.domain.yang.GenericVnf;
52 import org.onap.aai.domain.yang.GenericVnfs;
53 import org.onap.aai.domain.yang.L3Network;
54 import org.onap.aai.domain.yang.L3Networks;
55 import org.onap.aai.domain.yang.ServiceInstance;
56 import org.onap.aai.domain.yang.ServiceInstances;
57 import org.onap.aai.domain.yang.VolumeGroup;
58 import org.onap.aai.domain.yang.VolumeGroups;
59 import org.onap.so.bpmn.common.InjectionHelper;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
62 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.MultipleObjectsFoundException;
63 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
64 import org.onap.so.client.aai.AAIObjectPlurals;
65 import org.onap.so.client.aai.AAIObjectType;
66 import org.onap.so.client.aai.AAIResourcesClient;
67 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
68 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
69 import org.onap.so.client.graphinventory.entities.uri.Depth;
71 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
72 import org.onap.so.db.catalog.beans.Service;
73 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
74 import org.onap.so.db.catalog.client.CatalogDbClient;
75 import org.onap.so.db.request.beans.InfraActiveRequests;
76 import org.onap.so.db.request.client.RequestsDbClient;
77 import org.onap.so.serviceinstancebeans.CloudConfiguration;
78 import org.onap.so.serviceinstancebeans.ModelInfo;
79 import org.onap.so.serviceinstancebeans.RequestDetails;
81 import com.fasterxml.jackson.core.JsonParseException;
82 import com.fasterxml.jackson.databind.JsonMappingException;
83 import com.fasterxml.jackson.databind.ObjectMapper;
85 @RunWith(MockitoJUnitRunner.class)
86 public class BBInputSetupUtilsTest {
87 protected ObjectMapper mapper = new ObjectMapper();
88 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
91 BBInputSetupUtils bbInputSetupUtils = new BBInputSetupUtils();
94 protected CatalogDbClient MOCK_catalogDbClient;
97 protected RequestsDbClient MOCK_requestsDbClient;
100 protected AAIResourcesClient MOCK_aaiResourcesClient;
103 protected InjectionHelper MOCK_injectionHelper;
106 public ExpectedException expectedException = ExpectedException.none();
110 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
114 public void testGetCatalogServiceByModelUUID() throws JsonParseException, JsonMappingException, IOException {
115 Service expected = mapper.readValue(
116 new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
118 RequestDetails requestDetails = new RequestDetails();
119 ModelInfo modelInfo = new ModelInfo();
120 modelInfo.setModelVersionId("modelUUID");
121 requestDetails.setModelInfo(modelInfo);
122 doReturn(expected).when(MOCK_catalogDbClient).getServiceByID("modelUUID");
123 Service actual = bbInputSetupUtils.getCatalogServiceByModelUUID(modelInfo.getModelVersionId());
125 assertThat(actual, sameBeanAs(expected));
129 public void testGetCatalogServiceByModelVersionAndModelInvariantUUID() throws JsonParseException, JsonMappingException, IOException {
130 String modelVersion = "modelVersion";
131 String modelInvariantUUID = "modelInvariantUUID";
132 Service expectedService = mapper.readValue(
133 new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
135 doReturn(expectedService).when(MOCK_catalogDbClient).getServiceByModelVersionAndModelInvariantUUID(isA(String.class), isA(String.class));
137 Service actualService = bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion, modelInvariantUUID);
139 assertThat(actualService, sameBeanAs(expectedService));
143 public void testGetVnfcInstanceGroups() throws JsonParseException, JsonMappingException, IOException {
144 VnfcInstanceGroupCustomization vnfc = mapper.readValue(
145 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
146 String modelCustomizationUUID = "modelCustomizationUUID";
148 doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient).getVnfcInstanceGroupsByVnfResourceCust(isA(String.class));
150 List<VnfcInstanceGroupCustomization> actualVnfcList = bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID);
152 assertThat(actualVnfcList, sameBeanAs(Arrays.asList(vnfc)));
156 public void testGetRequestDetails() throws JsonParseException, JsonMappingException, IOException {
157 InfraActiveRequests infraActiveRequest = mapper.readValue(
158 new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"),
159 InfraActiveRequests.class);
161 RequestDetails expected = mapper.readValue(
162 new File(RESOURCE_PATH + "RequestDetailsExpected.json"),
163 RequestDetails.class);
164 String requestId = "requestId";
165 doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
166 RequestDetails actual = bbInputSetupUtils.getRequestDetails(requestId);
168 assertThat(actual, sameBeanAs(expected));
172 public void getRequestDetailsNullTest() throws IOException {
173 RequestDetails requestDetails = bbInputSetupUtils.getRequestDetails("");
175 assertNull(requestDetails);
179 public void testGetCloudRegion() {
180 CloudConfiguration cloudConfig = new CloudConfiguration();
181 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
182 Optional<org.onap.aai.domain.yang.CloudRegion> expected = Optional.of(new org.onap.aai.domain.yang.CloudRegion());
183 expected.get().setCloudOwner("cloudOwner");
184 expected.get().setCloudRegionId("lcpCloudRegionId");
185 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.CloudRegion.class,
186 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
187 cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
189 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
190 cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO);
191 bbInputSetupUtils.getCloudRegion(cloudConfig);
193 verify(MOCK_aaiResourcesClient, times(1)).get(CloudRegion.class, expectedUri);
197 public void testGetCloudRegionExceptionTest() {
199 CloudConfiguration cloudConfig = new CloudConfiguration();
200 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
202 RequestDetails requestDetails = new RequestDetails();
203 requestDetails.setCloudConfiguration(cloudConfig);
205 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
207 CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
209 assertNull(cloudRegion);
213 public void testGetCloudRegionEmptyId() {
214 CloudConfiguration cloudConfig = new CloudConfiguration();
215 cloudConfig.setLcpCloudRegionId("");
217 RequestDetails requestDetails = new RequestDetails();
218 requestDetails.setCloudConfiguration(cloudConfig);
220 CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
222 assertNull(cloudRegion);
226 public void testGetCloudRegionEmptyConfiguration() {
227 RequestDetails requestDetails = new RequestDetails();
229 CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(requestDetails.getCloudConfiguration());
231 assertNull(cloudRegion);
235 public void testGetAAIInstanceGroup() {
236 Optional<org.onap.aai.domain.yang.InstanceGroup> expected = Optional.of(new org.onap.aai.domain.yang.InstanceGroup());
237 String instanceGroupId = "instanceGroupId";
238 expected.get().setId(instanceGroupId);
239 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
240 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
241 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId);
243 bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
244 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.InstanceGroup.class, expectedUri);
248 public void testGetAAIInstanceGroupThrowNotFound() {
249 String instanceGroupId = "instanceGroupId";
250 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
251 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
252 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
254 org.onap.aai.domain.yang.InstanceGroup actual = bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
260 public void testGetAAICustomer() {
261 Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
262 String globalSubscriberId = "globalSubscriberId";
263 expected.get().setGlobalCustomerId(globalSubscriberId);
264 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
265 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
266 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId);
268 bbInputSetupUtils.getAAICustomer(globalSubscriberId);
269 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Customer.class, expectedUri);
273 public void testGetAAICustomerThrowNotFound() {
274 String globalSubscriberId = "globalSubscriberId";
275 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
276 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
277 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
279 org.onap.aai.domain.yang.Customer actual = bbInputSetupUtils.getAAICustomer(globalSubscriberId);
285 public void testGetAAIServiceSubscription() {
286 Optional<org.onap.aai.domain.yang.ServiceSubscription> expected = Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
287 String globalSubscriberId = "globalSubscriberId";
288 String subscriptionServiceType = "subscriptionServiceType";
289 expected.get().setServiceType(subscriptionServiceType);
290 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
291 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
292 subscriptionServiceType));
293 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
294 subscriptionServiceType);
296 bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
297 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceSubscription.class, expectedUri);
301 public void testGetAAIServiceSubscriptionErrors() {
302 String globalSubId = null;
303 String subServiceType = null;
304 org.onap.aai.domain.yang.ServiceSubscription actual = bbInputSetupUtils.getAAIServiceSubscription(globalSubId, subServiceType);
307 String globalSubId2 = "";
308 String subServiceType2 = "";
309 org.onap.aai.domain.yang.ServiceSubscription actual2 = bbInputSetupUtils.getAAIServiceSubscription(globalSubId2, subServiceType2);
312 String globalSubId3 = "";
313 String subServiceType3 = null;
314 org.onap.aai.domain.yang.ServiceSubscription actual3 = bbInputSetupUtils.getAAIServiceSubscription(globalSubId3, subServiceType3);
317 String globalSubId4 = null;
318 String subServiceType4 = "";
319 org.onap.aai.domain.yang.ServiceSubscription actual4 = bbInputSetupUtils.getAAIServiceSubscription(globalSubId4, subServiceType4);
324 public void testGetAAIServiceSubscriptionThrowNotFound() {
325 String globalSubscriberId = "globalSubscriberId";
326 String subscriptionServiceType = "subscriptionServiceType";
327 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
328 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient)
329 .get(org.onap.aai.domain.yang.ServiceSubscription.class, AAIUriFactory.createResourceUri(
330 AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId, subscriptionServiceType));
331 org.onap.aai.domain.yang.ServiceSubscription actual = bbInputSetupUtils
332 .getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
337 public void testGetAAIServiceInstanceById() {
338 String serviceInstanceId = "serviceInstanceId";
340 ServiceInstance expectedServiceInstance = new ServiceInstance();
342 doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
344 ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
346 assertThat(actualServiceInstance, sameBeanAs(expectedServiceInstance));
350 public void testGetAAIServiceInstanceByIdThrowNotFound() {
351 String serviceInstanceId = "serviceInstanceId";
353 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
355 ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
357 assertNull(actualServiceInstance);
361 public void testGetAAIServiceInstanceByIdAndCustomer() {
362 String globalCustomerId = "globalCustomerId";
363 String serviceType = "serviceType";
364 String serviceInstanceId = "serviceInstanceId";
365 ServiceInstance expected = new ServiceInstance();
366 expected.setServiceInstanceId(serviceInstanceId);
367 doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
368 isA(AAIResourceUri.class));
369 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(
370 AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId).depth(Depth.TWO);
371 this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType, serviceInstanceId);
373 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstance.class, expectedUri);
378 public void testGetAAIServiceInstanceByIdAndCustomerThrowNotFound() {
379 String globalCustomerId = "globalCustomerId";
380 String serviceType = "serviceType";
381 String serviceInstanceId = "serviceInstanceId";
383 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
384 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class),
385 isA(AAIResourceUri.class));
386 ServiceInstance actual = this.bbInputSetupUtils
387 .getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType, serviceInstanceId);
393 public void testGetAAIServiceInstanceByName() throws Exception {
394 String serviceInstanceName = "serviceInstanceName";
396 ServiceInstance expectedServiceInstance = new ServiceInstance();
397 expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
399 ServiceSubscription serviceSubscription = new ServiceSubscription();
400 serviceSubscription.setServiceType("serviceType");
402 Customer customer = new Customer();
403 customer.setGlobalCustomerId("globalCustomerId");
404 customer.setServiceSubscription(serviceSubscription);
406 ServiceInstances serviceInstances = new ServiceInstances();
407 serviceInstances.getServiceInstance().add(expectedServiceInstance);
409 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
410 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, customer.getGlobalCustomerId(),
411 customer.getServiceSubscription().getServiceType())
412 .queryParam("service-instance-name", serviceInstanceName).depth(Depth.TWO);
413 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
415 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstances.class, expectedUri);
419 public void testGetAAIServiceInstanceByNameException() throws Exception {
420 expectedException.expect(Exception.class);
422 String serviceInstanceName = "serviceInstanceName";
424 ServiceInstance serviceInstance = new ServiceInstance();
425 serviceInstance.setServiceInstanceId("serviceInstanceId");
427 ServiceSubscription serviceSubscription = new ServiceSubscription();
428 serviceSubscription.setServiceType("serviceType");
430 Customer customer = new Customer();
431 customer.setGlobalCustomerId("globalCustomerId");
432 customer.setServiceSubscription(serviceSubscription);
434 ServiceInstances serviceInstances = new ServiceInstances();
435 serviceInstances.getServiceInstance().add(serviceInstance);
436 serviceInstances.getServiceInstance().add(serviceInstance);
438 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
440 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
444 public void testGetAAIServiceInstanceByNameNull() throws Exception {
445 String serviceInstanceName = "serviceInstanceName";
447 ServiceInstance serviceInstance = new ServiceInstance();
448 serviceInstance.setServiceInstanceId("serviceInstanceId");
450 ServiceSubscription serviceSubscription = new ServiceSubscription();
451 serviceSubscription.setServiceType("serviceType");
453 Customer customer = new Customer();
454 customer.setGlobalCustomerId("globalCustomerId");
455 customer.setServiceSubscription(serviceSubscription);
457 ServiceInstances serviceInstances = new ServiceInstances();
458 serviceInstances.getServiceInstance().add(serviceInstance);
459 serviceInstances.getServiceInstance().add(serviceInstance);
461 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
463 ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
465 assertNull(actualServiceInstance);
469 public void testGetOptionalAAIServiceInstanceByNameException() throws Exception {
470 expectedException.expect(Exception.class);
472 String globalCustomerId = "globalCustomerId";
473 String serviceType = "serviceType";
474 String serviceInstanceId = "serviceInstanceId";
476 ServiceInstance serviceInstance = new ServiceInstance();
477 serviceInstance.setServiceInstanceId("serviceInstanceId");
478 serviceInstance.setServiceType(serviceType);
479 serviceInstance.setServiceInstanceName("serviceInstanceName");
481 ServiceInstances serviceInstances = new ServiceInstances();
482 serviceInstances.getServiceInstance().add(serviceInstance);
483 serviceInstances.getServiceInstance().add(serviceInstance);
485 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
487 bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
491 public void testGetOptionalAAIServiceInstanceByNameNull() throws Exception {
492 String globalCustomerId = "globalCustomerId";
493 String serviceType = "serviceType";
494 String serviceInstanceId = "serviceInstanceId";
496 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
497 Optional<ServiceInstance> actual = this.bbInputSetupUtils
498 .getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
500 assertThat(actual, sameBeanAs(Optional.empty()));
504 public void testGetCatalogInstanceGroup() throws JsonParseException, JsonMappingException, IOException {
505 String modelUUID = "modelUUID";
507 org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
508 new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
510 doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(isA(String.class));
512 org.onap.so.db.catalog.beans.InstanceGroup actualInstanceGroup = bbInputSetupUtils.getCatalogInstanceGroup(modelUUID);
514 assertThat(actualInstanceGroup, sameBeanAs(expectedInstanceGroup));
518 public void testGetCollectionResourceInstanceGroupCustomization() {
519 String modelCustomizationUUID = "modelCustomizationUUID";
521 CollectionResourceInstanceGroupCustomization expectedCollection = new CollectionResourceInstanceGroupCustomization();
523 doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
524 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
526 List<CollectionResourceInstanceGroupCustomization> actualCollection = bbInputSetupUtils
527 .getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID);
529 assertThat(actualCollection, sameBeanAs(Arrays.asList(expectedCollection)));
533 public void testGetAAIGenericVnf() throws JsonParseException, JsonMappingException, IOException {
534 String vnfId = "vnfId";
536 GenericVnf expectedAaiVnf = mapper.readValue(
537 new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
539 doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
540 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE);
541 GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
543 assertThat(actualAaiVnf, sameBeanAs(expectedAaiVnf));
545 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.GenericVnf.class, expectedUri);
549 public void testGetAAIConfiguration() throws JsonParseException, JsonMappingException, IOException {
550 String configurationId = "configurationId";
552 Configuration expectedAaiConfiguration = mapper.readValue(
553 new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
555 doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
556 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId).depth(Depth.ONE);
557 bbInputSetupUtils.getAAIConfiguration(configurationId);
559 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Configuration.class, expectedUri);
563 public void testGetAAIGenericVnfThrowNotFound() throws JsonParseException, JsonMappingException, IOException {
564 String vnfId = "vnfId";
566 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
568 GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
570 assertNull(actualAaiVnf);
574 public void testGetAAIResourceDepthOne() {
575 String vnfId = "vnfId";
576 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
577 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
578 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
579 bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
581 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
582 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
586 public void testGetAAIResourceDepthTwo() {
587 String vnfId = "vnfId";
588 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
589 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
590 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
591 bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
593 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
594 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
598 public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
599 Optional<L3Networks> expected = Optional.of(new L3Networks());
600 L3Network network = new L3Network();
601 network.setNetworkId("id123");
602 network.setNetworkName("name123");
603 expected.get().getL3Network().add(network);
604 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
605 Optional<L3Network> actual = this.bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance("id123", "name123");
606 assertEquals(actual.get().getNetworkId(), expected.get().getL3Network().get(0).getNetworkId());
610 public void getRelatedNetworkByNameFromServiceInstanceMultipleNetworksExceptionTest() throws Exception {
611 expectedException.expect(Exception.class);
613 String serviceInstanceId = "serviceInstanceId";
614 String networkName = "networkName";
616 L3Network network = new L3Network();
617 network.setNetworkId("id123");
618 network.setNetworkName("name123");
620 L3Networks expected = new L3Networks();
621 expected.getL3Network().add(network);
622 expected.getL3Network().add(network);
624 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
626 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
630 public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
631 String serviceInstanceId = "serviceInstanceId";
632 String networkName = "networkName";
634 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
636 Optional<L3Network> actualNetwork = bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
638 assertEquals(Optional.empty(), actualNetwork);
642 public void getRelatedServiceInstanceFromInstanceGroupTest() throws Exception {
643 Optional<ServiceInstances> expected = Optional.of(new ServiceInstances());
644 ServiceInstance serviceInstance = new ServiceInstance();
645 serviceInstance.setServiceInstanceId("serviceInstanceId");
646 serviceInstance.setServiceInstanceName("serviceInstanceName");
647 expected.get().getServiceInstance().add(serviceInstance);
649 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
650 Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
651 assertEquals(actual.get().getServiceInstanceId(), expected.get().getServiceInstance().get(0).getServiceInstanceId());
655 public void getRelatedServiceInstanceFromInstanceGroupMultipleTest() throws Exception {
656 expectedException.expect(MultipleObjectsFoundException.class);
657 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
658 ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
659 ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
660 serviceInstances.get().getServiceInstance().add(si1);
661 serviceInstances.get().getServiceInstance().add(si2);
663 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
664 this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
668 public void getRelatedServiceInstanceFromInstanceGroupNotFoundTest() throws Exception {
669 expectedException.expect(NoServiceInstanceFoundException.class);
670 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
672 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
673 this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
677 public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
678 Optional<GenericVnfs> expected = Optional.of(new GenericVnfs());
679 GenericVnf vnf = new GenericVnf();
680 vnf.setVnfId("id123");
681 vnf.setVnfName("name123");
682 expected.get().getGenericVnf().add(vnf);
683 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
684 Optional<GenericVnf> actual = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance("id123", "name123");
685 assertEquals(actual.get().getVnfId(), expected.get().getGenericVnf().get(0).getVnfId());
689 public void getRelatedVnfByNameFromServiceInstanceMultipleVnfsExceptionTest() throws Exception {
690 expectedException.expect(Exception.class);
692 String serviceInstanceId = "serviceInstanceId";
693 String vnfName = "vnfName";
695 GenericVnf vnf = new GenericVnf();
696 vnf.setVnfId("id123");
697 vnf.setVnfName("name123");
699 GenericVnfs expectedVnf = new GenericVnfs();
700 expectedVnf.getGenericVnf().add(vnf);
701 expectedVnf.getGenericVnf().add(vnf);
703 doReturn(expectedVnf).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
705 bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
709 public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
710 String serviceInstanceId = "serviceInstanceId";
711 String vnfName = "vnfName";
713 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
715 Optional<GenericVnf> actualVnf = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
717 assertEquals(actualVnf, Optional.empty());
721 public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
722 Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
723 VolumeGroup volumeGroup = new VolumeGroup();
724 volumeGroup.setVolumeGroupId("id123");
725 volumeGroup.setVolumeGroupName("name123");
726 expected.get().getVolumeGroup().add(volumeGroup);
727 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
728 Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123");
729 assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
733 public void getRelatedVolumeGroupByNameFromVnfMultipleVolumeGroupsExceptionTest() throws Exception {
734 expectedException.expect(Exception.class);
736 String vnfId = "vnfId";
737 String volumeGroupName = "volumeGroupName";
739 VolumeGroup volumeGroup = new VolumeGroup();
740 volumeGroup.setVolumeGroupId("id123");
741 volumeGroup.setVolumeGroupName("name123");
743 VolumeGroups expectedVolumeGroup = new VolumeGroups();
744 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
745 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
747 doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
749 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
753 public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
754 String vnfId = "vnfId";
755 String volumeGroupName = "volumeGroupName";
757 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
759 Optional<VolumeGroup> actualVolumeGroup = bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
761 assertEquals(actualVolumeGroup, Optional.empty());
765 public void getRelatedVolumeGroupByNameFromVfModuleTest() throws Exception {
766 Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
767 VolumeGroup volumeGroup = new VolumeGroup();
768 volumeGroup.setVolumeGroupId("id123");
769 volumeGroup.setVolumeGroupName("name123");
770 expected.get().getVolumeGroup().add(volumeGroup);
771 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
772 Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "name123");
773 assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
777 public void getRelatedVolumeGroupByNameFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
778 expectedException.expect(Exception.class);
780 String vnfId = "vnfId";
781 String volumeGroupId = "volumeGroupId";
782 String volumeGroupName = "volumeGroupName";
784 VolumeGroup volumeGroup = new VolumeGroup();
785 volumeGroup.setVolumeGroupId("id123");
786 volumeGroup.setVolumeGroupName("name123");
788 VolumeGroups expectedVolumeGroup = new VolumeGroups();
789 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
790 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
792 doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
794 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
798 public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
799 String vnfId = "vnfId";
800 String volumeGroupId = "volumeGroupId";
801 String volumeGroupName = "volumeGroupName";
803 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
805 Optional<VolumeGroup> actualVolumeGroup = bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
807 assertEquals(actualVolumeGroup, Optional.empty());