04397c499db93c9176baa95fad5f320d38d3f180
[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.HashMap;
31
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;
49
50 import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleOperationInformation;
51 import com.fasterxml.jackson.databind.ObjectMapper;
52
53 public class VfModuleTopologyOperationRequestMapperTest {
54
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";
57         
58         @Rule
59         public ExpectedException expectedException = ExpectedException.none();
60
61         @Test
62         public void assignGenericResourceApiVfModuleInformationTest() throws Exception {
63
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);
79
80                 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
81                 //
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");
87
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);
99
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);
113
114                 VolumeGroup volumeGroup = new VolumeGroup();
115                 volumeGroup.setVolumeGroupId("volumeGroupId");
116                 volumeGroup.setVolumeGroupName("volumeGroupName");
117
118                 CloudRegion cloudRegion = new CloudRegion();
119
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);
124
125                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationAssign.json")));
126
127                 ObjectMapper omapper = new ObjectMapper();
128                 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
129                                 jsonToCompare,
130                                 GenericResourceApiVfModuleOperationInformation.class);
131
132                 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
133                                 .ignoring("requestInformation.requestId"));
134         }
135
136         @Test
137         public void unassignGenericResourceApiVfModuleInformationTest() throws Exception {
138
139                 // prepare and set service instance
140                 ServiceInstance serviceInstance = new ServiceInstance();
141                 serviceInstance.setServiceInstanceId("serviceInstanceId");
142
143                 // prepare and set vnf instance
144
145                 GenericVnf vnf = new GenericVnf();
146                 vnf.setVnfId("testVnfId");
147                 vnf.setVnfType("testVnfType");
148
149                 // prepare and set vf module instance
150
151                 VfModule vfModule = new VfModule();
152                 vfModule.setVfModuleId("testVfModuleId");
153                 vfModule.setVfModuleName("testVfModuleName");
154
155                 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
156                 GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
157                                 SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, vfModule, null, vnf, serviceInstance, null,
158                                 null, null, null);
159
160                 String jsonToCompare = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleOperationInformationUnassign.json")));
161
162                 ObjectMapper omapper = new ObjectMapper();
163                 GenericResourceApiVfModuleOperationInformation reqMapper1 = omapper.readValue(
164                                 jsonToCompare,
165                                 GenericResourceApiVfModuleOperationInformation.class);
166
167                 assertThat(reqMapper1, sameBeanAs(vfModuleSDNCrequest).ignoring("sdncRequestHeader.svcRequestId")
168                                 .ignoring("requestInformation.requestId"));
169         }
170
171         @Test
172         public void reqMapperTest() throws Exception {
173
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");
182
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);
190                 //
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");
196
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);
207
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);
218
219                 CloudRegion cloudRegion = new CloudRegion();
220
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);
225
226                 assertNull(vfModuleSDNCrequest.getServiceInformation().getOnapModelInformation().getModelCustomizationUuid());
227                 assertEquals("vnfModelCustomizationUuid", vfModuleSDNCrequest.getVnfInformation().getOnapModelInformation().getModelCustomizationUuid());
228                 assertEquals("vfModuleModelCustomizationUuid", vfModuleSDNCrequest.getVfModuleInformation().getOnapModelInformation().getModelCustomizationUuid());
229         }
230         
231         @Test
232         public void reqMapperNoModelInfoTest() throws Exception {
233
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");
242
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);
250                 //
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");
256
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);
267
268                 VfModule vfModule = new VfModule();
269                 vfModule.setVfModuleId("testVfModuleId");
270                 vfModule.setVfModuleName("testVfModuleName");           
271                 vfModule.setModelInfoVfModule(null);
272
273                 CloudRegion cloudRegion = new CloudRegion();
274                 
275                 VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper();
276                 expectedException.expect(MapperException.class);
277                 expectedException.expectMessage(ERRORMESSAGE);
278                 
279                 mapper.reqMapper(SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer,
280                         cloudRegion, requestContext, null);             
281         }
282
283 }