Replaced all tabs with spaces in java and pom.xml
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / sdnc / mapper / VfModuleTopologyOperationRequestMapperTest.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.sdnc.mapper;
22
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import java.nio.file.Files;
29 import java.nio.file.Paths;
30 import java.util.ArrayList;
31 import java.util.HashMap;
32 import java.util.List;
33 import java.util.Map;
34 import org.junit.Rule;
35 import org.junit.Test;
36 import org.junit.rules.ExpectedException;
37 import org.junit.runner.RunWith;
38 import org.mockito.InjectMocks;
39 import org.mockito.Spy;
40 import org.mockito.junit.MockitoJUnitRunner;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
45 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
46 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
47 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
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.ModelInfoGenericVnf;
51 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
52 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
53 import org.onap.so.client.exception.MapperException;
54 import org.onap.so.client.sdnc.beans.SDNCSvcAction;
55 import org.onap.so.client.sdnc.beans.SDNCSvcOperation;
56 import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleOperationInformation;
57 import com.fasterxml.jackson.databind.ObjectMapper;
58
59 @RunWith(MockitoJUnitRunner.class)
60 public class VfModuleTopologyOperationRequestMapperTest {
61
62     private final static String JSON_FILE_LOCATION = "src/test/resources/__files/BuildingBlocks/";
63     private final static String ERRORMESSAGE = "VF Module model info is null for testVfModuleId";
64
65     @Spy
66     private GeneralTopologyObjectMapper generalTopologyObjectMapper;
67
68     @InjectMocks
69     private VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
70
71     @Rule
72     public ExpectedException expectedException = ExpectedException.none();
73
74     @Test
75     public void assignGenericResourceApiVfModuleInformationTest() throws Exception {
76
77         // prepare and set service instance
78         ServiceInstance serviceInstance = new ServiceInstance();
79         serviceInstance.setServiceInstanceId("serviceInstanceId");
80         ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
81         modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
82         modelInfoServiceInstance.setModelName("serviceModelName");
83         modelInfoServiceInstance.setModelUuid("serviceModelUuid");
84         modelInfoServiceInstance.setModelVersion("serviceModelVersion");
85         serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
86         // prepare Customer object
87         Customer customer = new Customer();
88         customer.setGlobalCustomerId("globalCustomerId");
89         ServiceSubscription serviceSubscription = new ServiceSubscription();
90         serviceSubscription.setServiceType("productFamilyId");
91         customer.setServiceSubscription(serviceSubscription);
92
93         customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
94         //
95         RequestContext requestContext = new RequestContext();
96         Map<String, Object> userParams = new HashMap<>();
97         userParams.put("key1", "value1");
98         requestContext.setUserParams(userParams);
99         requestContext.setProductFamilyId("productFamilyId");
100         RequestParameters requestParameters = new RequestParameters();
101         requestParameters.setUsePreload(true);
102         requestContext.setRequestParameters(requestParameters);
103         requestContext.setMsoRequestId("MsoRequestId");
104
105         GenericVnf vnf = new GenericVnf();
106         vnf.setVnfId("testVnfId");
107         vnf.setVnfType("testVnfType");
108         vnf.setVnfName("testVnfName");
109         ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
110         modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
111         modelInfoGenericVnf.setModelName("vnfModelName");
112         modelInfoGenericVnf.setModelVersion("vnfModelVersion");
113         modelInfoGenericVnf.setModelUuid("vnfModelUuid");
114         modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
115         vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
116
117         VfModule vfModule = new VfModule();
118         vfModule.setVfModuleId("testVfModuleId");
119         vfModule.setVfModuleName("testVfModuleName");
120         ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
121         modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
122         modelInfoVfModule.setModelName("vfModuleModelName");
123         modelInfoVfModule.setModelVersion("vfModuleModelVersion");
124         modelInfoVfModule.setModelUUID("vfModuleModelUuid");
125         modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
126         vfModule.setModelInfoVfModule(modelInfoVfModule);
127         HashMap<String, String> cloudParams = new HashMap<String, String>();
128         cloudParams.put("key2", "value2");
129         vfModule.setCloudParams(cloudParams);
130
131         VolumeGroup volumeGroup = new VolumeGroup();
132         volumeGroup.setVolumeGroupId("volumeGroupId");
133         volumeGroup.setVolumeGroupName("volumeGroupName");
134
135         CloudRegion cloudRegion = new CloudRegion();
136
137         GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest =
138                 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule,
139                         volumeGroup, vnf, serviceInstance, customer, cloudRegion, requestContext, null);
140
141         String jsonToCompare = new String(Files.readAllBytes(
142                 Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationAssign.json")));
143
144         ObjectMapper omapper = new ObjectMapper();
145         GenericResourceApiVfModuleOperationInformation reqMapper1 =
146                 omapper.readValue(jsonToCompare, GenericResourceApiVfModuleOperationInformation.class);
147
148         assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
149                 .ignoring("requestInformation.requestId"));
150         assertEquals("MsoRequestId", vfModuleSDNCrequest.getRequestInformation().getRequestId());
151     }
152
153     @Test
154     public void unassignGenericResourceApiVfModuleInformationTest() throws Exception {
155
156         // prepare and set service instance
157         ServiceInstance serviceInstance = new ServiceInstance();
158         serviceInstance.setServiceInstanceId("serviceInstanceId");
159
160         // prepare and set vnf instance
161
162         GenericVnf vnf = new GenericVnf();
163         vnf.setVnfId("testVnfId");
164         vnf.setVnfType("testVnfType");
165
166         // prepare and set vf module instance
167
168         VfModule vfModule = new VfModule();
169         vfModule.setVfModuleId("testVfModuleId");
170         vfModule.setVfModuleName("testVfModuleName");
171
172         RequestContext requestContext = new RequestContext();
173         requestContext.setMsoRequestId("MsoRequestId");
174
175         GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest =
176                 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, vfModule, null,
177                         vnf, serviceInstance, null, null, requestContext, null);
178
179         String jsonToCompare = new String(Files.readAllBytes(
180                 Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationUnassign.json")));
181
182         ObjectMapper omapper = new ObjectMapper();
183         GenericResourceApiVfModuleOperationInformation reqMapper1 =
184                 omapper.readValue(jsonToCompare, GenericResourceApiVfModuleOperationInformation.class);
185
186         assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
187                 .ignoring("requestInformation.requestId"));
188         assertEquals("MsoRequestId", vfModuleSDNCrequest.getRequestInformation().getRequestId());
189     }
190
191     @Test
192     public void unassignGenericResourceApiVfModuleInformationNullMsoReqIdTest() throws Exception {
193
194         // prepare and set service instance
195         ServiceInstance serviceInstance = new ServiceInstance();
196         serviceInstance.setServiceInstanceId("serviceInstanceId");
197
198         // prepare and set vnf instance
199
200         GenericVnf vnf = new GenericVnf();
201         vnf.setVnfId("testVnfId");
202         vnf.setVnfType("testVnfType");
203
204         // prepare and set vf module instance
205
206         VfModule vfModule = new VfModule();
207         vfModule.setVfModuleId("testVfModuleId");
208         vfModule.setVfModuleName("testVfModuleName");
209
210         RequestContext requestContext = new RequestContext();
211
212         GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest =
213                 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, vfModule, null,
214                         vnf, serviceInstance, null, null, requestContext, null);
215
216         assertNotNull(vfModuleSDNCrequest.getRequestInformation().getRequestId());
217     }
218
219     @Test
220     public void reqMapperTest() throws Exception {
221
222         // prepare and set service instance
223         ServiceInstance serviceInstance = new ServiceInstance();
224         serviceInstance.setServiceInstanceId("serviceInstanceId");
225         ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
226         modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
227         modelInfoServiceInstance.setModelName("serviceModelName");
228         modelInfoServiceInstance.setModelUuid("serviceModelUuid");
229         modelInfoServiceInstance.setModelVersion("serviceModelVersion");
230
231         serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
232         // prepare Customer object
233         Customer customer = new Customer();
234         customer.setGlobalCustomerId("globalCustomerId");
235         customer.setServiceSubscription(new ServiceSubscription());
236         // set Customer on service instance
237         customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
238         //
239         RequestContext requestContext = new RequestContext();
240         RequestParameters requestParameters = new RequestParameters();
241         HashMap<String, Object> userParams1 = new HashMap<>();
242         userParams1.put("key1", "value1");
243         List<Map<String, Object>> userParams = new ArrayList<>();
244         userParams.add(userParams1);
245
246         requestParameters.setUserParams(userParams);
247         requestContext.setRequestParameters(requestParameters);
248         requestContext.setProductFamilyId("productFamilyId");
249
250         GenericVnf vnf = new GenericVnf();
251         vnf.setVnfId("testVnfId");
252         vnf.setVnfType("testVnfType");
253         ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
254         modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
255         modelInfoGenericVnf.setModelName("vnfModelName");
256         modelInfoGenericVnf.setModelVersion("vnfModelVersion");
257         modelInfoGenericVnf.setModelUuid("vnfModelUuid");
258         modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
259         vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
260
261         VfModule vfModule = new VfModule();
262         vfModule.setVfModuleId("testVfModuleId");
263         vfModule.setVfModuleName("testVfModuleName");
264         ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
265         modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
266         modelInfoVfModule.setModelName("vfModuleModelName");
267         modelInfoVfModule.setModelVersion("vfModuleModelVersion");
268         modelInfoVfModule.setModelUUID("vfModuleModelUuid");
269         modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
270         vfModule.setModelInfoVfModule(modelInfoVfModule);
271
272         CloudRegion cloudRegion = new CloudRegion();
273
274         GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest =
275                 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null,
276                         vnf, serviceInstance, customer, cloudRegion, requestContext, null);
277
278         assertNull(vfModuleSDNCrequest.getServiceInformation().getOnapModelInformation().getModelCustomizationUuid());
279         assertEquals("vnfModelCustomizationUuid",
280                 vfModuleSDNCrequest.getVnfInformation().getOnapModelInformation().getModelCustomizationUuid());
281         assertEquals("vfModuleModelCustomizationUuid",
282                 vfModuleSDNCrequest.getVfModuleInformation().getOnapModelInformation().getModelCustomizationUuid());
283     }
284
285     @Test
286     public void reqMapperNoModelInfoTest() throws Exception {
287
288         // prepare and set service instance
289         ServiceInstance serviceInstance = new ServiceInstance();
290         serviceInstance.setServiceInstanceId("serviceInstanceId");
291         ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
292         modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
293         modelInfoServiceInstance.setModelName("serviceModelName");
294         modelInfoServiceInstance.setModelUuid("serviceModelUuid");
295         modelInfoServiceInstance.setModelVersion("serviceModelVersion");
296
297         serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
298         // prepare Customer object
299         Customer customer = new Customer();
300         customer.setGlobalCustomerId("globalCustomerId");
301         customer.setServiceSubscription(new ServiceSubscription());
302         // set Customer on service instance
303         customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
304         //
305         RequestContext requestContext = new RequestContext();
306         Map<String, Object> userParams = new HashMap<String, Object>();
307         userParams.put("key1", "value1");
308         requestContext.setUserParams(userParams);
309         requestContext.setProductFamilyId("productFamilyId");
310
311         GenericVnf vnf = new GenericVnf();
312         vnf.setVnfId("testVnfId");
313         vnf.setVnfType("testVnfType");
314         ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
315         modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
316         modelInfoGenericVnf.setModelName("vnfModelName");
317         modelInfoGenericVnf.setModelVersion("vnfModelVersion");
318         modelInfoGenericVnf.setModelUuid("vnfModelUuid");
319         modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
320         vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
321
322         VfModule vfModule = new VfModule();
323         vfModule.setVfModuleId("testVfModuleId");
324         vfModule.setVfModuleName("testVfModuleName");
325         vfModule.setModelInfoVfModule(null);
326
327         CloudRegion cloudRegion = new CloudRegion();
328
329         expectedException.expect(MapperException.class);
330         expectedException.expectMessage(ERRORMESSAGE);
331
332         mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf,
333                 serviceInstance, customer, cloudRegion, requestContext, null);
334     }
335
336 }