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