[SDC-29] rebase continue work to align source
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / utils / general / Convertor.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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.openecomp.sdc.ci.tests.utils.general;
22
23 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_CREATED;
24 import static org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils.STATUS_CODE_SUCCESS;
25
26 import java.io.FileNotFoundException;
27 import java.util.ArrayList;
28 import java.util.List;
29
30 import org.apache.commons.lang3.StringUtils;
31 import org.openecomp.sdc.be.dao.api.ActionStatus;
32 import org.openecomp.sdc.be.model.DistributionStatusEnum;
33 import org.openecomp.sdc.be.model.LifecycleStateEnum;
34 import org.openecomp.sdc.be.model.Product;
35 import org.openecomp.sdc.be.model.User;
36 import org.openecomp.sdc.be.model.category.CategoryDefinition;
37 import org.openecomp.sdc.ci.tests.datatypes.ComponentReqDetails;
38 import org.openecomp.sdc.ci.tests.datatypes.ProductReqDetails;
39 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
40 import org.openecomp.sdc.ci.tests.datatypes.ResourceRespJavaObject;
41 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
42 import org.openecomp.sdc.ci.tests.datatypes.enums.ErrorInfo;
43 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
45 import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedProductAudit;
46 import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedResourceAuditJavaObject;
47 import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedUserCRUDAudit;
48 import org.openecomp.sdc.ci.tests.utils.Utils;
49 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
50 import org.openecomp.sdc.common.api.Constants;
51
52 public class Convertor {
53         // ***** resource *****
54         public static ResourceRespJavaObject constructFieldsForRespValidation(ResourceReqDetails resourceDetails,
55                         String resourceVersion) {
56                 return convertToRespObject(resourceDetails, resourceVersion, UserRoleEnum.ADMIN.getUserId(),
57                                 UserRoleEnum.ADMIN.getUserName());
58
59         }
60
61         public static ResourceRespJavaObject constructFieldsForRespValidation(ResourceReqDetails resourceDetails) {
62                 return convertToRespObject(resourceDetails, resourceDetails.getVersion(), UserRoleEnum.ADMIN.getUserId(),
63                                 UserRoleEnum.ADMIN.getUserName());
64
65         }
66
67         public static ResourceRespJavaObject constructFieldsForRespValidation(ResourceReqDetails resourceDetails,
68                         String resourceVersion, User user) {
69                 return convertToRespObject(resourceDetails, resourceVersion, user.getUserId(), user.getFullName());
70
71         }
72
73         private static ResourceRespJavaObject convertToRespObject(ResourceReqDetails resourceDetails,
74                         String resourceVersion, String userId, String userName) {
75                 ResourceRespJavaObject resourceRespJavaObject = new ResourceRespJavaObject();
76
77                 resourceRespJavaObject.setUniqueId(resourceDetails.getUniqueId());
78                 resourceRespJavaObject.setName(resourceDetails.getName());
79                 resourceRespJavaObject.setCreatorUserId(resourceDetails.getCreatorUserId());
80                 resourceRespJavaObject.setCreatorFullName(resourceDetails.getCreatorFullName());
81                 resourceRespJavaObject.setLastUpdaterUserId(userId);
82                 resourceRespJavaObject.setLastUpdaterFullName(userName);
83                 resourceRespJavaObject.setDescription(resourceDetails.getDescription());
84                 resourceRespJavaObject.setIcon(resourceDetails.getIcon());
85                 resourceRespJavaObject.setTags(resourceDetails.getTags());
86                 resourceRespJavaObject.setIsHighestVersion("true");
87                 resourceRespJavaObject.setCategories(resourceDetails.getCategories());
88                 resourceRespJavaObject.setLifecycleState(
89                                 resourceDetails.getLifecycleState() != null ? resourceDetails.getLifecycleState().toString()
90                                                 : LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.toString());
91                 // resourceRespJavaObject.setLifecycleState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
92                 resourceRespJavaObject.setDerivedFrom(resourceDetails.getDerivedFrom());
93                 resourceRespJavaObject.setVendorName(resourceDetails.getVendorName());
94                 resourceRespJavaObject.setVendorRelease(resourceDetails.getVendorRelease());
95                 resourceRespJavaObject.setContactId(resourceDetails.getContactId());
96                 resourceRespJavaObject.setAbstractt("false");
97                 resourceRespJavaObject.setVersion(resourceVersion);
98                 resourceRespJavaObject.setCost(resourceDetails.getCost());
99                 resourceRespJavaObject.setLicenseType(resourceDetails.getLicenseType());
100                 resourceRespJavaObject.setResourceType(resourceDetails.getResourceType());
101
102                 return resourceRespJavaObject;
103
104         }
105
106         // ********** service **************
107
108         // public static ServiceRespJavaObject
109         // constructFieldsForRespValidation(ServiceReqDetails serviceDetails, String
110         // serviceVersion, User user) {
111         // return convertToRespObject(serviceDetails, serviceVersion,
112         // user.getUserId(), user.getFullName());
113         //
114         // }
115         //
116         // private static ServiceRespJavaObject
117         // convertToRespObject(ServiceReqDetails serviceDetails, String
118         // serviceVersion, String userId, String userName) {
119         // ServiceRespJavaObject serviceRespJavaObject = new
120         // ServiceRespJavaObject();
121         //
122         // serviceRespJavaObject.setUniqueId(serviceDetails.getUniqueId());
123         // serviceRespJavaObject.setName(serviceDetails.getName());
124         // serviceRespJavaObject.setCreatorUserId(userId);
125         // serviceRespJavaObject.setCreatorFullName(userName);
126         // serviceRespJavaObject.setLastUpdaterUserId(userId);
127         // serviceRespJavaObject.setLastUpdaterFullName(userName);
128         // serviceRespJavaObject.setDescription(serviceDetails.getDescription());
129         // serviceRespJavaObject.setIcon(serviceDetails.getIcon());
130         // serviceRespJavaObject.setCategory(serviceDetails.getCategory());
131         // serviceRespJavaObject.setLifecycleState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
132         // serviceRespJavaObject.setContactId(serviceDetails.getContactId());
133         // serviceRespJavaObject.setVersion(serviceVersion);
134         //
135         // return serviceRespJavaObject;
136         // }
137
138         // ********** product **************
139
140         public static Product constructFieldsForRespValidation(ProductReqDetails productDetails, String productVersion,
141                         User user) {
142                 return convertToRespObject(productDetails, productVersion, user.getUserId(), user.getFullName());
143         }
144
145         private static Product convertToRespObject(ProductReqDetails productDetails, String productVersion, String userId,
146                         String userName) {
147                 Product expectedProduct = new Product();
148
149                 expectedProduct.setUniqueId(productDetails.getUniqueId());
150                 expectedProduct.setName(productDetails.getName());
151                 expectedProduct.setFullName(productDetails.getFullName());
152                 expectedProduct.setCreatorUserId(productDetails.getCreatorUserId());
153                 expectedProduct.setCreatorFullName(productDetails.getCreatorFullName());
154                 expectedProduct.setLastUpdaterUserId(userId);
155                 expectedProduct.setLastUpdaterFullName(userName);
156                 expectedProduct.setDescription(productDetails.getDescription());
157                 // expectedProduct.setIcon(resourceDetails.getIcon());
158                 expectedProduct.setTags(productDetails.getTags());
159                 expectedProduct.setHighestVersion(true);
160                 List<CategoryDefinition> categories = productDetails.getCategories();
161                 if (categories == null) {
162                         categories = new ArrayList<>();
163                 }
164                 expectedProduct.setCategories(categories);
165                 expectedProduct.setState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
166                 expectedProduct.setVersion(productVersion);
167                 expectedProduct.setContacts(productDetails.getContacts());
168                 return expectedProduct;
169         }
170
171         // ***** audit *****
172
173         public static ExpectedResourceAuditJavaObject constructFieldsForAuditValidation(ResourceReqDetails resourceDetails,
174                         String resourceVersion) {
175                 return convertToAuditObject(resourceDetails, resourceVersion, UserRoleEnum.ADMIN.getUserId(),
176                                 UserRoleEnum.ADMIN.getUserName());
177         }
178
179         public static ExpectedResourceAuditJavaObject constructFieldsForAuditValidation(
180                         ResourceReqDetails resourceDetails) {
181                 return convertToAuditObject(resourceDetails, resourceDetails.getVersion(), UserRoleEnum.ADMIN.getUserId(),
182                                 UserRoleEnum.ADMIN.getUserName());
183         }
184
185         public static ExpectedResourceAuditJavaObject constructFieldsForAuditValidation(ResourceReqDetails resourceDetails,
186                         String resourceVersion, User user) {
187                 return convertToAuditObject(resourceDetails, resourceVersion, user.getUserId(), user.getFullName());
188         }
189
190         private static ExpectedResourceAuditJavaObject convertToAuditObject(ResourceReqDetails resourceDetails,
191                         String resourceVersion, String userId, String userName) {
192                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
193
194                 expectedResourceAuditJavaObject.setAction("Checkout");
195                 expectedResourceAuditJavaObject.setModifierName(userName);
196                 expectedResourceAuditJavaObject.setModifierUid(userId);
197                 expectedResourceAuditJavaObject.setStatus("200.0");
198                 expectedResourceAuditJavaObject.setDesc("OK");
199                 expectedResourceAuditJavaObject.setResourceName(resourceDetails.getName());
200                 expectedResourceAuditJavaObject.setResourceType("Resource");
201                 expectedResourceAuditJavaObject.setPrevVersion(String.valueOf(Float.parseFloat(resourceVersion) - 0.1f));
202                 expectedResourceAuditJavaObject.setCurrVersion(resourceVersion);
203                 expectedResourceAuditJavaObject.setPrevState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
204                 expectedResourceAuditJavaObject.setCurrState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
205                 expectedResourceAuditJavaObject.setComment(null);
206
207                 return expectedResourceAuditJavaObject;
208         }
209
210         public static ExpectedProductAudit constructFieldsForAuditValidation(Product productDetails, String action,
211                         User user, ActionStatus actionStatus, String prevVersion, String currVersion, LifecycleStateEnum prevState,
212                         LifecycleStateEnum currState, String uuid, String... errorMessageParams) throws FileNotFoundException {
213                 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(actionStatus.name());
214                 return convertToAuditObject(productDetails, action, user, errorInfo, prevVersion, currVersion, prevState,
215                                 currState, uuid, errorMessageParams);
216         }
217
218         private static ExpectedProductAudit convertToAuditObject(Product productDetails, String action, User user,
219                         ErrorInfo errorInfo, String prevVersion, String currVersion, LifecycleStateEnum prevState,
220                         LifecycleStateEnum currState, String uuid, String... errorMessageParams) {
221                 ExpectedProductAudit expectedProductAudit = new ExpectedProductAudit();
222
223                 expectedProductAudit.setACTION(action);
224                 String userUserId = user.getUserId();
225                 String userFullName;
226                 if (StringUtils.isEmpty(user.getFirstName()) && StringUtils.isEmpty(user.getLastName())) {
227                         userFullName = "";
228                 } else {
229                         userFullName = user.getFullName();
230                 }
231                 if (StringUtils.isEmpty(userUserId)) {
232                         userUserId = "UNKNOWN";
233                 }
234                 expectedProductAudit.setMODIFIER(
235                                 !StringUtils.isEmpty(userFullName) ? userFullName + "(" + userUserId + ")" : "(" + userUserId + ")");
236                 expectedProductAudit.setSTATUS(Integer.toString(errorInfo.getCode()));
237                 expectedProductAudit.setDESC(errorInfo.getAuditDesc((Object[]) (errorMessageParams)));
238                 expectedProductAudit
239                                 .setRESOURCE_NAME(productDetails != null ? productDetails.getName() : Constants.EMPTY_STRING);
240                 expectedProductAudit.setRESOURCE_TYPE("Product");
241                 expectedProductAudit.setPREV_VERSION(prevVersion);
242                 expectedProductAudit.setCURR_VERSION(currVersion);
243                 expectedProductAudit.setPREV_STATE(prevState != null ? prevState.name() : Constants.EMPTY_STRING);
244                 expectedProductAudit.setCURR_STATE(currState != null ? currState.name() : Constants.EMPTY_STRING);
245                 expectedProductAudit.setSERVICE_INSTANCE_ID(uuid);
246                 return expectedProductAudit;
247         }
248
249         ////////////////
250         // Convertor.constructFieldsForAuditValidationSuccess(addUser,
251         //////////////// sdncAdminUser, mechIdUser, null, STATUS_CODE_CREATED);
252         public static ExpectedUserCRUDAudit constructFieldsForAuditValidation(String action, User userModifier,
253                         ActionStatus actionStatus, User userAfter, User userBefore, Object... variables) throws Exception {
254                 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(actionStatus.name());
255                 ExpectedUserCRUDAudit expectedAddUserAuditJavaObject = new ExpectedUserCRUDAudit();
256                 expectedAddUserAuditJavaObject.setAction(action);
257                 expectedAddUserAuditJavaObject.setModifier(
258                                 userModifier.getFirstName() != null ? userModifier.getFullName() + "(" + userModifier.getUserId() + ")"
259                                                 : "(" + userModifier.getUserId() + ")");
260                 String status = Integer.toString(errorInfo.getCode());
261                 expectedAddUserAuditJavaObject.setStatus(status);
262                 if (errorInfo.getCode() == STATUS_CODE_SUCCESS || errorInfo.getCode() == STATUS_CODE_CREATED) {
263                         expectedAddUserAuditJavaObject.setDesc("OK");
264                 } else {
265                         expectedAddUserAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
266                 }
267                 expectedAddUserAuditJavaObject.setUserBefore(userBefore != null
268                                 ? userBefore.getUserId() + ", " + userBefore.getFirstName() + " " + userBefore.getLastName() + ", "
269                                                 + userBefore.getEmail() + ", " + userBefore.getRole()
270                                 : Constants.EMPTY_STRING);
271                 expectedAddUserAuditJavaObject.setUserAfter(userAfter != null
272                                 ? userAfter.getUserId() + ", " + userAfter.getFirstName() + " " + userAfter.getLastName() + ", "
273                                                 + userAfter.getEmail() + ", " + userAfter.getRole()
274                                 : Constants.EMPTY_STRING);
275                 return expectedAddUserAuditJavaObject;
276         }
277
278         // For RESOURCE and SERVICE same Audit
279         public static ExpectedResourceAuditJavaObject constructFieldsForAuditValidation(
280                         ComponentReqDetails componentDetails, String action, User userModifier, ActionStatus actionStatus,
281                         String currVersion, String prevVersion, String curState, String prevState, String uuid, String comment,
282                         Object... variables) throws Exception {
283                 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(actionStatus.name());
284                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
285                 expectedResourceAuditJavaObject.setAction(action);
286                 expectedResourceAuditJavaObject.setMODIFIER(
287                                 userModifier.getFirstName() != null ? userModifier.getFullName() + "(" + userModifier.getUserId() + ")"
288                                                 : "(" + userModifier.getUserId() + ")");
289                 String status = Integer.toString(errorInfo.getCode());
290                 expectedResourceAuditJavaObject.setStatus(status);
291                 if (errorInfo.getCode() == STATUS_CODE_SUCCESS || errorInfo.getCode() == STATUS_CODE_CREATED) {
292                         expectedResourceAuditJavaObject.setDesc("OK");
293                 } else {
294                         expectedResourceAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
295                 }
296                 expectedResourceAuditJavaObject.setCurrState(curState);
297                 expectedResourceAuditJavaObject.setPrevState(prevState);
298                 expectedResourceAuditJavaObject.setCurrVersion(currVersion);
299                 expectedResourceAuditJavaObject.setPrevVersion(prevVersion);
300                 expectedResourceAuditJavaObject.setComment(comment);
301                 expectedResourceAuditJavaObject.setSERVICE_INSTANCE_ID(uuid);
302                 if (componentDetails instanceof ServiceReqDetails) {
303                         expectedResourceAuditJavaObject.setResourceName(((ServiceReqDetails) componentDetails).getName());
304                         expectedResourceAuditJavaObject.setResourceType("Service");
305                 }
306                 if (componentDetails instanceof ResourceReqDetails) {
307                         expectedResourceAuditJavaObject.setResourceName(((ResourceReqDetails) componentDetails).getName());
308                         expectedResourceAuditJavaObject.setResourceType("Resource");
309                 }
310                 return expectedResourceAuditJavaObject;
311         }
312
313         // Distribution Service Audit
314         public static ExpectedResourceAuditJavaObject constructFieldsForDistributionAuditValidation(
315                         ComponentReqDetails componentDetails, String action, User userModifier, ActionStatus actionStatus,
316                         String currVersion, String distCurrStatus, String distProvStatus, String curState, String uuid,
317                         String comment, Object... variables) throws Exception {
318                 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(actionStatus.name());
319                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
320                 expectedResourceAuditJavaObject.setAction(action);
321                 expectedResourceAuditJavaObject.setMODIFIER(
322                                 userModifier.getFirstName() != null ? userModifier.getFullName() + "(" + userModifier.getUserId() + ")"
323                                                 : "(" + userModifier.getUserId() + ")");
324                 String status = Integer.toString(errorInfo.getCode());
325                 expectedResourceAuditJavaObject.setStatus(status);
326                 if (errorInfo.getCode() == STATUS_CODE_SUCCESS || errorInfo.getCode() == STATUS_CODE_CREATED) {
327                         expectedResourceAuditJavaObject.setDesc("OK");
328                 } else {
329                         expectedResourceAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
330                 }
331                 expectedResourceAuditJavaObject.setCurrState(curState);
332                 expectedResourceAuditJavaObject.setCurrVersion(currVersion);
333                 expectedResourceAuditJavaObject.setDcurrStatus(distCurrStatus);
334                 expectedResourceAuditJavaObject.setDprevStatus(distProvStatus);
335                 expectedResourceAuditJavaObject.setComment(comment);
336                 expectedResourceAuditJavaObject.setSERVICE_INSTANCE_ID(uuid);
337                 if (componentDetails instanceof ServiceReqDetails) {
338                         expectedResourceAuditJavaObject.setResourceName(((ServiceReqDetails) componentDetails).getName());
339                         expectedResourceAuditJavaObject.setResourceType("Service");
340                 }
341                 return expectedResourceAuditJavaObject;
342         }
343
344 }