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;
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;
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 HashMap<String, String> userParams = new HashMap<String, String>();
108 userParams.put("key1", "value1");
109 requestContext.setUserParams(userParams);
110 requestContext.setProductFamilyId("productFamilyId");
112 GenericResourceApiServiceinformationServiceInformation serviceInfo = 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 = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ACTIVATE, "sdncReqId");
129 assertEquals(GenericResourceApiSvcActionEnumeration.ACTIVATE, requestHeader.getSvcAction());
130 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
134 public void buildSdncRequestHeaderAssignTest() {
135 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ASSIGN, "sdncReqId");
137 assertEquals(GenericResourceApiSvcActionEnumeration.ASSIGN, requestHeader.getSvcAction());
138 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
142 public void buildSdncRequestHeaderDeactivateTest() {
143 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DEACTIVATE, "sdncReqId");
145 assertEquals(GenericResourceApiSvcActionEnumeration.DEACTIVATE, requestHeader.getSvcAction());
146 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
150 public void buildSdncRequestHeaderDeleteTest() {
151 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DELETE, "sdncReqId");
153 assertEquals(GenericResourceApiSvcActionEnumeration.DELETE, requestHeader.getSvcAction());
154 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
158 public void buildSdncRequestHeaderChangeAssignTest() {
159 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.CHANGE_ASSIGN, "sdncReqId");
161 assertEquals(GenericResourceApiSvcActionEnumeration.CHANGEASSIGN, requestHeader.getSvcAction());
162 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
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());
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);
190 GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation = genObjMapper.buildConfigurationInformation(configuration,true);
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());
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());
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());
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());
239 public void buildNetworkInformationTest() {
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");
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);
266 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
271 public void buildNetworkInformationNoModelTest() {
273 L3Network network = new L3Network();
274 network.setNetworkId("my-network-id");
275 network.setNetworkType("my-network-type");
276 network.setNetworkTechnology("my-network-technology");
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);
285 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
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;
304 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
306 catch (MapperException ex) {
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());
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;
331 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
333 catch (MapperException ex) {
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());
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;
354 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, null, false);
356 catch (MapperException ex) {
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());
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;
378 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, false);
380 catch (MapperException ex) {
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());
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;
412 gcRequestInput = genObjMapper.buildVfModuleInformation(vfModule, genericVnf, serviceInstance, requestContext, true);
414 catch (MapperException ex) {
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());