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