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.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNull;
28 import java.nio.file.Files;
29 import java.nio.file.Paths;
30 import java.util.ArrayList;
31 import java.util.HashMap;
32 import java.util.List;
35 import org.junit.Rule;
36 import org.junit.Test;
37 import org.junit.rules.ExpectedException;
38 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
39 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
40 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
45 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
46 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestParameters;
47 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
48 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
49 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
50 import org.onap.so.client.exception.MapperException;
51 import org.onap.so.client.sdnc.beans.SDNCSvcAction;
52 import org.onap.so.client.sdnc.beans.SDNCSvcOperation;
54 import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleOperationInformation;
55 import com.fasterxml.jackson.databind.ObjectMapper;
57 public class VfModuleTopologyOperationRequestMapperTest {
59 private final static String JSON_FILE_LOCATION = "src/test/resources/__files/BuildingBlocks/";
60 private final static String ERRORMESSAGE = "VF Module model info is null for testVfModuleId";
63 public ExpectedException expectedException = ExpectedException.none();
66 public void assignGenericResourceApiVfModuleInformationTest() throws Exception {
68 // prepare and set service instance
69 ServiceInstance serviceInstance = new ServiceInstance();
70 serviceInstance.setServiceInstanceId("serviceInstanceId");
71 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
72 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
73 modelInfoServiceInstance.setModelName("serviceModelName");
74 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
75 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
76 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
77 // prepare Customer object
78 Customer customer = new Customer();
79 customer.setGlobalCustomerId("globalCustomerId");
80 ServiceSubscription serviceSubscription = new ServiceSubscription();
81 serviceSubscription.setServiceType("productFamilyId");
82 customer.setServiceSubscription(serviceSubscription);
84 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
86 RequestContext requestContext = new RequestContext();
87 HashMap<String,String> userParams = new HashMap<String,String>();
88 userParams.put("key1", "value1");
89 requestContext.setUserParams(userParams);
90 requestContext.setProductFamilyId("productFamilyId");
91 RequestParameters requestParameters = new RequestParameters();
92 requestParameters.setUsePreload(true);
93 requestContext.setRequestParameters(requestParameters);
95 GenericVnf vnf = new GenericVnf();
96 vnf.setVnfId("testVnfId");
97 vnf.setVnfType("testVnfType");
98 vnf.setVnfName("testVnfName");
99 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
100 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
101 modelInfoGenericVnf.setModelName("vnfModelName");
102 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
103 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
104 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
105 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
107 VfModule vfModule = new VfModule();
108 vfModule.setVfModuleId("testVfModuleId");
109 vfModule.setVfModuleName("testVfModuleName");
110 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
111 modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
112 modelInfoVfModule.setModelName("vfModuleModelName");
113 modelInfoVfModule.setModelVersion("vfModuleModelVersion");
114 modelInfoVfModule.setModelUUID("vfModuleModelUuid");
115 modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
116 vfModule.setModelInfoVfModule(modelInfoVfModule);
117 HashMap<String, String> cloudParams = new HashMap<String, String>();
118 cloudParams.put("key2", "value2");
119 vfModule.setCloudParams(cloudParams);
121 VolumeGroup volumeGroup = new VolumeGroup();
122 volumeGroup.setVolumeGroupId("volumeGroupId");
123 volumeGroup.setVolumeGroupName("volumeGroupName");
125 CloudRegion cloudRegion = new CloudRegion();
127 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
128 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
129 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, volumeGroup, vnf, serviceInstance, customer,
130 cloudRegion, requestContext, null);
132 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationAssign.json")));
134 ObjectMapper omapper = new ObjectMapper();
135 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
137 GenericResourceApiVfModuleOperationInformation.class);
139 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
140 .ignoring("requestInformation.requestId"));
144 public void unassignGenericResourceApiVfModuleInformationTest() throws Exception {
146 // prepare and set service instance
147 ServiceInstance serviceInstance = new ServiceInstance();
148 serviceInstance.setServiceInstanceId("serviceInstanceId");
150 // prepare and set vnf instance
152 GenericVnf vnf = new GenericVnf();
153 vnf.setVnfId("testVnfId");
154 vnf.setVnfType("testVnfType");
156 // prepare and set vf module instance
158 VfModule vfModule = new VfModule();
159 vfModule.setVfModuleId("testVfModuleId");
160 vfModule.setVfModuleName("testVfModuleName");
162 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
163 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
164 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, vfModule, null, vnf, serviceInstance, null,
167 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationUnassign.json")));
169 ObjectMapper omapper = new ObjectMapper();
170 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
172 GenericResourceApiVfModuleOperationInformation.class);
174 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
175 .ignoring("requestInformation.requestId"));
179 public void reqMapperTest() throws Exception {
181 // prepare and set service instance
182 ServiceInstance serviceInstance = new ServiceInstance();
183 serviceInstance.setServiceInstanceId("serviceInstanceId");
184 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
185 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
186 modelInfoServiceInstance.setModelName("serviceModelName");
187 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
188 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
190 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
191 // prepare Customer object
192 Customer customer = new Customer();
193 customer.setGlobalCustomerId("globalCustomerId");
194 customer.setServiceSubscription(new ServiceSubscription());
195 // set Customer on service instance
196 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
198 RequestContext requestContext = new RequestContext();
199 RequestParameters requestParameters = new RequestParameters();
200 HashMap<String,Object> userParams1 = new HashMap<String,Object>();
201 userParams1.put("key1", "value1");
202 List<Map<String,Object>> userParams = new ArrayList<Map<String,Object>>();
203 userParams.add(userParams1);
205 requestParameters.setUserParams(userParams);
206 requestContext.setRequestParameters(requestParameters);
207 requestContext.setProductFamilyId("productFamilyId");
209 GenericVnf vnf = new GenericVnf();
210 vnf.setVnfId("testVnfId");
211 vnf.setVnfType("testVnfType");
212 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
213 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
214 modelInfoGenericVnf.setModelName("vnfModelName");
215 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
216 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
217 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
218 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
220 VfModule vfModule = new VfModule();
221 vfModule.setVfModuleId("testVfModuleId");
222 vfModule.setVfModuleName("testVfModuleName");
223 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
224 modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
225 modelInfoVfModule.setModelName("vfModuleModelName");
226 modelInfoVfModule.setModelVersion("vfModuleModelVersion");
227 modelInfoVfModule.setModelUUID("vfModuleModelUuid");
228 modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
229 vfModule.setModelInfoVfModule(modelInfoVfModule);
231 CloudRegion cloudRegion = new CloudRegion();
233 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
234 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
235 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer,
236 cloudRegion, requestContext, null);
238 assertNull(vfModuleSDNCrequest.getServiceInformation().getOnapModelInformation().getModelCustomizationUuid());
239 assertEquals("vnfModelCustomizationUuid", vfModuleSDNCrequest.getVnfInformation().getOnapModelInformation().getModelCustomizationUuid());
240 assertEquals("vfModuleModelCustomizationUuid", vfModuleSDNCrequest.getVfModuleInformation().getOnapModelInformation().getModelCustomizationUuid());
244 public void reqMapperNoModelInfoTest() throws Exception {
246 // prepare and set service instance
247 ServiceInstance serviceInstance = new ServiceInstance();
248 serviceInstance.setServiceInstanceId("serviceInstanceId");
249 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
250 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
251 modelInfoServiceInstance.setModelName("serviceModelName");
252 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
253 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
255 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
256 // prepare Customer object
257 Customer customer = new Customer();
258 customer.setGlobalCustomerId("globalCustomerId");
259 customer.setServiceSubscription(new ServiceSubscription());
260 // set Customer on service instance
261 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
263 RequestContext requestContext = new RequestContext();
264 HashMap<String, String> userParams = new HashMap<String, String>();
265 userParams.put("key1", "value1");
266 requestContext.setUserParams(userParams);
267 requestContext.setProductFamilyId("productFamilyId");
269 GenericVnf vnf = new GenericVnf();
270 vnf.setVnfId("testVnfId");
271 vnf.setVnfType("testVnfType");
272 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
273 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
274 modelInfoGenericVnf.setModelName("vnfModelName");
275 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
276 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
277 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
278 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
280 VfModule vfModule = new VfModule();
281 vfModule.setVfModuleId("testVfModuleId");
282 vfModule.setVfModuleName("testVfModuleName");
283 vfModule.setModelInfoVfModule(null);
285 CloudRegion cloudRegion = new CloudRegion();
287 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
288 expectedException.expect(MapperException.class);
289 expectedException.expectMessage(ERRORMESSAGE);
291 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer,
292 cloudRegion, requestContext, null);