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;
31 import java.util.HashMap;
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;
69 public class GeneralTopologyObjectMapperTest extends TestDataSetup {
71 private GeneralTopologyObjectMapper genObjMapper = new GeneralTopologyObjectMapper();
74 public ExpectedException expectedException = ExpectedException.none();
77 public void before() {
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");
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);
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");
113 GenericResourceApiServiceinformationServiceInformation serviceInfo = 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 = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ACTIVATE, "sdncReqId");
130 assertEquals(GenericResourceApiSvcActionEnumeration.ACTIVATE, requestHeader.getSvcAction());
131 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
135 public void buildSdncRequestHeaderAssignTest() {
136 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ASSIGN, "sdncReqId");
138 assertEquals(GenericResourceApiSvcActionEnumeration.ASSIGN, requestHeader.getSvcAction());
139 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
143 public void buildSdncRequestHeaderDeactivateTest() {
144 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DEACTIVATE, "sdncReqId");
146 assertEquals(GenericResourceApiSvcActionEnumeration.DEACTIVATE, requestHeader.getSvcAction());
147 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
151 public void buildSdncRequestHeaderDeleteTest() {
152 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DELETE, "sdncReqId");
154 assertEquals(GenericResourceApiSvcActionEnumeration.DELETE, requestHeader.getSvcAction());
155 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
159 public void buildSdncRequestHeaderChangeAssignTest() {
160 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.CHANGE_ASSIGN, "sdncReqId");
162 assertEquals(GenericResourceApiSvcActionEnumeration.CHANGEASSIGN, requestHeader.getSvcAction());
163 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
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());
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);
191 GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation = genObjMapper.buildConfigurationInformation(configuration,true);
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());
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());
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());
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());
240 public void buildNetworkInformationTest() {
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");
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);
267 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
272 public void buildNetworkInformationNoModelTest() {
274 L3Network network = new L3Network();
275 network.setNetworkId("my-network-id");
276 network.setNetworkType("my-network-type");
277 network.setNetworkTechnology("my-network-technology");
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);
286 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
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;
305 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
307 catch (MapperException ex) {
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());
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;
332 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
334 catch (MapperException ex) {
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());
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;
355 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, null, false);
357 catch (MapperException ex) {
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());
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;
379 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
381 catch (MapperException ex) {
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());
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;
413 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, true);
415 catch (MapperException ex) {
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());