2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.so.bpmn.infrastructure.sdnc.mapper;
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;
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;
68 public class GeneralTopologyObjectMapperTest extends TestDataSetup {
70 private GeneralTopologyObjectMapper genObjMapper = new GeneralTopologyObjectMapper();
73 public ExpectedException expectedException = ExpectedException.none();
76 public void before() {
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");
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);
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");
112 GenericResourceApiServiceinformationServiceInformation serviceInfo =
113 genObjMapper.buildServiceInformation(serviceInstance, requestContext, customer, true);
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());
127 public void buildSdncRequestHeaderActivateTest() {
128 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
129 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ACTIVATE, "sdncReqId");
131 assertEquals(GenericResourceApiSvcActionEnumeration.ACTIVATE, requestHeader.getSvcAction());
132 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
136 public void buildSdncRequestHeaderAssignTest() {
137 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
138 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ASSIGN, "sdncReqId");
140 assertEquals(GenericResourceApiSvcActionEnumeration.ASSIGN, requestHeader.getSvcAction());
141 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
145 public void buildSdncRequestHeaderDeactivateTest() {
146 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
147 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DEACTIVATE, "sdncReqId");
149 assertEquals(GenericResourceApiSvcActionEnumeration.DEACTIVATE, requestHeader.getSvcAction());
150 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
154 public void buildSdncRequestHeaderDeleteTest() {
155 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
156 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DELETE, "sdncReqId");
158 assertEquals(GenericResourceApiSvcActionEnumeration.DELETE, requestHeader.getSvcAction());
159 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
163 public void buildSdncRequestHeaderChangeAssignTest() {
164 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
165 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.CHANGE_ASSIGN, "sdncReqId");
167 assertEquals(GenericResourceApiSvcActionEnumeration.CHANGEASSIGN, requestHeader.getSvcAction());
168 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
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());
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);
197 GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation =
198 genObjMapper.buildConfigurationInformation(configuration, true);
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());
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());
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());
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());
253 public void buildNetworkInformationTest() {
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");
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);
282 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
287 public void buildNetworkInformationNoModelTest() {
289 L3Network network = new L3Network();
290 network.setNetworkId("my-network-id");
291 network.setNetworkType("my-network-type");
292 network.setNetworkTechnology("my-network-technology");
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);
302 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
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;
322 genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
323 } catch (MapperException ex) {
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());
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;
349 genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
350 } catch (MapperException ex) {
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());
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;
371 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, null, false);
372 } catch (MapperException ex) {
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());
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;
395 genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
396 } catch (MapperException ex) {
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());
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;
429 genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, true);
430 } catch (MapperException ex) {
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());