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.client.orchestration;
23 import static org.junit.Assert.assertEquals;
24 import static org.mockito.ArgumentMatchers.any;
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;
32 import java.util.Optional;
34 import org.junit.Before;
35 import org.junit.Ignore;
36 import org.junit.Test;
37 import org.junit.runner.RunWith;
38 import org.mockito.InjectMocks;
39 import org.mockito.Mock;
40 import org.mockito.junit.MockitoJUnitRunner;
41 import org.onap.so.bpmn.common.data.TestDataSetup;
42 import org.onap.so.bpmn.common.InjectionHelper;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
46 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
47 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
48 import org.onap.so.client.aai.AAIResourcesClient;
49 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
50 import org.onap.so.client.aai.mapper.AAIObjectMapper;
51 import org.onap.so.db.catalog.beans.OrchestrationStatus;
53 @RunWith(MockitoJUnitRunner.Silent.class)
54 public class AAIServiceInstanceResourcesTest extends TestDataSetup{
57 private AAIServiceInstanceResources aaiServiceInstanceResources = new AAIServiceInstanceResources();
60 protected AAIResourcesClient MOCK_aaiResourcesClient;
63 protected AAIObjectMapper MOCK_aaiObjectMapper;
66 protected InjectionHelper MOCK_injectionHelper;
68 private ServiceInstance serviceInstance;
69 private ServiceSubscription serviceSubscription;
70 private Customer customer;
71 private Project project;
72 private OwningEntity owningEntity;
75 public void before() {
76 serviceInstance = buildServiceInstance();
77 serviceSubscription = buildServiceSubscription();
78 customer = buildCustomer();
79 project = buildProject();
80 owningEntity = buildOwningEntity();
81 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
85 public void deleteServiceInstanceSuccessTest() throws Exception {
86 aaiServiceInstanceResources.deleteServiceInstance(serviceInstance);
87 verify(MOCK_aaiResourcesClient, times(1)).delete(any(AAIResourceUri.class));
91 public void deleteServiceInstanceExceptionTest() throws Exception {
92 expectedException.expect(Exception.class);
93 doThrow(Exception.class).when(MOCK_aaiResourcesClient).delete(isA(AAIResourceUri.class));
94 aaiServiceInstanceResources.deleteServiceInstance(serviceInstance);
98 public void existsServiceInstanceTest() {
99 aaiServiceInstanceResources.existsServiceInstance(serviceInstance);
100 verify(MOCK_aaiResourcesClient, times(1)).exists(any(AAIResourceUri.class));
104 public void createServiceSubscriptionTest() {
105 serviceSubscription.setServiceType("IP-FLEX");
106 customer.setServiceSubscription(serviceSubscription);
107 doReturn(new org.onap.aai.domain.yang.ServiceSubscription()).when(MOCK_aaiObjectMapper).mapServiceSubscription(customer.getServiceSubscription());
108 aaiServiceInstanceResources.createServiceSubscription(customer);
109 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
113 public void createServiceInstanceTest() {
114 serviceSubscription.setServiceType("testSubscriberType");
115 customer.setServiceSubscription(serviceSubscription);
116 doReturn(new org.onap.aai.domain.yang.ServiceInstance()).when(MOCK_aaiObjectMapper).mapServiceInstance(serviceInstance);
117 serviceInstance.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
119 aaiServiceInstanceResources.createServiceInstance(serviceInstance, customer);
121 assertEquals(OrchestrationStatus.INVENTORIED, serviceInstance.getOrchestrationStatus());
122 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
126 public void createProjectTest() {
127 doReturn(new org.onap.aai.domain.yang.Project()).when(MOCK_aaiObjectMapper).mapProject(project);
128 aaiServiceInstanceResources.createProject(project);
129 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
133 public void createProjectandConnectServiceInstanceTest() {
134 doReturn(MOCK_aaiResourcesClient).when(MOCK_aaiResourcesClient).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
135 doNothing().when(MOCK_aaiResourcesClient).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
136 doReturn(new org.onap.aai.domain.yang.Project()).when(MOCK_aaiObjectMapper).mapProject(project);
137 aaiServiceInstanceResources.createProjectandConnectServiceInstance(project, serviceInstance);
138 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
139 verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
143 public void createOwningEntityTest() {
144 doReturn(new org.onap.aai.domain.yang.OwningEntity()).when(MOCK_aaiObjectMapper).mapOwningEntity(owningEntity);
145 aaiServiceInstanceResources.createOwningEntity(owningEntity);
146 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
150 public void existsOwningEntityTest() {
151 aaiServiceInstanceResources.existsOwningEntity(owningEntity);
152 verify(MOCK_aaiResourcesClient, times(1)).exists(any(AAIResourceUri.class));
156 public void connectOwningEntityandServiceInstanceTest() {
157 aaiServiceInstanceResources.connectOwningEntityandServiceInstance(owningEntity, serviceInstance);
158 verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
162 public void createOwningEntityandConnectServiceInstanceTest() {
163 doReturn(MOCK_aaiResourcesClient).when(MOCK_aaiResourcesClient).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
164 doNothing().when(MOCK_aaiResourcesClient).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
165 doReturn(new org.onap.aai.domain.yang.OwningEntity()).when(MOCK_aaiObjectMapper).mapOwningEntity(owningEntity);
166 aaiServiceInstanceResources.createOwningEntityandConnectServiceInstance(owningEntity, serviceInstance);
167 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
168 verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
173 public void updateOrchestrationStatusServiceInstanceTest() {
174 aaiServiceInstanceResources.updateOrchestrationStatusServiceInstance(serviceInstance, OrchestrationStatus.ACTIVE);
175 verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class), any(org.onap.aai.domain.yang.ServiceInstance.class));
180 public void test_updateServiceInstance() {
181 aaiServiceInstanceResources.updateServiceInstance(serviceInstance);
182 verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class), any(org.onap.aai.domain.yang.ServiceInstance.class));