2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 - 2018 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.infrastructure.aai;
 
  23 import static org.junit.Assert.assertEquals;
 
  24 import static org.junit.Assert.assertTrue;
 
  25 import static org.mockito.ArgumentMatchers.isA;
 
  26 import static org.mockito.Mockito.doNothing;
 
  27 import static org.mockito.Mockito.doReturn;
 
  28 import static org.mockito.Mockito.doThrow;
 
  29 import static org.mockito.Mockito.times;
 
  30 import static org.mockito.Mockito.verify;
 
  31 import java.util.HashMap;
 
  32 import java.util.Optional;
 
  33 import org.junit.Before;
 
  34 import org.junit.Test;
 
  35 import org.junit.runner.RunWith;
 
  36 import org.mockito.Spy;
 
  37 import org.mockito.junit.MockitoJUnitRunner;
 
  38 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 
  39 import org.onap.so.client.aai.AAIObjectType;
 
  40 import org.onap.so.client.aai.AAIResourcesClient;
 
  41 import org.onap.so.client.aai.entities.AAIResultWrapper;
 
  42 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 
  43 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 
  45 @RunWith(MockitoJUnitRunner.class)
 
  46 public class AAICreateResourcesTest {
 
  48     private AAICreateResources aaiCreateResources;
 
  50     private String projectName;
 
  51     private String serviceInstanceId;
 
  52     private String owningEntityId;
 
  53     private String owningEntityName;
 
  54     private String platformName;
 
  56     private String lineOfBusiness;
 
  57     private String globalCustomerId;
 
  58     private String serviceType;
 
  61     private AAIResourcesClient aaiResourcesClient;
 
  64     public void before() {
 
  67         aaiCreateResources = new AAICreateResources();
 
  68         aaiCreateResources.setAaiClient(aaiResourcesClient);
 
  70         projectName = "projectName";
 
  71         serviceInstanceId = "serviceInstanceId";
 
  72         owningEntityId = "owningEntityId";
 
  73         owningEntityName = "owningEntityName";
 
  74         platformName = "platformName";
 
  76         lineOfBusiness = "lineOfBusiness";
 
  77         globalCustomerId = "globalCustomerId";
 
  78         serviceType = "serviceType";
 
  82     public void createAAIProjectTest() {
 
  83         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
 
  85         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
  88         aaiCreateResources.createAAIProject(projectName, serviceInstanceId);
 
  90         AAIResourceUri projectURI = AAIUriFactory.createResourceUri(AAIObjectType.PROJECT, projectName);
 
  92         verify(aaiResourcesClient, times(1)).createIfNotExists(projectURI, Optional.empty());
 
  93         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
  97     public void createAAIOwningEntityTest() {
 
  98         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
 
 100         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
 102         aaiCreateResources.createAAIOwningEntity(owningEntityId, owningEntityName, serviceInstanceId);
 
 104         HashMap<String, String> owningEntityMap = new HashMap<>();
 
 105         owningEntityMap.put("owning-entity-name", owningEntityName);
 
 106         AAIResourceUri owningEntityURI = AAIUriFactory.createResourceUri(AAIObjectType.OWNING_ENTITY, owningEntityId);
 
 108         verify(aaiResourcesClient, times(1)).createIfNotExists(owningEntityURI, Optional.of(owningEntityMap));
 
 109         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
 113     public void existsOwningEntityTest() {
 
 114         doReturn(true).when(aaiResourcesClient).exists(isA(AAIResourceUri.class));
 
 116         boolean expectedBoolean = aaiCreateResources.existsOwningEntity(owningEntityId);
 
 118         AAIResourceUri owningEntityURI = AAIUriFactory.createResourceUri(AAIObjectType.OWNING_ENTITY, owningEntityId);
 
 120         verify(aaiResourcesClient, times(1)).exists(owningEntityURI);
 
 121         assertTrue(expectedBoolean);
 
 125     public void connectOwningEntityandServiceInstanceTest() {
 
 126         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
 128         aaiCreateResources.connectOwningEntityandServiceInstance(owningEntityId, serviceInstanceId);
 
 130         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
 134     public void createAAIPlatformTest() {
 
 135         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
 
 136                 isA(Optional.class));
 
 137         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
 139         aaiCreateResources.createAAIPlatform(platformName, vnfId);
 
 141         AAIResourceUri platformURI = AAIUriFactory.createResourceUri(AAIObjectType.PLATFORM, platformName);
 
 143         verify(aaiResourcesClient, times(1)).createIfNotExists(platformURI, Optional.empty());
 
 144         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
 148     public void createAAILineOfBusinessTest() {
 
 149         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
 
 150                 isA(Optional.class));
 
 151         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
 153         aaiCreateResources.createAAILineOfBusiness(lineOfBusiness, vnfId);
 
 155         AAIResourceUri lineOfBusinessURI =
 
 156                 AAIUriFactory.createResourceUri(AAIObjectType.LINE_OF_BUSINESS, lineOfBusiness);
 
 158         verify(aaiResourcesClient, times(1)).createIfNotExists(lineOfBusinessURI, Optional.empty());
 
 159         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
 
 163     public void createAAIServiceInstanceTest() {
 
 164         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
 
 165                 isA(Optional.class));
 
 167         aaiCreateResources.createAAIServiceInstance(globalCustomerId, serviceType, serviceInstanceId);
 
 169         AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
 
 170                 globalCustomerId, serviceType, serviceInstanceId);
 
 172         verify(aaiResourcesClient, times(1)).createIfNotExists(serviceInstanceURI, Optional.empty());
 
 176     public void getVnfInstanceTest() {
 
 177         AAIResultWrapper aaiResultWrapper = new AAIResultWrapper("vnfUriAaiResponse");
 
 179         doReturn(aaiResultWrapper).when(aaiResourcesClient).get(isA(AAIResourceUri.class));
 
 181         Optional<GenericVnf> actualVnf = aaiCreateResources.getVnfInstance(vnfId);
 
 183         AAIResourceUri vnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
 
 185         verify(aaiResourcesClient, times(1)).get(vnfURI);
 
 186         assertEquals(actualVnf, aaiResultWrapper.asBean(GenericVnf.class));
 
 190     public void getVnfInstanceExceptionTest() {
 
 191         doThrow(RuntimeException.class).when(aaiResourcesClient).get(isA(AAIResourceUri.class));
 
 193         Optional<GenericVnf> actualVnf = aaiCreateResources.getVnfInstance(vnfId);
 
 195         AAIResourceUri vnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
 
 197         verify(aaiResourcesClient, times(1)).get(vnfURI);
 
 198         assertEquals(actualVnf, Optional.empty());