Replaced all tabs with spaces in java and pom.xml
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / adapter / vnf / mapper / VnfAdapterObjectMapperTest.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.adapter.vnf.mapper;
22
23 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertThat;
26 import static org.mockito.ArgumentMatchers.isA;
27 import static org.mockito.Mockito.doReturn;
28 import static org.mockito.Mockito.reset;
29 import java.nio.file.Files;
30 import java.nio.file.Paths;
31 import java.util.ArrayList;
32 import java.util.HashMap;
33 import java.util.List;
34 import java.util.Map;
35 import org.junit.After;
36 import org.junit.Before;
37 import org.junit.Ignore;
38 import org.junit.Test;
39 import org.mockito.MockitoAnnotations;
40 import org.mockito.Spy;
41 import org.onap.so.adapters.vnfrest.CreateVolumeGroupRequest;
42 import org.onap.so.adapters.vnfrest.DeleteVolumeGroupRequest;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
46 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
47 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
48 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
49 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestParameters;
50 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
51 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
52 import org.onap.so.db.catalog.beans.OrchestrationStatus;
53 import org.onap.so.entity.MsoRequest;
54
55 public class VnfAdapterObjectMapperTest {
56     private final static String JSON_FILE_LOCATION = "src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/";
57
58     @Spy
59     private VnfAdapterObjectMapper vnfAdapterObjectMapper = new VnfAdapterObjectMapper();
60
61     @Before
62     public void before() {
63         MockitoAnnotations.initMocks(this);
64
65     }
66
67     @After
68     public void after() {
69         reset(vnfAdapterObjectMapper);
70     }
71
72     @Test
73     public void test_createVolumeGroupRequestMapper() throws Exception {
74         RequestContext requestContext = new RequestContext();
75         requestContext.setMsoRequestId("msoRequestId");
76
77         ServiceInstance serviceInstance = new ServiceInstance();
78         serviceInstance.setServiceInstanceId("serviceInstanceId");
79
80         ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
81         modelInfoServiceInstance.setModelVersion("modelVersion");
82         serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
83
84         GenericVnf genericVnf = new GenericVnf();
85         genericVnf.setVnfId("vnfId");
86         genericVnf.setVnfName("vnfName");
87         genericVnf.setVnfType("vnfType");
88         serviceInstance.getVnfs().add(genericVnf);
89
90         ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
91         modelInfoVfModule.setModelName("modelName");
92         modelInfoVfModule.setModelCustomizationUUID("modelCustomizationUUID");
93
94         VolumeGroup volumeGroup = new VolumeGroup();
95         volumeGroup.setVolumeGroupId("volumeGroupId");
96         volumeGroup.setVolumeGroupName("volumeGroupName");
97         volumeGroup.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
98         volumeGroup.setModelInfoVfModule(modelInfoVfModule);
99
100         serviceInstance.getVnfs().get(0).getVolumeGroups().add(volumeGroup);
101
102
103         CloudRegion cloudRegion = new CloudRegion();
104         cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
105         cloudRegion.setTenantId("tenantId");
106
107         OrchestrationContext orchestrationContext = new OrchestrationContext();
108         orchestrationContext.setIsRollbackEnabled(true);
109
110         String sdncVfModuleQueryResponse = new String(Files
111                 .readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleSdncVfModuleTopology.json")));
112
113         CreateVolumeGroupRequest expectedCreateVolumeGroupRequest = new CreateVolumeGroupRequest();
114
115         expectedCreateVolumeGroupRequest.setCloudSiteId(cloudRegion.getLcpCloudRegionId());
116         expectedCreateVolumeGroupRequest.setTenantId(cloudRegion.getTenantId());
117         expectedCreateVolumeGroupRequest.setVolumeGroupId(volumeGroup.getVolumeGroupId());
118         expectedCreateVolumeGroupRequest.setVolumeGroupName(volumeGroup.getVolumeGroupName());
119         expectedCreateVolumeGroupRequest.setVnfType(genericVnf.getVnfType());
120         expectedCreateVolumeGroupRequest.setVnfVersion(serviceInstance.getModelInfoServiceInstance().getModelVersion());
121         expectedCreateVolumeGroupRequest.setVfModuleType(volumeGroup.getModelInfoVfModule().getModelName());
122         expectedCreateVolumeGroupRequest
123                 .setModelCustomizationUuid(volumeGroup.getModelInfoVfModule().getModelCustomizationUUID());
124
125         Map<String, Object> volumeGroupParams = new HashMap<>();
126         volumeGroupParams.put("vnf_id", genericVnf.getVnfId());
127         volumeGroupParams.put("vnf_name", genericVnf.getVnfName());
128         volumeGroupParams.put("vf_module_id", volumeGroup.getVolumeGroupId());
129         volumeGroupParams.put("vf_module_name", volumeGroup.getVolumeGroupName());
130         volumeGroupParams.put("paramOne", "paramOneValue");
131         volumeGroupParams.put("paramTwo", "paramTwoValue");
132         volumeGroupParams.put("paramThree", "paramThreeValue");
133         expectedCreateVolumeGroupRequest.setVolumeGroupParams(volumeGroupParams);
134
135         expectedCreateVolumeGroupRequest.setSkipAAI(true);
136         expectedCreateVolumeGroupRequest
137                 .setSuppressBackout(Boolean.TRUE.equals(orchestrationContext.getIsRollbackEnabled()));
138         expectedCreateVolumeGroupRequest.setFailIfExists(true);
139
140         MsoRequest msoRequest = new MsoRequest();
141         msoRequest.setRequestId(requestContext.getMsoRequestId());
142         msoRequest.setServiceInstanceId(serviceInstance.getServiceInstanceId());
143         expectedCreateVolumeGroupRequest.setMsoRequest(msoRequest);
144
145         expectedCreateVolumeGroupRequest.setMessageId("messageId");
146         expectedCreateVolumeGroupRequest.setNotificationUrl("endpoint/VNFAResponse/messageId");
147
148         doReturn("endpoint/").when(vnfAdapterObjectMapper).getProperty(isA(String.class));
149         doReturn("messageId").when(vnfAdapterObjectMapper).getRandomUuid();
150
151         CreateVolumeGroupRequest actualCreateVolumeGroupRequest =
152                 vnfAdapterObjectMapper.createVolumeGroupRequestMapper(requestContext, cloudRegion, orchestrationContext,
153                         serviceInstance, genericVnf, volumeGroup, sdncVfModuleQueryResponse);
154
155         assertThat(actualCreateVolumeGroupRequest, sameBeanAs(expectedCreateVolumeGroupRequest));
156     }
157
158     @Test
159     public void test_createVolumeGroupRequestMapper_for_alaCarte_flow() throws Exception {
160         RequestContext requestContext = new RequestContext();
161         requestContext.setMsoRequestId("msoRequestId");
162
163         ServiceInstance serviceInstance = new ServiceInstance();
164         serviceInstance.setServiceInstanceId("serviceInstanceId");
165
166         ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
167         modelInfoServiceInstance.setModelVersion("modelVersion");
168         serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
169
170         GenericVnf genericVnf = new GenericVnf();
171         genericVnf.setVnfId("vnfId");
172         genericVnf.setVnfName("vnfName");
173         genericVnf.setVnfType("vnfType");
174         serviceInstance.getVnfs().add(genericVnf);
175
176
177         ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
178         modelInfoVfModule.setModelName("modelName");
179         modelInfoVfModule.setModelCustomizationUUID("modelCustomizationUUID");
180
181         VolumeGroup volumeGroup = new VolumeGroup();
182         volumeGroup.setVolumeGroupId("volumeGroupId");
183         volumeGroup.setVolumeGroupName("volumeGroupName");
184         volumeGroup.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
185         volumeGroup.setModelInfoVfModule(modelInfoVfModule);
186         serviceInstance.getVnfs().get(0).getVolumeGroups().add(volumeGroup);
187
188         CloudRegion cloudRegion = new CloudRegion();
189         cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
190         cloudRegion.setTenantId("tenantId");
191
192         OrchestrationContext orchestrationContext = new OrchestrationContext();
193         orchestrationContext.setIsRollbackEnabled(true);
194
195         CreateVolumeGroupRequest expectedCreateVolumeGroupRequest = new CreateVolumeGroupRequest();
196
197         expectedCreateVolumeGroupRequest.setCloudSiteId(cloudRegion.getLcpCloudRegionId());
198         expectedCreateVolumeGroupRequest.setTenantId(cloudRegion.getTenantId());
199         expectedCreateVolumeGroupRequest.setVolumeGroupId(volumeGroup.getVolumeGroupId());
200         expectedCreateVolumeGroupRequest.setVolumeGroupName(volumeGroup.getVolumeGroupName());
201         expectedCreateVolumeGroupRequest.setVnfType(genericVnf.getVnfType());
202         expectedCreateVolumeGroupRequest.setVnfVersion(serviceInstance.getModelInfoServiceInstance().getModelVersion());
203         expectedCreateVolumeGroupRequest.setVfModuleType(volumeGroup.getModelInfoVfModule().getModelName());
204         expectedCreateVolumeGroupRequest
205                 .setModelCustomizationUuid(volumeGroup.getModelInfoVfModule().getModelCustomizationUUID());
206
207         Map<String, Object> volumeGroupParams = new HashMap<>();
208         volumeGroupParams.put("vnf_id", genericVnf.getVnfId());
209         volumeGroupParams.put("vnf_name", genericVnf.getVnfName());
210         volumeGroupParams.put("vf_module_id", volumeGroup.getVolumeGroupId());
211         volumeGroupParams.put("vf_module_name", volumeGroup.getVolumeGroupName());
212
213         expectedCreateVolumeGroupRequest.setVolumeGroupParams(volumeGroupParams);
214
215         expectedCreateVolumeGroupRequest.setSkipAAI(true);
216         expectedCreateVolumeGroupRequest
217                 .setSuppressBackout(Boolean.TRUE.equals(orchestrationContext.getIsRollbackEnabled()));
218         expectedCreateVolumeGroupRequest.setFailIfExists(true);
219
220         MsoRequest msoRequest = new MsoRequest();
221         msoRequest.setRequestId(requestContext.getMsoRequestId());
222         msoRequest.setServiceInstanceId(serviceInstance.getServiceInstanceId());
223         expectedCreateVolumeGroupRequest.setMsoRequest(msoRequest);
224
225         expectedCreateVolumeGroupRequest.setMessageId("messageId");
226         expectedCreateVolumeGroupRequest.setNotificationUrl("endpoint/VNFAResponse/messageId");
227
228         doReturn("endpoint/").when(vnfAdapterObjectMapper).getProperty(isA(String.class));
229         doReturn("messageId").when(vnfAdapterObjectMapper).getRandomUuid();
230
231         CreateVolumeGroupRequest actualCreateVolumeGroupRequest = vnfAdapterObjectMapper.createVolumeGroupRequestMapper(
232                 requestContext, cloudRegion, orchestrationContext, serviceInstance, genericVnf, volumeGroup, null);
233
234         assertThat(actualCreateVolumeGroupRequest, sameBeanAs(expectedCreateVolumeGroupRequest));
235     }
236
237     @Test
238     public void test_deleteVolumeGroupHeatIdRequestMapper() throws Exception {
239         this.test_deleteVolumeGroupRequestMapper("heatStackId");
240     }
241
242     @Test
243     public void test_deleteVolumeGroupNoHeatIdRequestMapper() throws Exception {
244         this.test_deleteVolumeGroupRequestMapper(null);
245     }
246
247     private void test_deleteVolumeGroupRequestMapper(String heatStackId) throws Exception {
248         DeleteVolumeGroupRequest expectedDeleteVolumeGroupRequest = new DeleteVolumeGroupRequest();
249
250         CloudRegion cloudRegion = new CloudRegion();
251         cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
252         expectedDeleteVolumeGroupRequest.setCloudSiteId(cloudRegion.getLcpCloudRegionId());
253
254         cloudRegion.setTenantId("tenantId");
255         expectedDeleteVolumeGroupRequest.setTenantId(cloudRegion.getTenantId());
256
257         VolumeGroup volumeGroup = new VolumeGroup();
258         volumeGroup.setVolumeGroupId("volumeGroupId");
259         expectedDeleteVolumeGroupRequest.setVolumeGroupId(volumeGroup.getVolumeGroupId());
260
261         if (heatStackId != null) {
262             volumeGroup.setHeatStackId("heatStackId");
263             expectedDeleteVolumeGroupRequest.setVolumeGroupStackId(volumeGroup.getHeatStackId());
264         } else {
265             volumeGroup.setVolumeGroupName("volumeGroupName");
266             expectedDeleteVolumeGroupRequest.setVolumeGroupStackId(volumeGroup.getVolumeGroupName());
267         }
268
269         expectedDeleteVolumeGroupRequest.setSkipAAI(true);
270
271         MsoRequest msoRequest = new MsoRequest();
272         RequestContext requestContext = new RequestContext();
273         requestContext.setMsoRequestId("msoRequestId");
274         msoRequest.setRequestId(requestContext.getMsoRequestId());
275         ServiceInstance serviceInstance = new ServiceInstance();
276         serviceInstance.setServiceInstanceId("serviceInstanceId");
277         msoRequest.setServiceInstanceId(serviceInstance.getServiceInstanceId());
278         expectedDeleteVolumeGroupRequest.setMsoRequest(msoRequest);
279
280         String messageId = "messageId";
281         String endpoint = "endpoint";
282         doReturn(messageId).when(vnfAdapterObjectMapper).getRandomUuid();
283         doReturn(endpoint).when(vnfAdapterObjectMapper).getProperty(isA(String.class));
284         expectedDeleteVolumeGroupRequest.setMessageId(messageId);
285         expectedDeleteVolumeGroupRequest.setNotificationUrl(endpoint + "/VNFAResponse/" + messageId);
286
287         DeleteVolumeGroupRequest actualDeleteVolumeGroupRequest = vnfAdapterObjectMapper
288                 .deleteVolumeGroupRequestMapper(requestContext, cloudRegion, serviceInstance, volumeGroup);
289
290         assertThat(actualDeleteVolumeGroupRequest, sameBeanAs(expectedDeleteVolumeGroupRequest));
291     }
292
293     @Test
294     public void test_createVolumeGroupParams() throws Exception {
295         GenericVnf genericVnf = new GenericVnf();
296         genericVnf.setVnfId("vnfId");
297         genericVnf.setVnfName("vnfName");
298
299         RequestContext requestContext = new RequestContext();
300
301         VolumeGroup volumeGroup = new VolumeGroup();
302         volumeGroup.setVolumeGroupId("volumeGroupId");
303         volumeGroup.setVolumeGroupName("volumeGroupName");
304
305         String sdncVfModuleQueryResponse = new String(Files
306                 .readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleSdncVfModuleTopology.json")));
307
308         Map<String, String> expectedVolumeGroupParams = new HashMap<>();
309         expectedVolumeGroupParams.put("vnf_id", genericVnf.getVnfId());
310         expectedVolumeGroupParams.put("vnf_name", genericVnf.getVnfName());
311         expectedVolumeGroupParams.put("vf_module_id", volumeGroup.getVolumeGroupId());
312         expectedVolumeGroupParams.put("vf_module_name", volumeGroup.getVolumeGroupName());
313         expectedVolumeGroupParams.put("paramOne", "paramOneValue");
314         expectedVolumeGroupParams.put("paramTwo", "paramTwoValue");
315         expectedVolumeGroupParams.put("paramThree", "paramThreeValue");
316
317         Map<String, Object> actualVolumeGroupParams = vnfAdapterObjectMapper.createVolumeGroupParams(requestContext,
318                 genericVnf, volumeGroup, sdncVfModuleQueryResponse);
319
320         assertEquals(expectedVolumeGroupParams, actualVolumeGroupParams);
321     }
322
323     @Test
324     public void test_createVolumeGroupParams_without_sdncResponse() throws Exception {
325         GenericVnf genericVnf = new GenericVnf();
326         genericVnf.setVnfId("vnfId");
327         genericVnf.setVnfName("vnfName");
328
329         VolumeGroup volumeGroup = new VolumeGroup();
330         volumeGroup.setVolumeGroupId("volumeGroupId");
331         volumeGroup.setVolumeGroupName("volumeGroupName");
332
333         Map<String, String> expectedVolumeGroupParams = new HashMap<>();
334         expectedVolumeGroupParams.put("vnf_id", genericVnf.getVnfId());
335         expectedVolumeGroupParams.put("vnf_name", genericVnf.getVnfName());
336         expectedVolumeGroupParams.put("vf_module_id", volumeGroup.getVolumeGroupId());
337         expectedVolumeGroupParams.put("vf_module_name", volumeGroup.getVolumeGroupName());
338         RequestContext requestContext = new RequestContext();
339         Map<String, Object> actualVolumeGroupParams =
340                 vnfAdapterObjectMapper.createVolumeGroupParams(requestContext, genericVnf, volumeGroup, null);
341
342         assertEquals(expectedVolumeGroupParams, actualVolumeGroupParams);
343     }
344
345     @Test
346     public void test_createVolumeGroupParams_with_user_params() throws Exception {
347         GenericVnf genericVnf = new GenericVnf();
348         genericVnf.setVnfId("vnfId");
349         genericVnf.setVnfName("vnfName");
350
351         RequestContext requestContext = new RequestContext();
352         Map<String, Object> userParamsMap = new HashMap<>();
353         userParamsMap.put("name", "userParamKey");
354         userParamsMap.put("value", "userParamValue");
355         List<Map<String, Object>> userParams = new ArrayList<>();
356         userParams.add(userParamsMap);
357         RequestParameters requestParameters = new RequestParameters();
358         requestParameters.setUserParams(userParams);
359         requestContext.setRequestParameters(requestParameters);
360         VolumeGroup volumeGroup = new VolumeGroup();
361         volumeGroup.setVolumeGroupId("volumeGroupId");
362         volumeGroup.setVolumeGroupName("volumeGroupName");
363
364         String sdncVfModuleQueryResponse = new String(Files
365                 .readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleSdncVfModuleTopology.json")));
366
367         Map<String, String> expectedVolumeGroupParams = new HashMap<>();
368         expectedVolumeGroupParams.put("vnf_id", genericVnf.getVnfId());
369         expectedVolumeGroupParams.put("vnf_name", genericVnf.getVnfName());
370         expectedVolumeGroupParams.put("vf_module_id", volumeGroup.getVolumeGroupId());
371         expectedVolumeGroupParams.put("vf_module_name", volumeGroup.getVolumeGroupName());
372         expectedVolumeGroupParams.put("paramOne", "paramOneValue");
373         expectedVolumeGroupParams.put("paramTwo", "paramTwoValue");
374         expectedVolumeGroupParams.put("paramThree", "paramThreeValue");
375         expectedVolumeGroupParams.put("userParamKey", "userParamValue");
376
377         Map<String, Object> actualVolumeGroupParams = vnfAdapterObjectMapper.createVolumeGroupParams(requestContext,
378                 genericVnf, volumeGroup, sdncVfModuleQueryResponse);
379
380         assertEquals(expectedVolumeGroupParams, actualVolumeGroupParams);
381     }
382
383     @Test
384     public void test_createMsoRequest() {
385         RequestContext requestContext = new RequestContext();
386         requestContext.setMsoRequestId("msoRequestId");
387
388         ServiceInstance serviceInstance = new ServiceInstance();
389         serviceInstance.setServiceInstanceId("serviceInstanceId");
390
391         MsoRequest expectedMsoRequest = new MsoRequest();
392         expectedMsoRequest.setRequestId(requestContext.getMsoRequestId());
393         expectedMsoRequest.setServiceInstanceId(serviceInstance.getServiceInstanceId());
394
395         MsoRequest actualMsoRequest = vnfAdapterObjectMapper.createMsoRequest(requestContext, serviceInstance);
396
397         assertThat(expectedMsoRequest, sameBeanAs(actualMsoRequest));
398     }
399 }