88a291e68b9d076bdacb490fb86d8c408491e73e
[so.git] /
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.matcher.Matchers.sameBeanAs;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertFalse;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import static org.junit.Assert.assertThat;
29 import static org.junit.Assert.assertTrue;
30 import java.util.HashMap;
31 import java.util.Map;
32 import org.junit.After;
33 import org.junit.Before;
34 import org.junit.Rule;
35 import org.junit.Test;
36 import org.junit.rules.ExpectedException;
37 import org.mockito.InjectMocks;
38 import org.onap.sdnc.northbound.client.model.GenericResourceApiConfigurationinformationConfigurationInformation;
39 import org.onap.sdnc.northbound.client.model.GenericResourceApiGcrequestinputGcRequestInput;
40 import org.onap.sdnc.northbound.client.model.GenericResourceApiNetworkinformationNetworkInformation;
41 import org.onap.sdnc.northbound.client.model.GenericResourceApiOnapmodelinformationOnapModelInformation;
42 import org.onap.sdnc.northbound.client.model.GenericResourceApiParam;
43 import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam;
44 import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader;
45 import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation;
46 import org.onap.sdnc.northbound.client.model.GenericResourceApiSvcActionEnumeration;
47 import org.onap.sdnc.northbound.client.model.GenericResourceApiVfmoduleinformationVfModuleInformation;
48 import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfinformationVnfInformation;
49 import org.onap.so.bpmn.common.data.TestDataSetup;
50 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
51 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
57 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
58 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestParameters;
59 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoConfiguration;
60 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
61 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
62 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
63 import org.onap.so.client.exception.MapperException;
64 import org.onap.so.client.sdnc.beans.SDNCSvcAction;
65
66
67 public class GeneralTopologyObjectMapperTest extends TestDataSetup {
68     @InjectMocks
69     private GeneralTopologyObjectMapper genObjMapper = new GeneralTopologyObjectMapper();
70
71     @Rule
72     public ExpectedException expectedException = ExpectedException.none();
73
74     @Before
75     public void before() {
76
77     }
78
79     @After
80     public void after() {
81
82     }
83
84     @Test
85     public void testBuildServiceInformation() {
86         // prepare and set service instance
87         ServiceInstance serviceInstance = new ServiceInstance();
88         serviceInstance.setServiceInstanceId("serviceInstanceId");
89         ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
90         modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
91         modelInfoServiceInstance.setModelName("serviceModelName");
92         modelInfoServiceInstance.setModelUuid("serviceModelUuid");
93         modelInfoServiceInstance.setModelVersion("serviceModelVersion");
94
95         serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
96         // prepare Customer object
97         Customer customer = new Customer();
98         customer.setGlobalCustomerId("globalCustomerId");
99         ServiceSubscription serviceSubscription = new ServiceSubscription();
100         serviceSubscription.setServiceType("productFamilyId");
101         customer.setServiceSubscription(serviceSubscription);
102         // set Customer on service instance
103         customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
104         //
105         RequestContext requestContext = new RequestContext();
106         Map<String, Object> userParams = new HashMap<>();
107         userParams.put("key1", "value1");
108         requestContext.setUserParams(userParams);
109         requestContext.setProductFamilyId("productFamilyId");
110
111         GenericResourceApiServiceinformationServiceInformation serviceInfo =
112                 genObjMapper.buildServiceInformation(serviceInstance, requestContext, customer, true);
113
114         assertEquals("serviceModelInvariantUuid", serviceInfo.getOnapModelInformation().getModelInvariantUuid());
115         assertEquals("serviceModelName", serviceInfo.getOnapModelInformation().getModelName());
116         assertEquals("serviceModelUuid", serviceInfo.getOnapModelInformation().getModelUuid());
117         assertEquals("serviceModelVersion", serviceInfo.getOnapModelInformation().getModelVersion());
118         assertNull(serviceInfo.getOnapModelInformation().getModelCustomizationUuid());
119         assertEquals("serviceInstanceId", serviceInfo.getServiceInstanceId());
120         assertEquals("serviceInstanceId", serviceInfo.getServiceId());
121         assertEquals("globalCustomerId", serviceInfo.getGlobalCustomerId());
122         assertEquals("productFamilyId", serviceInfo.getSubscriptionServiceType());
123     }
124
125     @Test
126     public void buildSdncRequestHeaderActivateTest() {
127         GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
128                 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ACTIVATE, "sdncReqId");
129
130         assertEquals(GenericResourceApiSvcActionEnumeration.ACTIVATE, requestHeader.getSvcAction());
131         assertEquals("sdncReqId", requestHeader.getSvcRequestId());
132     }
133
134     @Test
135     public void buildSdncRequestHeaderAssignTest() {
136         GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
137                 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ASSIGN, "sdncReqId");
138
139         assertEquals(GenericResourceApiSvcActionEnumeration.ASSIGN, requestHeader.getSvcAction());
140         assertEquals("sdncReqId", requestHeader.getSvcRequestId());
141     }
142
143     @Test
144     public void buildSdncRequestHeaderDeactivateTest() {
145         GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
146                 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DEACTIVATE, "sdncReqId");
147
148         assertEquals(GenericResourceApiSvcActionEnumeration.DEACTIVATE, requestHeader.getSvcAction());
149         assertEquals("sdncReqId", requestHeader.getSvcRequestId());
150     }
151
152     @Test
153     public void buildSdncRequestHeaderDeleteTest() {
154         GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
155                 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DELETE, "sdncReqId");
156
157         assertEquals(GenericResourceApiSvcActionEnumeration.DELETE, requestHeader.getSvcAction());
158         assertEquals("sdncReqId", requestHeader.getSvcRequestId());
159     }
160
161     @Test
162     public void buildSdncRequestHeaderChangeAssignTest() {
163         GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
164                 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.CHANGE_ASSIGN, "sdncReqId");
165
166         assertEquals(GenericResourceApiSvcActionEnumeration.CHANGEASSIGN, requestHeader.getSvcAction());
167         assertEquals("sdncReqId", requestHeader.getSvcRequestId());
168     }
169
170     @Test
171     public void buildConfigurationInformationTest_excludesOnapModelInfo() {
172         Configuration configuration = new Configuration();
173         configuration.setConfigurationId("testConfigurationId");
174         configuration.setConfigurationType("VNR");
175         configuration.setConfigurationName("VNRCONF");
176         GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation =
177                 genObjMapper.buildConfigurationInformation(configuration, false);
178         assertEquals(configuration.getConfigurationId(), configurationInformation.getConfigurationId());
179         assertEquals(configuration.getConfigurationType(), configurationInformation.getConfigurationType());
180         assertEquals(configuration.getConfigurationName(), configurationInformation.getConfigurationName());
181         assertNull(configurationInformation.getOnapModelInformation());
182     }
183
184     @Test
185     public void buildConfigurationInformationTest_includesOnapModelInfo() {
186         Configuration configuration = new Configuration();
187         configuration.setConfigurationId("testConfigurationId");
188         configuration.setConfigurationType("VNR");
189         configuration.setConfigurationName("VNRCONF");
190         ModelInfoConfiguration modelInfoConfiguration = new ModelInfoConfiguration();
191         modelInfoConfiguration.setModelVersionId("modelVersionId");
192         modelInfoConfiguration.setModelInvariantId("modelInvariantId");
193         modelInfoConfiguration.setModelCustomizationId("modelCustomizationId");
194         configuration.setModelInfoConfiguration(modelInfoConfiguration);
195
196         GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation =
197                 genObjMapper.buildConfigurationInformation(configuration, true);
198
199         assertEquals(configuration.getConfigurationId(), configurationInformation.getConfigurationId());
200         assertEquals(configuration.getConfigurationType(), configurationInformation.getConfigurationType());
201         assertEquals(configuration.getConfigurationName(), configurationInformation.getConfigurationName());
202         assertNotNull(configurationInformation.getOnapModelInformation());
203         assertEquals(configuration.getModelInfoConfiguration().getModelVersionId(),
204                 configurationInformation.getOnapModelInformation().getModelUuid());
205         assertEquals(configuration.getModelInfoConfiguration().getModelInvariantId(),
206                 configurationInformation.getOnapModelInformation().getModelInvariantUuid());
207         assertEquals(configuration.getModelInfoConfiguration().getModelCustomizationId(),
208                 configurationInformation.getOnapModelInformation().getModelCustomizationUuid());
209
210     }
211
212     @Test
213     public void buildGcRequestInformationTest() {
214         GenericVnf vnf = new GenericVnf();
215         vnf.setVnfId("TestVnfId");
216         GenericResourceApiGcrequestinputGcRequestInput gcRequestInput =
217                 genObjMapper.buildGcRequestInformation(vnf, null);
218         assertNotNull(gcRequestInput);
219         assertEquals(vnf.getVnfId(), gcRequestInput.getVnfId());
220         assertNull(gcRequestInput.getInputParameters());
221     }
222
223     @Test
224     public void buildGcRequestInformationTest_withInputParams() {
225         GenericVnf vnf = new GenericVnf();
226         vnf.setVnfId("TestVnfId");
227         GenericResourceApiParam genericResourceApiParam = new GenericResourceApiParam();
228         genericResourceApiParam.addParamItem(new GenericResourceApiParamParam());
229         GenericResourceApiGcrequestinputGcRequestInput gcRequestInput =
230                 genObjMapper.buildGcRequestInformation(vnf, genericResourceApiParam);
231         assertNotNull(gcRequestInput);
232         assertEquals(vnf.getVnfId(), gcRequestInput.getVnfId());
233         assertNotNull(gcRequestInput.getInputParameters());
234     }
235
236     @Test
237     public void buildVnfInformationTest_withNullData() {
238         GenericVnf vnf = new GenericVnf();
239         vnf.setVnfId("TestVnfId");
240         ServiceInstance serviceInstance = new ServiceInstance();
241         serviceInstance.setServiceInstanceId("serviceInstanceId");
242         GenericResourceApiVnfinformationVnfInformation gcRequestInput =
243                 genObjMapper.buildVnfInformation(vnf, serviceInstance, true);
244         assertNotNull(gcRequestInput);
245         assertNull(vnf.getModelInfoGenericVnf());
246         assertNull(gcRequestInput.getOnapModelInformation());
247         assertEquals(vnf.getVnfId(), gcRequestInput.getVnfId());
248         assertNotNull(gcRequestInput.getVnfId());
249     }
250
251     @Test
252     public void buildNetworkInformationTest() {
253
254         L3Network network = new L3Network();
255         ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
256         modelInfoNetwork.setModelInvariantUUID("my-uuid");
257         modelInfoNetwork.setModelName("my-model-name");
258         modelInfoNetwork.setModelVersion("my-model-version");
259         modelInfoNetwork.setModelUUID("my-model-uuid");
260         modelInfoNetwork.setModelCustomizationUUID("my-customization-uuid");
261         network.setModelInfoNetwork(modelInfoNetwork);
262         network.setNetworkId("my-network-id");
263         network.setNetworkType("my-network-type");
264         network.setNetworkTechnology("my-network-technology");
265
266         GenericResourceApiNetworkinformationNetworkInformation networkInformation =
267                 new GenericResourceApiNetworkinformationNetworkInformation();
268         GenericResourceApiOnapmodelinformationOnapModelInformation onapModelInformation =
269                 new GenericResourceApiOnapmodelinformationOnapModelInformation();
270         networkInformation.setNetworkId("my-network-id");
271         networkInformation.setNetworkType("my-network-type");
272         networkInformation.networkTechnology("my-network-technology");
273         networkInformation.setFromPreload(null);
274         onapModelInformation.setModelInvariantUuid("my-uuid");
275         onapModelInformation.setModelName("my-model-name");
276         onapModelInformation.setModelVersion("my-model-version");
277         onapModelInformation.setModelUuid("my-model-uuid");
278         onapModelInformation.setModelCustomizationUuid("my-customization-uuid");
279         networkInformation.setOnapModelInformation(onapModelInformation);
280
281         assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
282
283     }
284
285     @Test
286     public void buildNetworkInformationNoModelTest() {
287
288         L3Network network = new L3Network();
289         network.setNetworkId("my-network-id");
290         network.setNetworkType("my-network-type");
291         network.setNetworkTechnology("my-network-technology");
292
293         GenericResourceApiNetworkinformationNetworkInformation networkInformation =
294                 new GenericResourceApiNetworkinformationNetworkInformation();
295         networkInformation.setNetworkId("my-network-id");
296         networkInformation.setNetworkType("my-network-type");
297         networkInformation.networkTechnology("my-network-technology");
298         networkInformation.setFromPreload(null);
299
300
301         assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
302
303     }
304
305
306     @Test
307     public void buildVfModuleInformationTest_withNoModelIsFromPreload() {
308         VfModule vfModule = new VfModule();
309         vfModule.setVfModuleId("TestVfModuleId");
310         ServiceInstance serviceInstance = new ServiceInstance();
311         serviceInstance.setServiceInstanceId("serviceInstanceId");
312         GenericVnf genericVnf = new GenericVnf();
313         genericVnf.setVnfId("TestVnfId");
314         RequestContext requestContext = new RequestContext();
315         RequestParameters requestParameters = new RequestParameters();
316         requestParameters.setUsePreload(true);
317         requestContext.setRequestParameters(requestParameters);
318         GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
319         try {
320             gcRequestInput =
321                     genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
322         } catch (MapperException ex) {
323
324         }
325         assertNotNull(gcRequestInput);
326         assertNull(vfModule.getModelInfoVfModule());
327         assertNull(gcRequestInput.getOnapModelInformation());
328         assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
329         assertNotNull(gcRequestInput.getVfModuleId());
330         assertTrue(gcRequestInput.getFromPreload());
331     }
332
333     @Test
334     public void buildVfModuleInformationTest_withNoModelIsNotFromPreload() {
335         VfModule vfModule = new VfModule();
336         vfModule.setVfModuleId("TestVfModuleId");
337         ServiceInstance serviceInstance = new ServiceInstance();
338         serviceInstance.setServiceInstanceId("serviceInstanceId");
339         GenericVnf genericVnf = new GenericVnf();
340         genericVnf.setVnfId("TestVnfId");
341         RequestContext requestContext = new RequestContext();
342         RequestParameters requestParameters = new RequestParameters();
343         requestParameters.setUsePreload(false);
344         requestContext.setRequestParameters(requestParameters);
345         GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
346         try {
347             gcRequestInput =
348                     genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
349         } catch (MapperException ex) {
350
351         }
352         assertNotNull(gcRequestInput);
353         assertNull(vfModule.getModelInfoVfModule());
354         assertNull(gcRequestInput.getOnapModelInformation());
355         assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
356         assertNotNull(gcRequestInput.getVfModuleId());
357         assertFalse(gcRequestInput.getFromPreload());
358     }
359
360     @Test
361     public void buildVfModuleInformationTest_withNoModelNoRequestContext() {
362         VfModule vfModule = new VfModule();
363         vfModule.setVfModuleId("TestVfModuleId");
364         ServiceInstance serviceInstance = new ServiceInstance();
365         serviceInstance.setServiceInstanceId("serviceInstanceId");
366         GenericVnf genericVnf = new GenericVnf();
367         genericVnf.setVnfId("TestVnfId");
368         GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
369         try {
370             gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, null, false);
371         } catch (MapperException ex) {
372
373         }
374         assertNotNull(gcRequestInput);
375         assertNull(vfModule.getModelInfoVfModule());
376         assertNull(gcRequestInput.getOnapModelInformation());
377         assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
378         assertNotNull(gcRequestInput.getVfModuleId());
379         assertTrue(gcRequestInput.getFromPreload());
380     }
381
382     @Test
383     public void buildVfModuleInformationTest_withNoModelNoRequestParameters() {
384         VfModule vfModule = new VfModule();
385         vfModule.setVfModuleId("TestVfModuleId");
386         ServiceInstance serviceInstance = new ServiceInstance();
387         serviceInstance.setServiceInstanceId("serviceInstanceId");
388         GenericVnf genericVnf = new GenericVnf();
389         genericVnf.setVnfId("TestVnfId");
390         RequestContext requestContext = new RequestContext();
391         GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
392         try {
393             gcRequestInput =
394                     genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
395         } catch (MapperException ex) {
396
397         }
398         assertNotNull(gcRequestInput);
399         assertNull(vfModule.getModelInfoVfModule());
400         assertNull(gcRequestInput.getOnapModelInformation());
401         assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
402         assertNotNull(gcRequestInput.getVfModuleId());
403         assertTrue(gcRequestInput.getFromPreload());
404     }
405
406     @Test
407     public void buildVfModuleInformationTest_withModel() {
408         VfModule vfModule = new VfModule();
409         vfModule.setVfModuleId("TestVfModuleId");
410         ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
411         modelInfoVfModule.setModelInvariantUUID("testModelInvariantUUID");
412         modelInfoVfModule.setModelName("testModelName");
413         modelInfoVfModule.setModelVersion("testModelVersion");
414         modelInfoVfModule.setModelUUID("testModelUUID");
415         modelInfoVfModule.setModelCustomizationUUID("testModelCustomizationUUID");
416         vfModule.setModelInfoVfModule(modelInfoVfModule);
417         ServiceInstance serviceInstance = new ServiceInstance();
418         serviceInstance.setServiceInstanceId("serviceInstanceId");
419         GenericVnf genericVnf = new GenericVnf();
420         genericVnf.setVnfId("TestVnfId");
421         RequestContext requestContext = new RequestContext();
422         RequestParameters requestParameters = new RequestParameters();
423         requestParameters.setUsePreload(true);
424         requestContext.setRequestParameters(requestParameters);
425         GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
426         try {
427             gcRequestInput =
428                     genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, true);
429         } catch (MapperException ex) {
430
431         }
432         assertNotNull(gcRequestInput);
433         assertNotNull(vfModule.getModelInfoVfModule());
434         assertNotNull(gcRequestInput.getOnapModelInformation());
435         assertEquals(modelInfoVfModule.getModelInvariantUUID(),
436                 gcRequestInput.getOnapModelInformation().getModelInvariantUuid());
437         assertEquals(modelInfoVfModule.getModelName(), gcRequestInput.getOnapModelInformation().getModelName());
438         assertEquals(modelInfoVfModule.getModelVersion(), gcRequestInput.getOnapModelInformation().getModelVersion());
439         assertEquals(modelInfoVfModule.getModelUUID(), gcRequestInput.getOnapModelInformation().getModelUuid());
440         assertEquals(modelInfoVfModule.getModelCustomizationUUID(),
441                 gcRequestInput.getOnapModelInformation().getModelCustomizationUuid());
442         assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
443         assertNotNull(gcRequestInput.getVfModuleId());
444         assertTrue(gcRequestInput.getFromPreload());
445     }
446 }