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;
31 import java.util.Optional;
32 import org.junit.Before;
33 import org.junit.Ignore;
34 import org.junit.Test;
35 import org.junit.runner.RunWith;
36 import org.mockito.InjectMocks;
37 import org.mockito.Mock;
38 import org.mockito.junit.MockitoJUnitRunner;
39 import org.onap.so.bpmn.common.data.TestDataSetup;
40 import org.onap.so.bpmn.common.InjectionHelper;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
46 import org.onap.so.client.aai.AAIResourcesClient;
47 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
48 import org.onap.so.client.aai.mapper.AAIObjectMapper;
49 import org.onap.so.db.catalog.beans.OrchestrationStatus;
51 @RunWith(MockitoJUnitRunner.Silent.class)
52 public class AAIServiceInstanceResourcesTest extends TestDataSetup {
55 private AAIServiceInstanceResources aaiServiceInstanceResources = new AAIServiceInstanceResources();
58 protected AAIResourcesClient MOCK_aaiResourcesClient;
61 protected AAIObjectMapper MOCK_aaiObjectMapper;
64 protected InjectionHelper MOCK_injectionHelper;
66 private ServiceInstance serviceInstance;
67 private ServiceSubscription serviceSubscription;
68 private Customer customer;
69 private Project project;
70 private OwningEntity owningEntity;
73 public void before() {
74 serviceInstance = buildServiceInstance();
75 serviceSubscription = buildServiceSubscription();
76 customer = buildCustomer();
77 project = buildProject();
78 owningEntity = buildOwningEntity();
79 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
83 public void deleteServiceInstanceSuccessTest() throws Exception {
84 aaiServiceInstanceResources.deleteServiceInstance(serviceInstance);
85 verify(MOCK_aaiResourcesClient, times(1)).delete(any(AAIResourceUri.class));
89 public void deleteServiceInstanceExceptionTest() throws Exception {
90 expectedException.expect(Exception.class);
91 doThrow(Exception.class).when(MOCK_aaiResourcesClient).delete(isA(AAIResourceUri.class));
92 aaiServiceInstanceResources.deleteServiceInstance(serviceInstance);
96 public void existsServiceInstanceTest() {
97 aaiServiceInstanceResources.existsServiceInstance(serviceInstance);
98 verify(MOCK_aaiResourcesClient, times(1)).exists(any(AAIResourceUri.class));
102 public void createServiceSubscriptionTest() {
103 serviceSubscription.setServiceType("IP-FLEX");
104 customer.setServiceSubscription(serviceSubscription);
105 doReturn(new org.onap.aai.domain.yang.ServiceSubscription()).when(MOCK_aaiObjectMapper)
106 .mapServiceSubscription(customer.getServiceSubscription());
107 aaiServiceInstanceResources.createServiceSubscription(customer);
108 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
112 public void createServiceInstanceTest() {
113 serviceSubscription.setServiceType("testSubscriberType");
114 customer.setServiceSubscription(serviceSubscription);
115 doReturn(new org.onap.aai.domain.yang.ServiceInstance()).when(MOCK_aaiObjectMapper)
116 .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),
135 any(Optional.class));
136 doNothing().when(MOCK_aaiResourcesClient).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
137 doReturn(new org.onap.aai.domain.yang.Project()).when(MOCK_aaiObjectMapper).mapProject(project);
138 aaiServiceInstanceResources.createProjectandConnectServiceInstance(project, serviceInstance);
139 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
140 verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
144 public void createOwningEntityTest() {
145 doReturn(new org.onap.aai.domain.yang.OwningEntity()).when(MOCK_aaiObjectMapper).mapOwningEntity(owningEntity);
146 aaiServiceInstanceResources.createOwningEntity(owningEntity);
147 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
151 public void existsOwningEntityTest() {
152 aaiServiceInstanceResources.existsOwningEntity(owningEntity);
153 verify(MOCK_aaiResourcesClient, times(1)).exists(any(AAIResourceUri.class));
157 public void connectOwningEntityandServiceInstanceTest() {
158 aaiServiceInstanceResources.connectOwningEntityandServiceInstance(owningEntity, serviceInstance);
159 verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
163 public void createOwningEntityandConnectServiceInstanceTest() {
164 doReturn(MOCK_aaiResourcesClient).when(MOCK_aaiResourcesClient).createIfNotExists(any(AAIResourceUri.class),
165 any(Optional.class));
166 doNothing().when(MOCK_aaiResourcesClient).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
167 doReturn(new org.onap.aai.domain.yang.OwningEntity()).when(MOCK_aaiObjectMapper).mapOwningEntity(owningEntity);
168 aaiServiceInstanceResources.createOwningEntityandConnectServiceInstance(owningEntity, serviceInstance);
169 verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
170 verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
175 public void updateOrchestrationStatusServiceInstanceTest() {
176 aaiServiceInstanceResources.updateOrchestrationStatusServiceInstance(serviceInstance,
177 OrchestrationStatus.ACTIVE);
178 verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class),
179 any(org.onap.aai.domain.yang.ServiceInstance.class));
184 public void test_updateServiceInstance() {
185 aaiServiceInstanceResources.updateServiceInstance(serviceInstance);
186 verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class),
187 any(org.onap.aai.domain.yang.ServiceInstance.class));