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