46d4135b6df27639b74920d99ffe147da6011f21
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / orchestration / AAIServiceInstanceResourcesTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.so.client.orchestration;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.mockito.Matchers.any;
25 import static org.mockito.Matchers.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
32 import java.util.Optional;
33
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.junit.runner.RunWith;
37 import org.mockito.InjectMocks;
38 import org.mockito.Mock;
39 import org.mockito.runners.MockitoJUnitRunner;
40 import org.onap.so.bpmn.common.data.TestDataSetup;
41 import org.onap.so.bpmn.common.InjectionHelper;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
46 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
47 import org.onap.so.client.aai.AAIResourcesClient;
48 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
49 import org.onap.so.client.aai.mapper.AAIObjectMapper;
50 import org.onap.so.db.catalog.beans.OrchestrationStatus;
51
52 @RunWith(MockitoJUnitRunner.class)
53 public class AAIServiceInstanceResourcesTest extends TestDataSetup{
54         
55     @InjectMocks
56     private AAIServiceInstanceResources aaiServiceInstanceResources = new AAIServiceInstanceResources();
57     
58     @Mock
59         protected AAIResourcesClient MOCK_aaiResourcesClient;
60     
61     @Mock
62     protected AAIObjectMapper MOCK_aaiObjectMapper;
63     
64     @Mock
65     protected InjectionHelper MOCK_injectionHelper;
66     
67     private ServiceInstance serviceInstance;
68     private ServiceSubscription serviceSubscription;
69     private Customer customer;
70     private Project project;
71     private OwningEntity owningEntity;
72     
73     @Before
74     public void before() {
75         serviceInstance = buildServiceInstance();
76         serviceSubscription = buildServiceSubscription();
77         customer = buildCustomer();
78         project = buildProject();
79         owningEntity = buildOwningEntity();
80         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
81     }
82     
83     @Test
84     public void deleteServiceInstanceSuccessTest() throws Exception {
85         aaiServiceInstanceResources.deleteServiceInstance(serviceInstance);
86         verify(MOCK_aaiResourcesClient, times(1)).delete(any(AAIResourceUri.class));
87     }
88
89     @Test
90     public void deleteServiceInstanceExceptionTest() throws Exception {
91         expectedException.expect(Exception.class);
92         doThrow(Exception.class).when(MOCK_aaiResourcesClient).delete(isA(AAIResourceUri.class));
93         aaiServiceInstanceResources.deleteServiceInstance(serviceInstance);
94     }
95
96     @Test
97     public void existsServiceInstanceTest() {
98         aaiServiceInstanceResources.existsServiceInstance(serviceInstance);
99         verify(MOCK_aaiResourcesClient, times(1)).exists(any(AAIResourceUri.class));
100     }
101
102     @Test
103     public void createServiceSubscriptionTest() {
104         serviceSubscription.setServiceType("IP-FLEX");
105         customer.setServiceSubscription(serviceSubscription);
106         doReturn(new org.onap.aai.domain.yang.ServiceSubscription()).when(MOCK_aaiObjectMapper).mapServiceSubscription(customer.getServiceSubscription());
107         aaiServiceInstanceResources.createServiceSubscription(customer);
108         verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
109     }
110
111     @Test
112     public void createServiceInstanceTest() {
113         serviceSubscription.setServiceType("testSubscriberType");
114         customer.setServiceSubscription(serviceSubscription);
115         doReturn(new org.onap.aai.domain.yang.ServiceInstance()).when(MOCK_aaiObjectMapper).mapServiceInstance(serviceInstance);
116         serviceInstance.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
117         
118         aaiServiceInstanceResources.createServiceInstance(serviceInstance, customer);
119         
120         assertEquals(OrchestrationStatus.INVENTORIED, serviceInstance.getOrchestrationStatus());
121         verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
122     }
123
124     @Test
125     public void createProjectTest() {
126         doReturn(new org.onap.aai.domain.yang.Project()).when(MOCK_aaiObjectMapper).mapProject(project);
127         aaiServiceInstanceResources.createProject(project);
128         verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
129     }
130
131     @Test
132     public void createProjectandConnectServiceInstanceTest() {
133         doReturn(MOCK_aaiResourcesClient).when(MOCK_aaiResourcesClient).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
134         doNothing().when(MOCK_aaiResourcesClient).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
135         doReturn(new org.onap.aai.domain.yang.Project()).when(MOCK_aaiObjectMapper).mapProject(project);
136         aaiServiceInstanceResources.createProjectandConnectServiceInstance(project, serviceInstance);
137         verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
138         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
139     }
140
141     @Test
142     public void createOwningEntityTest() {
143         doReturn(new org.onap.aai.domain.yang.OwningEntity()).when(MOCK_aaiObjectMapper).mapOwningEntity(owningEntity);
144         aaiServiceInstanceResources.createOwningEntity(owningEntity);
145         verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
146     }
147
148     @Test
149     public void existsOwningEntityTest() {
150         aaiServiceInstanceResources.existsOwningEntity(owningEntity);
151         verify(MOCK_aaiResourcesClient, times(1)).exists(any(AAIResourceUri.class));
152     }
153
154     @Test
155     public void connectOwningEntityandServiceInstanceTest() {
156         aaiServiceInstanceResources.connectOwningEntityandServiceInstance(owningEntity, serviceInstance);
157         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
158     }
159
160     @Test
161     public void createOwningEntityandConnectServiceInstanceTest() {
162         doReturn(MOCK_aaiResourcesClient).when(MOCK_aaiResourcesClient).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
163         doNothing().when(MOCK_aaiResourcesClient).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
164         doReturn(new org.onap.aai.domain.yang.OwningEntity()).when(MOCK_aaiObjectMapper).mapOwningEntity(owningEntity);
165         aaiServiceInstanceResources.createOwningEntityandConnectServiceInstance(owningEntity, serviceInstance);
166         verify(MOCK_aaiResourcesClient, times(1)).createIfNotExists(any(AAIResourceUri.class), any(Optional.class));
167         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
168     }
169
170     @Test
171     public void updateOrchestrationStatusServiceInstanceTest() {
172         aaiServiceInstanceResources.updateOrchestrationStatusServiceInstance(serviceInstance, OrchestrationStatus.ACTIVE);
173         verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class), any(org.onap.aai.domain.yang.ServiceInstance.class));
174     }
175
176     @Test
177     public void test_updateServiceInstance() {
178         aaiServiceInstanceResources.updateServiceInstance(serviceInstance);
179         verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class), any(org.onap.aai.domain.yang.ServiceInstance.class));
180     }
181 }