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.client.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.servicedecomposition.bbobjects.Configuration;
51 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
57 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
58 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestParameters;
59 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoConfiguration;
60 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
61 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
62 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
63 import org.onap.so.client.exception.MapperException;
64 import org.onap.so.client.sdnc.beans.SDNCSvcAction;
67 public class GeneralTopologyObjectMapperTest extends TestDataSetup {
69 private GeneralTopologyObjectMapper genObjMapper = new GeneralTopologyObjectMapper();
72 public ExpectedException expectedException = ExpectedException.none();
75 public void before() {
85 public void testBuildServiceInformation() {
86 // prepare and set service instance
87 ServiceInstance serviceInstance = new ServiceInstance();
88 serviceInstance.setServiceInstanceId("serviceInstanceId");
89 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
90 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
91 modelInfoServiceInstance.setModelName("serviceModelName");
92 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
93 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
95 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
96 // prepare Customer object
97 Customer customer = new Customer();
98 customer.setGlobalCustomerId("globalCustomerId");
99 ServiceSubscription serviceSubscription = new ServiceSubscription();
100 serviceSubscription.setServiceType("productFamilyId");
101 customer.setServiceSubscription(serviceSubscription);
102 // set Customer on service instance
103 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
105 RequestContext requestContext = new RequestContext();
106 Map<String, Object> userParams = new HashMap<>();
107 userParams.put("key1", "value1");
108 requestContext.setUserParams(userParams);
109 requestContext.setProductFamilyId("productFamilyId");
111 GenericResourceApiServiceinformationServiceInformation serviceInfo =
112 genObjMapper.buildServiceInformation(serviceInstance, requestContext, customer, true);
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());
126 public void buildSdncRequestHeaderActivateTest() {
127 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
128 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ACTIVATE, "sdncReqId");
130 assertEquals(GenericResourceApiSvcActionEnumeration.ACTIVATE, requestHeader.getSvcAction());
131 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
135 public void buildSdncRequestHeaderAssignTest() {
136 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
137 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ASSIGN, "sdncReqId");
139 assertEquals(GenericResourceApiSvcActionEnumeration.ASSIGN, requestHeader.getSvcAction());
140 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
144 public void buildSdncRequestHeaderDeactivateTest() {
145 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
146 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DEACTIVATE, "sdncReqId");
148 assertEquals(GenericResourceApiSvcActionEnumeration.DEACTIVATE, requestHeader.getSvcAction());
149 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
153 public void buildSdncRequestHeaderDeleteTest() {
154 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
155 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DELETE, "sdncReqId");
157 assertEquals(GenericResourceApiSvcActionEnumeration.DELETE, requestHeader.getSvcAction());
158 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
162 public void buildSdncRequestHeaderChangeAssignTest() {
163 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader =
164 genObjMapper.buildSdncRequestHeader(SDNCSvcAction.CHANGE_ASSIGN, "sdncReqId");
166 assertEquals(GenericResourceApiSvcActionEnumeration.CHANGEASSIGN, requestHeader.getSvcAction());
167 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
171 public void buildConfigurationInformationTest_excludesOnapModelInfo() {
172 Configuration configuration = new Configuration();
173 configuration.setConfigurationId("testConfigurationId");
174 configuration.setConfigurationType("VNR");
175 configuration.setConfigurationName("VNRCONF");
176 GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation =
177 genObjMapper.buildConfigurationInformation(configuration, false);
178 assertEquals(configuration.getConfigurationId(), configurationInformation.getConfigurationId());
179 assertEquals(configuration.getConfigurationType(), configurationInformation.getConfigurationType());
180 assertEquals(configuration.getConfigurationName(), configurationInformation.getConfigurationName());
181 assertNull(configurationInformation.getOnapModelInformation());
185 public void buildConfigurationInformationTest_includesOnapModelInfo() {
186 Configuration configuration = new Configuration();
187 configuration.setConfigurationId("testConfigurationId");
188 configuration.setConfigurationType("VNR");
189 configuration.setConfigurationName("VNRCONF");
190 ModelInfoConfiguration modelInfoConfiguration = new ModelInfoConfiguration();
191 modelInfoConfiguration.setModelVersionId("modelVersionId");
192 modelInfoConfiguration.setModelInvariantId("modelInvariantId");
193 modelInfoConfiguration.setModelCustomizationId("modelCustomizationId");
194 configuration.setModelInfoConfiguration(modelInfoConfiguration);
196 GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation =
197 genObjMapper.buildConfigurationInformation(configuration, true);
199 assertEquals(configuration.getConfigurationId(), configurationInformation.getConfigurationId());
200 assertEquals(configuration.getConfigurationType(), configurationInformation.getConfigurationType());
201 assertEquals(configuration.getConfigurationName(), configurationInformation.getConfigurationName());
202 assertNotNull(configurationInformation.getOnapModelInformation());
203 assertEquals(configuration.getModelInfoConfiguration().getModelVersionId(),
204 configurationInformation.getOnapModelInformation().getModelUuid());
205 assertEquals(configuration.getModelInfoConfiguration().getModelInvariantId(),
206 configurationInformation.getOnapModelInformation().getModelInvariantUuid());
207 assertEquals(configuration.getModelInfoConfiguration().getModelCustomizationId(),
208 configurationInformation.getOnapModelInformation().getModelCustomizationUuid());
213 public void buildGcRequestInformationTest() {
214 GenericVnf vnf = new GenericVnf();
215 vnf.setVnfId("TestVnfId");
216 GenericResourceApiGcrequestinputGcRequestInput gcRequestInput =
217 genObjMapper.buildGcRequestInformation(vnf, null);
218 assertNotNull(gcRequestInput);
219 assertEquals(vnf.getVnfId(), gcRequestInput.getVnfId());
220 assertNull(gcRequestInput.getInputParameters());
224 public void buildGcRequestInformationTest_withInputParams() {
225 GenericVnf vnf = new GenericVnf();
226 vnf.setVnfId("TestVnfId");
227 GenericResourceApiParam genericResourceApiParam = new GenericResourceApiParam();
228 genericResourceApiParam.addParamItem(new GenericResourceApiParamParam());
229 GenericResourceApiGcrequestinputGcRequestInput gcRequestInput =
230 genObjMapper.buildGcRequestInformation(vnf, genericResourceApiParam);
231 assertNotNull(gcRequestInput);
232 assertEquals(vnf.getVnfId(), gcRequestInput.getVnfId());
233 assertNotNull(gcRequestInput.getInputParameters());
237 public void buildVnfInformationTest_withNullData() {
238 GenericVnf vnf = new GenericVnf();
239 vnf.setVnfId("TestVnfId");
240 ServiceInstance serviceInstance = new ServiceInstance();
241 serviceInstance.setServiceInstanceId("serviceInstanceId");
242 GenericResourceApiVnfinformationVnfInformation gcRequestInput =
243 genObjMapper.buildVnfInformation(vnf, serviceInstance, true);
244 assertNotNull(gcRequestInput);
245 assertNull(vnf.getModelInfoGenericVnf());
246 assertNull(gcRequestInput.getOnapModelInformation());
247 assertEquals(vnf.getVnfId(), gcRequestInput.getVnfId());
248 assertNotNull(gcRequestInput.getVnfId());
252 public void buildNetworkInformationTest() {
254 L3Network network = new L3Network();
255 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
256 modelInfoNetwork.setModelInvariantUUID("my-uuid");
257 modelInfoNetwork.setModelName("my-model-name");
258 modelInfoNetwork.setModelVersion("my-model-version");
259 modelInfoNetwork.setModelUUID("my-model-uuid");
260 modelInfoNetwork.setModelCustomizationUUID("my-customization-uuid");
261 network.setModelInfoNetwork(modelInfoNetwork);
262 network.setNetworkId("my-network-id");
263 network.setNetworkType("my-network-type");
264 network.setNetworkTechnology("my-network-technology");
266 GenericResourceApiNetworkinformationNetworkInformation networkInformation =
267 new GenericResourceApiNetworkinformationNetworkInformation();
268 GenericResourceApiOnapmodelinformationOnapModelInformation onapModelInformation =
269 new GenericResourceApiOnapmodelinformationOnapModelInformation();
270 networkInformation.setNetworkId("my-network-id");
271 networkInformation.setNetworkType("my-network-type");
272 networkInformation.networkTechnology("my-network-technology");
273 networkInformation.setFromPreload(null);
274 onapModelInformation.setModelInvariantUuid("my-uuid");
275 onapModelInformation.setModelName("my-model-name");
276 onapModelInformation.setModelVersion("my-model-version");
277 onapModelInformation.setModelUuid("my-model-uuid");
278 onapModelInformation.setModelCustomizationUuid("my-customization-uuid");
279 networkInformation.setOnapModelInformation(onapModelInformation);
281 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
286 public void buildNetworkInformationNoModelTest() {
288 L3Network network = new L3Network();
289 network.setNetworkId("my-network-id");
290 network.setNetworkType("my-network-type");
291 network.setNetworkTechnology("my-network-technology");
293 GenericResourceApiNetworkinformationNetworkInformation networkInformation =
294 new GenericResourceApiNetworkinformationNetworkInformation();
295 networkInformation.setNetworkId("my-network-id");
296 networkInformation.setNetworkType("my-network-type");
297 networkInformation.networkTechnology("my-network-technology");
298 networkInformation.setFromPreload(null);
301 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
307 public void buildVfModuleInformationTest_withNoModelIsFromPreload() {
308 VfModule vfModule = new VfModule();
309 vfModule.setVfModuleId("TestVfModuleId");
310 ServiceInstance serviceInstance = new ServiceInstance();
311 serviceInstance.setServiceInstanceId("serviceInstanceId");
312 GenericVnf genericVnf = new GenericVnf();
313 genericVnf.setVnfId("TestVnfId");
314 RequestContext requestContext = new RequestContext();
315 RequestParameters requestParameters = new RequestParameters();
316 requestParameters.setUsePreload(true);
317 requestContext.setRequestParameters(requestParameters);
318 GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
321 genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
322 } catch (MapperException ex) {
325 assertNotNull(gcRequestInput);
326 assertNull(vfModule.getModelInfoVfModule());
327 assertNull(gcRequestInput.getOnapModelInformation());
328 assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
329 assertNotNull(gcRequestInput.getVfModuleId());
330 assertTrue(gcRequestInput.getFromPreload());
334 public void buildVfModuleInformationTest_withNoModelIsNotFromPreload() {
335 VfModule vfModule = new VfModule();
336 vfModule.setVfModuleId("TestVfModuleId");
337 ServiceInstance serviceInstance = new ServiceInstance();
338 serviceInstance.setServiceInstanceId("serviceInstanceId");
339 GenericVnf genericVnf = new GenericVnf();
340 genericVnf.setVnfId("TestVnfId");
341 RequestContext requestContext = new RequestContext();
342 RequestParameters requestParameters = new RequestParameters();
343 requestParameters.setUsePreload(false);
344 requestContext.setRequestParameters(requestParameters);
345 GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
348 genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
349 } catch (MapperException ex) {
352 assertNotNull(gcRequestInput);
353 assertNull(vfModule.getModelInfoVfModule());
354 assertNull(gcRequestInput.getOnapModelInformation());
355 assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
356 assertNotNull(gcRequestInput.getVfModuleId());
357 assertFalse(gcRequestInput.getFromPreload());
361 public void buildVfModuleInformationTest_withNoModelNoRequestContext() {
362 VfModule vfModule = new VfModule();
363 vfModule.setVfModuleId("TestVfModuleId");
364 ServiceInstance serviceInstance = new ServiceInstance();
365 serviceInstance.setServiceInstanceId("serviceInstanceId");
366 GenericVnf genericVnf = new GenericVnf();
367 genericVnf.setVnfId("TestVnfId");
368 GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
370 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, null, false);
371 } catch (MapperException ex) {
374 assertNotNull(gcRequestInput);
375 assertNull(vfModule.getModelInfoVfModule());
376 assertNull(gcRequestInput.getOnapModelInformation());
377 assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
378 assertNotNull(gcRequestInput.getVfModuleId());
379 assertTrue(gcRequestInput.getFromPreload());
383 public void buildVfModuleInformationTest_withNoModelNoRequestParameters() {
384 VfModule vfModule = new VfModule();
385 vfModule.setVfModuleId("TestVfModuleId");
386 ServiceInstance serviceInstance = new ServiceInstance();
387 serviceInstance.setServiceInstanceId("serviceInstanceId");
388 GenericVnf genericVnf = new GenericVnf();
389 genericVnf.setVnfId("TestVnfId");
390 RequestContext requestContext = new RequestContext();
391 GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
394 genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
395 } catch (MapperException ex) {
398 assertNotNull(gcRequestInput);
399 assertNull(vfModule.getModelInfoVfModule());
400 assertNull(gcRequestInput.getOnapModelInformation());
401 assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
402 assertNotNull(gcRequestInput.getVfModuleId());
403 assertTrue(gcRequestInput.getFromPreload());
407 public void buildVfModuleInformationTest_withModel() {
408 VfModule vfModule = new VfModule();
409 vfModule.setVfModuleId("TestVfModuleId");
410 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
411 modelInfoVfModule.setModelInvariantUUID("testModelInvariantUUID");
412 modelInfoVfModule.setModelName("testModelName");
413 modelInfoVfModule.setModelVersion("testModelVersion");
414 modelInfoVfModule.setModelUUID("testModelUUID");
415 modelInfoVfModule.setModelCustomizationUUID("testModelCustomizationUUID");
416 vfModule.setModelInfoVfModule(modelInfoVfModule);
417 ServiceInstance serviceInstance = new ServiceInstance();
418 serviceInstance.setServiceInstanceId("serviceInstanceId");
419 GenericVnf genericVnf = new GenericVnf();
420 genericVnf.setVnfId("TestVnfId");
421 RequestContext requestContext = new RequestContext();
422 RequestParameters requestParameters = new RequestParameters();
423 requestParameters.setUsePreload(true);
424 requestContext.setRequestParameters(requestParameters);
425 GenericResourceApiVfmoduleinformationVfModuleInformation gcRequestInput = null;
428 genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, true);
429 } catch (MapperException ex) {
432 assertNotNull(gcRequestInput);
433 assertNotNull(vfModule.getModelInfoVfModule());
434 assertNotNull(gcRequestInput.getOnapModelInformation());
435 assertEquals(modelInfoVfModule.getModelInvariantUUID(),
436 gcRequestInput.getOnapModelInformation().getModelInvariantUuid());
437 assertEquals(modelInfoVfModule.getModelName(), gcRequestInput.getOnapModelInformation().getModelName());
438 assertEquals(modelInfoVfModule.getModelVersion(), gcRequestInput.getOnapModelInformation().getModelVersion());
439 assertEquals(modelInfoVfModule.getModelUUID(), gcRequestInput.getOnapModelInformation().getModelUuid());
440 assertEquals(modelInfoVfModule.getModelCustomizationUUID(),
441 gcRequestInput.getOnapModelInformation().getModelCustomizationUuid());
442 assertEquals(vfModule.getVfModuleId(), gcRequestInput.getVfModuleId());
443 assertNotNull(gcRequestInput.getVfModuleId());
444 assertTrue(gcRequestInput.getFromPreload());