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.HashMap;
32 import org.junit.Rule;
33 import org.junit.Test;
34 import org.junit.rules.ExpectedException;
35 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
36 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
37 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
38 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
39 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
40 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
42 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
43 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
44 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
45 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
46 import org.onap.so.client.exception.MapperException;
47 import org.onap.so.client.sdnc.beans.SDNCSvcAction;
48 import org.onap.so.client.sdnc.beans.SDNCSvcOperation;
50 import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleOperationInformation;
51 import com.fasterxml.jackson.databind.ObjectMapper;
53 public class VfModuleTopologyOperationRequestMapperTest {
55 private final static String JSON_FILE_LOCATION = "src/test/resources/__files/BuildingBlocks/";
56 private final static String ERRORMESSAGE = "VF Module model info is null for testVfModuleId";
59 public ExpectedException expectedException = ExpectedException.none();
62 public void assignGenericResourceApiVfModuleInformationTest() throws Exception {
64 // prepare and set service instance
65 ServiceInstance serviceInstance = new ServiceInstance();
66 serviceInstance.setServiceInstanceId("serviceInstanceId");
67 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
68 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
69 modelInfoServiceInstance.setModelName("serviceModelName");
70 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
71 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
72 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
73 // prepare Customer object
74 Customer customer = new Customer();
75 customer.setGlobalCustomerId("globalCustomerId");
76 ServiceSubscription serviceSubscription = new ServiceSubscription();
77 serviceSubscription.setServiceType("productFamilyId");
78 customer.setServiceSubscription(serviceSubscription);
80 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
82 RequestContext requestContext = new RequestContext();
83 HashMap<String, String> userParams = new HashMap<String, String>();
84 userParams.put("key1", "value1");
85 requestContext.setUserParams(userParams);
86 requestContext.setProductFamilyId("productFamilyId");
88 GenericVnf vnf = new GenericVnf();
89 vnf.setVnfId("testVnfId");
90 vnf.setVnfType("testVnfType");
91 vnf.setVnfName("testVnfName");
92 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
93 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
94 modelInfoGenericVnf.setModelName("vnfModelName");
95 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
96 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
97 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
98 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
100 VfModule vfModule = new VfModule();
101 vfModule.setVfModuleId("testVfModuleId");
102 vfModule.setVfModuleName("testVfModuleName");
103 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
104 modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
105 modelInfoVfModule.setModelName("vfModuleModelName");
106 modelInfoVfModule.setModelVersion("vfModuleModelVersion");
107 modelInfoVfModule.setModelUUID("vfModuleModelUuid");
108 modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
109 vfModule.setModelInfoVfModule(modelInfoVfModule);
110 HashMap<String, String> cloudParams = new HashMap<String, String>();
111 userParams.put("key2", "value2");
112 vfModule.setCloudParams(cloudParams);
114 VolumeGroup volumeGroup = new VolumeGroup();
115 volumeGroup.setVolumeGroupId("volumeGroupId");
116 volumeGroup.setVolumeGroupName("volumeGroupName");
118 CloudRegion cloudRegion = new CloudRegion();
120 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
121 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
122 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, volumeGroup, vnf, serviceInstance, customer,
123 cloudRegion, requestContext, null);
125 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationAssign.json")));
127 ObjectMapper omapper = new ObjectMapper();
128 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
130 GenericResourceApiVfModuleOperationInformation.class);
132 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
133 .ignoring("requestInformation.requestId"));
137 public void unassignGenericResourceApiVfModuleInformationTest() throws Exception {
139 // prepare and set service instance
140 ServiceInstance serviceInstance = new ServiceInstance();
141 serviceInstance.setServiceInstanceId("serviceInstanceId");
143 // prepare and set vnf instance
145 GenericVnf vnf = new GenericVnf();
146 vnf.setVnfId("testVnfId");
147 vnf.setVnfType("testVnfType");
149 // prepare and set vf module instance
151 VfModule vfModule = new VfModule();
152 vfModule.setVfModuleId("testVfModuleId");
153 vfModule.setVfModuleName("testVfModuleName");
155 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
156 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
157 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, vfModule, null, vnf, serviceInstance, null,
160 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationUnassign.json")));
162 ObjectMapper omapper = new ObjectMapper();
163 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
165 GenericResourceApiVfModuleOperationInformation.class);
167 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
168 .ignoring("requestInformation.requestId"));
172 public void reqMapperTest() throws Exception {
174 // prepare and set service instance
175 ServiceInstance serviceInstance = new ServiceInstance();
176 serviceInstance.setServiceInstanceId("serviceInstanceId");
177 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
178 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
179 modelInfoServiceInstance.setModelName("serviceModelName");
180 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
181 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
183 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
184 // prepare Customer object
185 Customer customer = new Customer();
186 customer.setGlobalCustomerId("globalCustomerId");
187 customer.setServiceSubscription(new ServiceSubscription());
188 // set Customer on service instance
189 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
191 RequestContext requestContext = new RequestContext();
192 HashMap<String, String> userParams = new HashMap<String, String>();
193 userParams.put("key1", "value1");
194 requestContext.setUserParams(userParams);
195 requestContext.setProductFamilyId("productFamilyId");
197 GenericVnf vnf = new GenericVnf();
198 vnf.setVnfId("testVnfId");
199 vnf.setVnfType("testVnfType");
200 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
201 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
202 modelInfoGenericVnf.setModelName("vnfModelName");
203 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
204 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
205 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
206 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
208 VfModule vfModule = new VfModule();
209 vfModule.setVfModuleId("testVfModuleId");
210 vfModule.setVfModuleName("testVfModuleName");
211 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
212 modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
213 modelInfoVfModule.setModelName("vfModuleModelName");
214 modelInfoVfModule.setModelVersion("vfModuleModelVersion");
215 modelInfoVfModule.setModelUUID("vfModuleModelUuid");
216 modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
217 vfModule.setModelInfoVfModule(modelInfoVfModule);
219 CloudRegion cloudRegion = new CloudRegion();
221 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
222 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
223 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer,
224 cloudRegion, requestContext, null);
226 assertNull(vfModuleSDNCrequest.getServiceInformation().getOnapModelInformation().getModelCustomizationUuid());
227 assertEquals("vnfModelCustomizationUuid", vfModuleSDNCrequest.getVnfInformation().getOnapModelInformation().getModelCustomizationUuid());
228 assertEquals("vfModuleModelCustomizationUuid", vfModuleSDNCrequest.getVfModuleInformation().getOnapModelInformation().getModelCustomizationUuid());
232 public void reqMapperNoModelInfoTest() throws Exception {
234 // prepare and set service instance
235 ServiceInstance serviceInstance = new ServiceInstance();
236 serviceInstance.setServiceInstanceId("serviceInstanceId");
237 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
238 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
239 modelInfoServiceInstance.setModelName("serviceModelName");
240 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
241 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
243 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
244 // prepare Customer object
245 Customer customer = new Customer();
246 customer.setGlobalCustomerId("globalCustomerId");
247 customer.setServiceSubscription(new ServiceSubscription());
248 // set Customer on service instance
249 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
251 RequestContext requestContext = new RequestContext();
252 HashMap<String, String> userParams = new HashMap<String, String>();
253 userParams.put("key1", "value1");
254 requestContext.setUserParams(userParams);
255 requestContext.setProductFamilyId("productFamilyId");
257 GenericVnf vnf = new GenericVnf();
258 vnf.setVnfId("testVnfId");
259 vnf.setVnfType("testVnfType");
260 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
261 modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
262 modelInfoGenericVnf.setModelName("vnfModelName");
263 modelInfoGenericVnf.setModelVersion("vnfModelVersion");
264 modelInfoGenericVnf.setModelUuid("vnfModelUuid");
265 modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
266 vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
268 VfModule vfModule = new VfModule();
269 vfModule.setVfModuleId("testVfModuleId");
270 vfModule.setVfModuleName("testVfModuleName");
271 vfModule.setModelInfoVfModule(null);
273 CloudRegion cloudRegion = new CloudRegion();
275 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
276 expectedException.expect(MapperException.class);
277 expectedException.expectMessage(ERRORMESSAGE);
279 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer,
280 cloudRegion, requestContext, null);