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