Change status from inventoried to assigned
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / orchestration / AAIConfigurationResourcesTest.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 package org.onap.so.client.orchestration;
21
22 import static org.junit.Assert.assertEquals;
23 import static org.mockito.ArgumentMatchers.any;
24 import static org.mockito.ArgumentMatchers.eq;
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.times;
29 import static org.mockito.Mockito.verify;
30
31 import java.util.Optional;
32
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.junit.runner.RunWith;
36 import org.mockito.ArgumentMatchers;
37 import org.mockito.InjectMocks;
38 import org.mockito.Mock;
39 import org.mockito.junit.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.Configuration;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
46 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
47 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
48 import org.onap.so.bpmn.servicedecomposition.bbobjects.VpnBinding;
49 import org.onap.so.client.aai.AAIObjectType;
50 import org.onap.so.client.aai.AAIResourcesClient;
51 import org.onap.so.client.aai.entities.AAIEdgeLabel;
52 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
53 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
54 import org.onap.so.client.aai.mapper.AAIObjectMapper;
55 import org.onap.so.db.catalog.beans.OrchestrationStatus;
56 import org.onap.so.bpmn.common.data.TestDataSetup;
57
58
59 @RunWith(MockitoJUnitRunner.Silent.class)
60 public class AAIConfigurationResourcesTest extends TestDataSetup{
61         
62         
63         
64         private Configuration configuration;
65     private ServiceProxy serviceProxy;
66     private ServiceInstance serviceInstance;
67     private GenericVnf genericVnf;
68     private VpnBinding vpnBinding;
69     private VfModule vfModule;
70     
71         @Mock
72         protected AAIResourcesClient MOCK_aaiResourcesClient;
73     
74     @Mock
75     protected AAIObjectMapper MOCK_aaiObjectMapper;
76     
77     @Mock
78     protected InjectionHelper MOCK_injectionHelper;
79     
80     @InjectMocks
81         private AAIConfigurationResources aaiConfigurationResources = new AAIConfigurationResources();
82     
83     @Before
84     public void before() {
85         configuration = buildConfiguration();
86         serviceProxy = buildServiceProxy();
87         serviceInstance = buildServiceInstance();
88         genericVnf = buildGenericVnf();
89         vfModule = buildVfModule();
90         vpnBinding = buildVpnBinding();
91         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
92     }
93         
94     @Test
95     public void createConfigurationTest() {
96         doReturn(new org.onap.aai.domain.yang.Configuration()).when(MOCK_aaiObjectMapper).mapConfiguration(configuration);
97         doNothing().when(MOCK_aaiResourcesClient).create(isA(AAIResourceUri.class), isA(org.onap.aai.domain.yang.Configuration.class));
98         
99         aaiConfigurationResources.createConfiguration(configuration);
100         
101         assertEquals(OrchestrationStatus.ASSIGNED, configuration.getOrchestrationStatus());
102         verify(MOCK_aaiResourcesClient, times(1)).create(any(AAIResourceUri.class), isA(org.onap.aai.domain.yang.Configuration.class));
103     }
104
105     @Test
106     public void updateConfigurationTest() {       
107         doNothing().when(MOCK_aaiResourcesClient).update(isA(AAIResourceUri.class), isA(org.onap.aai.domain.yang.Configuration.class));
108         configuration.setConfigurationType("VNR");
109         configuration.setOrchestrationStatus(OrchestrationStatus.ACTIVE);
110         aaiConfigurationResources.updateConfiguration(configuration);
111         verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class),ArgumentMatchers.isNull());
112     }
113
114     @Test
115     public void connectConfigurationToServiceInstanceTest() {
116         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
117         aaiConfigurationResources.connectConfigurationToServiceInstance(configuration.getConfigurationId(), serviceInstance.getServiceInstanceId());
118         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
119     }
120     
121     @Test
122     public void connectConfigurationToServiceInstanceWithEdgeTest() {
123         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class), any(AAIEdgeLabel.class));
124         aaiConfigurationResources.connectConfigurationToServiceInstance(configuration.getConfigurationId(), serviceInstance.getServiceInstanceId(), AAIEdgeLabel.USES);
125         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class), any(AAIEdgeLabel.class));
126     }
127     
128     @Test
129     public void disconnectConfigurationToServiceInstanceTest(){
130         doNothing().when(MOCK_aaiResourcesClient).disconnect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
131         aaiConfigurationResources.disconnectConfigurationToServiceInstance("TEST_CONFIGURATION_ID", "TEST_SERVICE_INSTANCE_ID");
132         verify(MOCK_aaiResourcesClient, times(1)).disconnect(any(AAIResourceUri.class), any(AAIResourceUri.class));
133     }
134
135     @Test
136     public void connectConfigurationToGenericVnfTest() {
137         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
138         aaiConfigurationResources.connectConfigurationToGenericVnf(configuration.getConfigurationId(), genericVnf.getVnfId());
139         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
140     }
141     
142     @Test
143     public void connectConfigurationToVfModuleTest() {
144         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
145         aaiConfigurationResources.connectConfigurationToVfModule(configuration.getConfigurationId(), vfModule.getVfModuleId(),genericVnf.getVnfId());
146         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
147     }
148     
149     @Test
150     public void connectConfigurationToVnfcTest() {
151         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
152         aaiConfigurationResources.connectConfigurationToVnfc(configuration.getConfigurationId(), "vnfcName");
153         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
154     }
155
156     @Test
157     public void connectConfigurationToVpnBindingTest() {
158         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
159         aaiConfigurationResources.connectConfigurationToVpnBinding(configuration.getConfigurationId(), vpnBinding.getVpnId());
160         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
161     }
162
163     @Test
164     public void getConfigurationFromRelatedLinkTest () {
165         Optional<org.onap.aai.domain.yang.Configuration>  configuration = Optional.of(new org.onap.aai.domain.yang.Configuration());
166         configuration.get().setConfigurationId("config1");
167         doReturn(configuration).when(MOCK_aaiResourcesClient).get(eq(org.onap.aai.domain.yang.Configuration.class),isA(AAIResourceUri.class));
168         aaiConfigurationResources.getConfigurationFromRelatedLink("http://localhost:8090/aai/v12/network/configurations/configuration/config1");
169         verify(MOCK_aaiResourcesClient, times(1)).get(eq(org.onap.aai.domain.yang.Configuration.class),isA(AAIResourceUri.class));
170     }
171
172     @Test
173     public void connectVrfConfigurationToVnrConfigurationTest() throws Exception {
174         Configuration vrfConfiguration = buildConfiguration();
175         Configuration vnrConfiguration = buildConfiguration();
176         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
177         aaiConfigurationResources.connectVrfConfigurationToVnrConfiguration(vrfConfiguration.getConfigurationId(),vnrConfiguration.getConfigurationId());
178         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
179     }
180
181     @Test
182     public void connectConfigurationToPnfObjectTest() throws Exception {
183         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
184         
185         Pnf primaryPnf = serviceProxy.getServiceInstance().getPnfs().stream().filter(o -> o.getRole().equals("Primary")).findFirst().get();
186         
187         aaiConfigurationResources.connectConfigurationToPnfObject(primaryPnf.getPnfId(), configuration.getConfigurationId());
188         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
189     }
190
191     @Test
192     public void getConfigurationTest() {
193         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
194         doReturn(Optional.of(new org.onap.aai.domain.yang.Configuration())).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Configuration.class, aaiResourceUri);
195         aaiConfigurationResources.getConfiguration("configurationId");
196         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Configuration.class, aaiResourceUri);
197     }
198
199     @Test
200     public void deleteConfigurationTest() {
201         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
202         doNothing().when(MOCK_aaiResourcesClient).delete(aaiResourceUri);
203         aaiConfigurationResources.deleteConfiguration("configurationId");
204         verify(MOCK_aaiResourcesClient, times(1)).delete(aaiResourceUri);
205     }
206     
207     @Test
208         public void updateOrchestrationStatusConfigurationTest() throws Exception {
209                 configuration.setOrchestrationStatus(OrchestrationStatus.ACTIVE);
210                 doNothing().when(MOCK_aaiResourcesClient).update(isA(AAIResourceUri.class), isA(org.onap.aai.domain.yang.Configuration.class));
211                 aaiConfigurationResources.updateOrchestrationStatusConfiguration(configuration,OrchestrationStatus.ACTIVE);             
212                 verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class), ArgumentMatchers.isNull());
213                 assertEquals(OrchestrationStatus.ACTIVE, configuration.getOrchestrationStatus());
214         }
215 }