7d5aa9d1d9369a16569d9eea00a14cb0a5e1c6d7
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20
21 package org.onap.so.client.sdnc.mapper;
22
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;
27
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;
33 import java.util.Map;
34
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;
53
54 import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleOperationInformation;
55 import com.fasterxml.jackson.databind.ObjectMapper;
56
57 public class VfModuleTopologyOperationRequestMapperTest {
58
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";
61         
62         @Rule
63         public ExpectedException expectedException = ExpectedException.none();
64
65         @Test
66         public void assignGenericResourceApiVfModuleInformationTest() throws Exception {
67
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);
83
84                 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
85                 //
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);
94
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);
106
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);
120
121                 VolumeGroup volumeGroup = new VolumeGroup();
122                 volumeGroup.setVolumeGroupId("volumeGroupId");
123                 volumeGroup.setVolumeGroupName("volumeGroupName");
124
125                 CloudRegion cloudRegion = new CloudRegion();
126
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);
131
132                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationAssign.json")));
133
134                 ObjectMapper omapper = new ObjectMapper();
135                 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
136                                 jsonToCompare,
137                                 GenericResourceApiVfModuleOperationInformation.class);
138
139                 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
140                                 .ignoring("requestInformation.requestId"));
141         }
142
143         @Test
144         public void unassignGenericResourceApiVfModuleInformationTest() throws Exception {
145
146                 // prepare and set service instance
147                 ServiceInstance serviceInstance = new ServiceInstance();
148                 serviceInstance.setServiceInstanceId("serviceInstanceId");
149
150                 // prepare and set vnf instance
151
152                 GenericVnf vnf = new GenericVnf();
153                 vnf.setVnfId("testVnfId");
154                 vnf.setVnfType("testVnfType");
155
156                 // prepare and set vf module instance
157
158                 VfModule vfModule = new VfModule();
159                 vfModule.setVfModuleId("testVfModuleId");
160                 vfModule.setVfModuleName("testVfModuleName");
161
162                 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
163                 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
164                                 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, vfModule, null, vnf, serviceInstance, null,
165                                 null, null, null);
166
167                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationUnassign.json")));
168
169                 ObjectMapper omapper = new ObjectMapper();
170                 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
171                                 jsonToCompare,
172                                 GenericResourceApiVfModuleOperationInformation.class);
173
174                 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
175                                 .ignoring("requestInformation.requestId"));
176         }
177
178         @Test
179         public void reqMapperTest() throws Exception {
180
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");
189
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);
197                 //
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);
204                 
205                 requestParameters.setUserParams(userParams);
206                 requestContext.setRequestParameters(requestParameters);
207                 requestContext.setProductFamilyId("productFamilyId");
208
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);
219
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);
230
231                 CloudRegion cloudRegion = new CloudRegion();
232
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);
237
238                 assertNull(vfModuleSDNCrequest.getServiceInformation().getOnapModelInformation().getModelCustomizationUuid());
239                 assertEquals("vnfModelCustomizationUuid", vfModuleSDNCrequest.getVnfInformation().getOnapModelInformation().getModelCustomizationUuid());
240                 assertEquals("vfModuleModelCustomizationUuid", vfModuleSDNCrequest.getVfModuleInformation().getOnapModelInformation().getModelCustomizationUuid());     
241         }
242         
243         @Test
244         public void reqMapperNoModelInfoTest() throws Exception {
245
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");
254
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);
262                 //
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");
268
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);
279
280                 VfModule vfModule = new VfModule();
281                 vfModule.setVfModuleId("testVfModuleId");
282                 vfModule.setVfModuleName("testVfModuleName");           
283                 vfModule.setModelInfoVfModule(null);
284
285                 CloudRegion cloudRegion = new CloudRegion();
286                 
287                 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
288                 expectedException.expect(MapperException.class);
289                 expectedException.expectMessage(ERRORMESSAGE);
290                 
291                 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer,
292                         cloudRegion, requestContext, null);             
293         }
294
295 }