cc48c465081d158dedc04207462b40ee7d8b99da
[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.Matchers.any;
24 import static org.mockito.Matchers.eq;
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.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.InjectMocks;
37 import org.mockito.Mock;
38 import org.mockito.runners.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.Configuration;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
46 import org.onap.so.bpmn.servicedecomposition.bbobjects.VpnBinding;
47 import org.onap.so.client.aai.AAIObjectType;
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.entities.uri.AAIUriFactory;
51 import org.onap.so.client.aai.mapper.AAIObjectMapper;
52 import org.onap.so.db.catalog.beans.OrchestrationStatus;
53 import org.onap.so.bpmn.common.data.TestDataSetup;
54
55
56 @RunWith(MockitoJUnitRunner.class)
57 public class AAIConfigurationResourcesTest extends TestDataSetup{
58         
59         
60         
61         private Configuration configuration;
62     private ServiceProxy serviceProxy;
63     private ServiceInstance serviceInstance;
64     private GenericVnf genericVnf;
65     private VpnBinding vpnBinding;
66     
67         @Mock
68         protected AAIResourcesClient MOCK_aaiResourcesClient;
69     
70     @Mock
71     protected AAIObjectMapper MOCK_aaiObjectMapper;
72     
73     @Mock
74     protected InjectionHelper MOCK_injectionHelper;
75     
76     @InjectMocks
77         private AAIConfigurationResources aaiConfigurationResources = new AAIConfigurationResources();
78     
79     @Before
80     public void before() {
81         configuration = buildConfiguration();
82         serviceProxy = buildServiceProxy();
83         serviceInstance = buildServiceInstance();
84         genericVnf = buildGenericVnf();
85         vpnBinding = buildVpnBinding();
86         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
87     }
88         
89     @Test
90     public void createConfigurationTest() {
91         doReturn(new org.onap.aai.domain.yang.Configuration()).when(MOCK_aaiObjectMapper).mapConfiguration(configuration);
92         doNothing().when(MOCK_aaiResourcesClient).create(isA(AAIResourceUri.class), isA(org.onap.aai.domain.yang.Configuration.class));
93         
94         aaiConfigurationResources.createConfiguration(configuration);
95         
96         assertEquals(OrchestrationStatus.INVENTORIED, configuration.getOrchestrationStatus());
97         verify(MOCK_aaiResourcesClient, times(1)).create(any(AAIResourceUri.class), isA(org.onap.aai.domain.yang.Configuration.class));
98     }
99
100     @Test
101     public void updateConfigurationTest() {       
102         doNothing().when(MOCK_aaiResourcesClient).update(isA(AAIResourceUri.class), isA(org.onap.aai.domain.yang.Configuration.class));
103         configuration.setConfigurationType("VNR");
104         configuration.setOrchestrationStatus(OrchestrationStatus.ACTIVE);
105         aaiConfigurationResources.updateConfiguration(configuration);
106         verify(MOCK_aaiResourcesClient, times(1)).update(any(AAIResourceUri.class), any(org.onap.aai.domain.yang.Configuration.class));
107     }
108
109     @Test
110     public void connectConfigurationToServiceInstanceTest() {
111         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
112         aaiConfigurationResources.connectConfigurationToServiceInstance(configuration.getConfigurationId(), serviceInstance.getServiceInstanceId());
113         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
114     }
115     
116     @Test
117     public void disconnectConfigurationToServiceInstanceTest(){
118         doNothing().when(MOCK_aaiResourcesClient).disconnect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
119         aaiConfigurationResources.disconnectConfigurationToServiceInstance("TEST_CONFIGURATION_ID", "TEST_SERVICE_INSTANCE_ID");
120         verify(MOCK_aaiResourcesClient, times(1)).disconnect(any(AAIResourceUri.class), any(AAIResourceUri.class));
121     }
122
123     @Test
124     public void connectConfigurationToGenericVnfTest() {
125         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
126         aaiConfigurationResources.connectConfigurationToGenericVnf(configuration.getConfigurationId(), genericVnf.getVnfId());
127         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
128     }
129
130     @Test
131     public void connectConfigurationToVpnBindingTest() {
132         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
133         aaiConfigurationResources.connectConfigurationToVpnBinding(configuration.getConfigurationId(), vpnBinding.getVpnId());
134         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
135     }
136
137     @Test
138     public void getConfigurationFromRelatedLinkTest () {
139         Optional<org.onap.aai.domain.yang.Configuration>  configuration = Optional.of(new org.onap.aai.domain.yang.Configuration());
140         configuration.get().setConfigurationId("config1");
141         doReturn(configuration).when(MOCK_aaiResourcesClient).get(eq(org.onap.aai.domain.yang.Configuration.class),isA(AAIResourceUri.class));
142         aaiConfigurationResources.getConfigurationFromRelatedLink("http://localhost:8090/aai/v12/network/configurations/configuration/config1");
143         verify(MOCK_aaiResourcesClient, times(1)).get(eq(org.onap.aai.domain.yang.Configuration.class),isA(AAIResourceUri.class));
144     }
145
146     @Test
147     public void connectVrfConfigurationToVnrConfigurationTest() throws Exception {
148         Configuration vrfConfiguration = buildConfiguration();
149         Configuration vnrConfiguration = buildConfiguration();
150         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
151         aaiConfigurationResources.connectVrfConfigurationToVnrConfiguration(vrfConfiguration.getConfigurationId(),vnrConfiguration.getConfigurationId());
152         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
153     }
154
155     @Test
156     public void connectConfigurationToPnfObjectTest() throws Exception {
157         doNothing().when(MOCK_aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
158         
159         Pnf primaryPnf = serviceProxy.getServiceInstance().getPnfs().stream().filter(o -> o.getRole().equals("Primary")).findFirst().get();
160         
161         aaiConfigurationResources.connectConfigurationToPnfObject(primaryPnf.getPnfId(), configuration.getConfigurationId());
162         verify(MOCK_aaiResourcesClient, times(1)).connect(any(AAIResourceUri.class), any(AAIResourceUri.class));
163     }
164
165     @Test
166     public void getConfigurationTest() {
167         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
168         doReturn(Optional.of(new org.onap.aai.domain.yang.Configuration())).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Configuration.class, aaiResourceUri);
169         aaiConfigurationResources.getConfiguration("configurationId");
170         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Configuration.class, aaiResourceUri);
171     }
172
173     @Test
174     public void deleteConfigurationTest() {
175         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
176         doNothing().when(MOCK_aaiResourcesClient).delete(aaiResourceUri);
177         aaiConfigurationResources.deleteConfiguration("configurationId");
178         verify(MOCK_aaiResourcesClient, times(1)).delete(aaiResourceUri);
179     }
180 }