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");
92 GenericVnf vnf = new GenericVnf();
93 vnf.setVnfId("testVnfId");
94 vnf.setVnfType("testVnfType");
95 vnf.setVnfName("testVnfName");
96 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
97 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
98 modelInfoGenericVnf.setModelName("vnfModelName");
99 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
100 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
101 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
102 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
104 VfModule vfModule = new VfModule();
105 vfModule.setVfModuleId("testVfModuleId");
106 vfModule.setVfModuleName("testVfModuleName");
107 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
108 modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
109 modelInfoVfModule.setModelName("vfModuleModelName");
110 modelInfoVfModule.setModelVersion("vfModuleModelVersion");
111 modelInfoVfModule.setModelUUID("vfModuleModelUuid");
112 modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
113 vfModule.setModelInfoVfModule(modelInfoVfModule);
114 HashMap<String, String> cloudParams = new HashMap<String, String>();
115 cloudParams.put("key2", "value2");
116 vfModule.setCloudParams(cloudParams);
118 VolumeGroup volumeGroup = new VolumeGroup();
119 volumeGroup.setVolumeGroupId("volumeGroupId");
120 volumeGroup.setVolumeGroupName("volumeGroupName");
122 CloudRegion cloudRegion = new CloudRegion();
124 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
125 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
126 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, volumeGroup, vnf, serviceInstance, customer,
127 cloudRegion, requestContext, null);
129 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationAssign.json")));
131 ObjectMapper omapper = new ObjectMapper();
132 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
134 GenericResourceApiVfModuleOperationInformation.class);
136 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
137 .ignoring("requestInformation.requestId"));
141 public void unassignGenericResourceApiVfModuleInformationTest() throws Exception {
143 // prepare and set service instance
144 ServiceInstance serviceInstance = new ServiceInstance();
145 serviceInstance.setServiceInstanceId("serviceInstanceId");
147 // prepare and set vnf instance
149 GenericVnf vnf = new GenericVnf();
150 vnf.setVnfId("testVnfId");
151 vnf.setVnfType("testVnfType");
153 // prepare and set vf module instance
155 VfModule vfModule = new VfModule();
156 vfModule.setVfModuleId("testVfModuleId");
157 vfModule.setVfModuleName("testVfModuleName");
159 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
160 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
161 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, vfModule, null, vnf, serviceInstance, null,
164 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationUnassign.json")));
166 ObjectMapper omapper = new ObjectMapper();
167 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
169 GenericResourceApiVfModuleOperationInformation.class);
171 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
172 .ignoring("requestInformation.requestId"));
176 public void reqMapperTest() throws Exception {
178 // prepare and set service instance
179 ServiceInstance serviceInstance = new ServiceInstance();
180 serviceInstance.setServiceInstanceId("serviceInstanceId");
181 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
182 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
183 modelInfoServiceInstance.setModelName("serviceModelName");
184 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
185 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
187 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
188 // prepare Customer object
189 Customer customer = new Customer();
190 customer.setGlobalCustomerId("globalCustomerId");
191 customer.setServiceSubscription(new ServiceSubscription());
192 // set Customer on service instance
193 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
195 RequestContext requestContext = new RequestContext();
196 RequestParameters requestParameters = new RequestParameters();
197 HashMap<String,Object> userParams1 = new HashMap<String,Object>();
198 userParams1.put("key1", "value1");
199 List<Map<String,Object>> userParams = new ArrayList<Map<String,Object>>();
200 userParams.add(userParams1);
202 requestParameters.setUserParams(userParams);
203 requestContext.setRequestParameters(requestParameters);
204 requestContext.setProductFamilyId("productFamilyId");
206 GenericVnf vnf = new GenericVnf();
207 vnf.setVnfId("testVnfId");
208 vnf.setVnfType("testVnfType");
209 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
210 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
211 modelInfoGenericVnf.setModelName("vnfModelName");
212 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
213 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
214 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
215 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
217 VfModule vfModule = new VfModule();
218 vfModule.setVfModuleId("testVfModuleId");
219 vfModule.setVfModuleName("testVfModuleName");
220 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
221 modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
222 modelInfoVfModule.setModelName("vfModuleModelName");
223 modelInfoVfModule.setModelVersion("vfModuleModelVersion");
224 modelInfoVfModule.setModelUUID("vfModuleModelUuid");
225 modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
226 vfModule.setModelInfoVfModule(modelInfoVfModule);
228 CloudRegion cloudRegion = new CloudRegion();
230 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
231 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
232 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer,
233 cloudRegion, requestContext, null);
235 assertNull(vfModuleSDNCrequest.getServiceInformation().getOnapModelInformation().getModelCustomizationUuid());
236 assertEquals("vnfModelCustomizationUuid", vfModuleSDNCrequest.getVnfInformation().getOnapModelInformation().getModelCustomizationUuid());
237 assertEquals("vfModuleModelCustomizationUuid", vfModuleSDNCrequest.getVfModuleInformation().getOnapModelInformation().getModelCustomizationUuid());
241 public void reqMapperNoModelInfoTest() throws Exception {
243 // prepare and set service instance
244 ServiceInstance serviceInstance = new ServiceInstance();
245 serviceInstance.setServiceInstanceId("serviceInstanceId");
246 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
247 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
248 modelInfoServiceInstance.setModelName("serviceModelName");
249 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
250 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
252 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
253 // prepare Customer object
254 Customer customer = new Customer();
255 customer.setGlobalCustomerId("globalCustomerId");
256 customer.setServiceSubscription(new ServiceSubscription());
257 // set Customer on service instance
258 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
260 RequestContext requestContext = new RequestContext();
261 HashMap<String, String> userParams = new HashMap<String, String>();
262 userParams.put("key1", "value1");
263 requestContext.setUserParams(userParams);
264 requestContext.setProductFamilyId("productFamilyId");
266 GenericVnf vnf = new GenericVnf();
267 vnf.setVnfId("testVnfId");
268 vnf.setVnfType("testVnfType");
269 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
270 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
271 modelInfoGenericVnf.setModelName("vnfModelName");
272 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
273 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
274 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
275 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
277 VfModule vfModule = new VfModule();
278 vfModule.setVfModuleId("testVfModuleId");
279 vfModule.setVfModuleName("testVfModuleName");
280 vfModule.setModelInfoVfModule(null);
282 CloudRegion cloudRegion = new CloudRegion();
284 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
285 expectedException.expect(MapperException.class);
286 expectedException.expectMessage(ERRORMESSAGE);
288 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer,
289 cloudRegion, requestContext, null);