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