Sync Integ to Master
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / utils / general / ElementFactory.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.lang.StringUtils;
24 import org.openecomp.sdc.be.dao.api.ActionStatus;
25 import org.openecomp.sdc.be.datatypes.elements.ConsumerDataDefinition;
26 import org.openecomp.sdc.be.datatypes.enums.AssetTypeEnum;
27 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
28 import org.openecomp.sdc.be.model.*;
29 import org.openecomp.sdc.be.model.category.CategoryDefinition;
30 import org.openecomp.sdc.be.model.category.GroupingDefinition;
31 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
32 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
33 import org.openecomp.sdc.ci.tests.datatypes.*;
34 import org.openecomp.sdc.ci.tests.datatypes.enums.*;
35 import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedExternalAudit;
36 import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedResourceAuditJavaObject;
37 import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
38 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
39 import org.openecomp.sdc.ci.tests.utils.validation.AuditValidationUtils;
40 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
41 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
42 import org.openecomp.sdc.common.util.ValidationUtils;
43
44 import java.io.FileNotFoundException;
45 import java.io.IOException;
46 import java.util.ArrayList;
47 import java.util.List;
48 import java.util.UUID;
49
50 public class ElementFactory {
51
52         private static final String CI_SERVICE = "ciService";
53         private static final String CI_RES = "ciRes";
54         private static final String CI_PRODUCT = "CiProduct";
55         private static String DEFAULT_ARTIFACT_LABEL = "artifact1";
56         private static final String RESOURCE_INSTANCE_POS_X = "20";
57         private static final String RESOURCE_INSTANCE_POS_Y = "20";
58         private static final String RESOURCE_INSTANCE_DESCRIPTION = "description";
59         
60         // *** Getters ***
61         
62         public static String getServicePrefix() {
63                 return CI_SERVICE;
64         }
65
66         public static String getResourcePrefix() {
67                 return CI_RES;
68         }
69
70         public static String getProductPrefix() {
71                 return CI_PRODUCT;
72         }
73
74         // *** RESOURCE ***
75
76         public static ResourceReqDetails getDefaultResource() {
77                 return getDefaultResource(CI_RES, NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, "jh0003");
78         }
79
80         public static ResourceReqDetails getDefaultResource(ResourceCategoryEnum category) {
81                 return getDefaultResource(CI_RES, NormativeTypesEnum.ROOT, category, "jh0003");
82         }
83
84         public static ResourceReqDetails getDefaultResource(String contactId) {
85                 return getDefaultResource(CI_RES, NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, contactId);
86         }
87
88         public static ResourceReqDetails getDefaultResource(User modifier) {
89                 return getDefaultResource(CI_RES, NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, modifier.getUserId());
90         }
91
92         public static ResourceReqDetails getDefaultResource(NormativeTypesEnum derivedFrom, ResourceCategoryEnum category) {
93                 return getDefaultResource(CI_RES, derivedFrom, category, "jh0003");
94         }
95
96         public static ResourceReqDetails getDefaultResource(NormativeTypesEnum derivedFrom) {
97                 return getDefaultResource(CI_RES, derivedFrom, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, "jh0003");
98         }
99
100         public static ResourceReqDetails getDefaultResource(String resourceName, NormativeTypesEnum derivedFrom) {
101                 return getDefaultResource(resourceName, derivedFrom, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, "jh0003");
102         }
103
104         public static ResourceReqDetails getDefaultResource(NormativeTypesEnum derivedFrom, String contactId) {
105                 return getDefaultResource(CI_RES, derivedFrom, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, contactId);
106         }
107
108         // New
109         public static ResourceReqDetails getDefaultResourceByType(ResourceTypeEnum ResourceType, String resourceName, ResourceCategoryEnum resourceCategory, String vendorName, String vendorModelNumber) {
110                 return getDefaultResourceByType(resourceName, NormativeTypesEnum.ROOT, resourceCategory, "jh0003", ResourceType.toString(), vendorName, vendorModelNumber);
111         }
112
113         public static ResourceReqDetails getDefaultResourceByType(ResourceTypeEnum ResourceType, String resourceName) {
114                 return getDefaultResourceByType(resourceName, NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, "jh0003", ResourceType.toString());
115         }
116
117         public static ResourceReqDetails getDefaultResourceByType(ResourceTypeEnum ResourceType, User user) {
118                 return getDefaultResourceByType(CI_RES, NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_LOAD_BALANCER, user.getUserId(), ResourceType.toString());
119         }
120
121         public static ResourceReqDetails getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum resourceType, NormativeTypesEnum normativeTypes, ResourceCategoryEnum resourceCategory, User user) {
122                 return getDefaultResourceByType(CI_RES, normativeTypes, resourceCategory, user.getUserId(), resourceType.toString());
123         }
124
125         public static PropertyReqDetails getDefaultMapProperty(PropertyTypeEnum innerType) {
126                 return getPropertyDetails(innerType);
127         }
128
129         public static PropertyReqDetails getDefaultMapProperty() {
130                 return getPropertyDetails(PropertyTypeEnum.STRING_MAP);
131         }
132
133         public static ResourceReqDetails getDefaultResource(String resourceName, NormativeTypesEnum derived, ResourceCategoryEnum category, String contactId) {
134                 resourceName = (resourceName + generateUUIDforSufix());
135                 String description = "Represents a generic software component that can be managed and run by a Compute Node Type.";
136                 ArrayList<String> resourceTags = new ArrayList<>();
137                 resourceTags.add(resourceName);
138
139                 ArrayList<String> derivedFrom = new ArrayList<>();
140                 derivedFrom.add(derived.normativeName);
141                 String vendorName = "ATT Tosca";
142                 String vendorRelease = "1.0.0.wd03";
143                 String icon = "defaulticon";
144                 ResourceReqDetails resourceDetails = new ResourceReqDetails(resourceName, description, resourceTags, null, derivedFrom, vendorName, vendorRelease, contactId, icon);
145                 resourceDetails.addCategoryChain(category.getCategory(), category.getSubCategory());
146                 resourceDetails.setResourceVendorModelNumber("vendorNumber-1.5.7");
147
148                 return resourceDetails;
149
150         }
151
152         public static ResourceReqDetails getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum resourceType, Resource normativeTypes, ResourceCategoryEnum resourceCategory, User user) {
153                 return getDefaultResource(CI_RES + resourceType, normativeTypes, resourceCategory, user.getUserId());
154         }
155
156         public static ResourceReqDetails getDefaultResource(String resourceName, Resource derived, ResourceCategoryEnum category, String contactId) {
157                 resourceName = (resourceName + generateUUIDforSufix());
158                 String description = "Represents a generic software component that can be managed and run by a Compute Node Type.";
159                 ArrayList<String> resourceTags = new ArrayList<>();
160                 resourceTags.add(resourceName);
161
162                 ArrayList<String> derivedFrom = new ArrayList<>();
163                 derivedFrom.add(derived.getToscaResourceName());
164                 String vendorName = "ATT Tosca";
165                 String vendorRelease = "1.0.0.wd03";
166                 String icon = "defaulticon";
167                 ResourceReqDetails resourceDetails = new ResourceReqDetails(resourceName, description, resourceTags, null, derivedFrom, vendorName, vendorRelease, contactId, icon);
168                 resourceDetails.addCategoryChain(category.getCategory(), category.getSubCategory());
169
170                 return resourceDetails;
171
172         }
173
174         public static ResourceReqDetails getDefaultResourceByType(String resourceName, NormativeTypesEnum derived, ResourceCategoryEnum category, String contactId, ResourceTypeEnum resourceType) {
175                 return getDefaultResourceByType(resourceName, derived, category, contactId, resourceType.toString());
176         }
177
178         // New
179         public static ResourceReqDetails getDefaultResourceByType(String resourceName, NormativeTypesEnum derived, ResourceCategoryEnum category, String contactId, String resourceType) {
180                 resourceName = (resourceName + resourceType + generateUUIDforSufix());
181                 String description = "Represents a generic software component that can be managed and run by a Compute Node Type.";
182                 ArrayList<String> resourceTags = new ArrayList<>();
183                 resourceTags.add(resourceName);
184                 ArrayList<String> derivedFrom = null;
185                 if (derived != null) {
186                         derivedFrom = new ArrayList<String>();
187                         derivedFrom.add(derived.normativeName);
188                 }
189                 String vendorName = "ATT Tosca";
190                 String vendorRelease = "1.0.0.wd03";
191                 String icon = "defaulticon";
192                 ResourceReqDetails resourceDetails = new ResourceReqDetails(resourceName, description, resourceTags, null, derivedFrom, vendorName, vendorRelease, contactId, icon, resourceType.toString());
193                 resourceDetails.addCategoryChain(category.getCategory(), category.getSubCategory());
194                 resourceDetails.setResourceVendorModelNumber("vendorNumber-1.5.7");
195                 return resourceDetails;
196         }
197
198         public static ResourceReqDetails getDefaultResourceByType(String resourceName, NormativeTypesEnum derived, ResourceCategoryEnum category, String contactId, String resourceType, String vendorName, String vendorModelNumber) {
199                 resourceName = (resourceName + resourceType + generateUUIDforSufix());
200
201                 String description = "Represents a generic software component that can be managed and run by a Compute Node Type.";
202                 ArrayList<String> resourceTags = new ArrayList<>();
203                 resourceTags.add(resourceName);
204                 ArrayList<String> derivedFrom = null;
205                 if (derived != null) {
206                         derivedFrom = new ArrayList<>();
207                         derivedFrom.add(derived.normativeName);
208                 }
209                 String vendorRelease = "1.0.0.wd03";
210                 String icon = "defaulticon";
211                 ResourceReqDetails resourceDetails = new ResourceReqDetails(resourceName, description, resourceTags, null, derivedFrom, vendorName, vendorRelease, contactId, icon, resourceType.toString());
212                 resourceDetails.addCategoryChain(category.getCategory(), category.getSubCategory());
213                 resourceDetails.setResourceVendorModelNumber(vendorModelNumber);
214                 return resourceDetails;
215         }
216
217         public static ResourceReqDetails getRandomCategoryResource() {
218                 ResourceReqDetails resourceDetails = getDefaultResource(ResourceCategoryEnum.getRandomElement());
219                 return resourceDetails;
220         }
221
222         public static ResourceExternalReqDetails getDefaultResourceByType(String resourceName, ResourceCategoryEnum category, String contactId, String resourceType) {
223                 resourceName = (resourceName + resourceType + generateUUIDforSufix());
224                 String description = "Represents a generic software component that can be managed and run by a Compute Node Type.";
225                 ArrayList<String> resourceTags = new ArrayList<>();
226                 resourceTags.add(resourceName);
227                 String vendorName = "ATT Tosca";
228                 String vendorRelease = "1.0.0.wd03";
229                 String icon = "defaulticon";
230                 ResourceExternalReqDetails resourceDetails = new ResourceExternalReqDetails(resourceName, description, resourceTags, 
231                                 vendorName, vendorRelease, contactId, icon,
232                                 resourceType.toString(), category.getCategory(), category.getSubCategory());
233                 return resourceDetails;
234         }
235
236         // New
237         public static ImportReqDetails getDefaultImportResourceByType(String resourceName, NormativeTypesEnum derived, ResourceCategoryEnum category, String contactId, String resourceType) {
238                 resourceName = (resourceName + resourceType + generateUUIDforSufix());
239                 String description = "Represents a generic software component that can be managed and run by a Compute Node Type.";
240                 ArrayList<String> resourceTags = new ArrayList<>();
241                 resourceTags.add(resourceName);
242                 ArrayList<String> derivedFrom = null;
243                 if (derived != null) {
244                         derivedFrom = new ArrayList<>();
245                         derivedFrom.add(derived.normativeName);
246                 }
247                 String vendorName = "ATT Tosca";
248                 String vendorRelease = "1.0.0.wd03";
249                 String icon = "defaulticon";
250                 ImportReqDetails resourceDetails = new ImportReqDetails(resourceName, description, resourceTags, derivedFrom, vendorName, vendorRelease, contactId, icon);
251                 resourceDetails.addCategoryChain(category.getCategory(), category.getSubCategory());
252                 return resourceDetails;
253         }
254         ////
255
256         public static ImportReqDetails getDefaultImportResource(ResourceReqDetails resourceReqDetails) {
257                 ImportReqDetails importReqDetails = new ImportReqDetails(resourceReqDetails.getName(), resourceReqDetails.getDescription(), resourceReqDetails.getTags(), resourceReqDetails.getDerivedFrom(), resourceReqDetails.getVendorName(),
258                                 resourceReqDetails.getVendorRelease(), resourceReqDetails.getContactId(), resourceReqDetails.getIcon());
259                 importReqDetails.setPayloadName("myCompute.yaml");
260                 importReqDetails.setCategories(resourceReqDetails.getCategories());
261                 importReqDetails.setPayloadData(
262                                 "dG9zY2FfZGVmaW5pdGlvbnNfdmVyc2lvbjogdG9zY2Ffc2ltcGxlX3lhbWxfMV8wXzANCm5vZGVfdHlwZXM6IA0KICBjb20uYXR0LmQyLnJlc291cmNlLk15Q29tcHV0ZToNCiAgICBkZXJpdmVkX2Zyb206IHRvc2NhLm5vZGVzLlJvb3QNCiAgICBhdHRyaWJ1dGVzOg0KICAgICAgcHJpdmF0ZV9hZGRyZXNzOg0KICAgICAgICB0eXBlOiBzdHJpbmcNCiAgICAgIHB1YmxpY19hZGRyZXNzOg0KICAgICAgICB0eXBlOiBzdHJpbmcNCiAgICAgIG5ldHdvcmtzOg0KICAgICAgICB0eXBlOiBtYXANCiAgICAgICAgZW50cnlfc2NoZW1hOg0KICAgICAgICAgIHR5cGU6IHRvc2NhLmRhdGF0eXBlcy5uZXR3b3JrLk5ldHdvcmtJbmZvDQogICAgICBwb3J0czoNCiAgICAgICAgdHlwZTogbWFwDQogICAgICAgIGVudHJ5X3NjaGVtYToNCiAgICAgICAgICB0eXBlOiB0b3NjYS5kYXRhdHlwZXMubmV0d29yay5Qb3J0SW5mbw0KICAgIHJlcXVpcmVtZW50czoNCiAgICAgIC0gbG9jYWxfc3RvcmFnZTogDQogICAgICAgICAgY2FwYWJpbGl0eTogdG9zY2EuY2FwYWJpbGl0aWVzLkF0dGFjaG1lbnQNCiAgICAgICAgICBub2RlOiB0b3NjYS5ub2Rlcy5CbG9ja1N0b3JhZ2UNCiAgICAgICAgICByZWxhdGlvbnNoaXA6IHRvc2NhLnJlbGF0aW9uc2hpcHMuQXR0YWNoZXNUbw0KICAgICAgICAgIG9jY3VycmVuY2VzOiBbMCwgVU5CT1VOREVEXSAgDQogICAgY2FwYWJpbGl0aWVzOg0KICAgICAgaG9zdDogDQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5Db250YWluZXINCiAgICAgICAgdmFsaWRfc291cmNlX3R5cGVzOiBbdG9zY2Eubm9kZXMuU29mdHdhcmVDb21wb25lbnRdIA0KICAgICAgZW5kcG9pbnQgOg0KICAgICAgICB0eXBlOiB0b3NjYS5jYXBhYmlsaXRpZXMuRW5kcG9pbnQuQWRtaW4gDQogICAgICBvczogDQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5PcGVyYXRpbmdTeXN0ZW0NCiAgICAgIHNjYWxhYmxlOg0KICAgICAgICB0eXBlOiB0b3NjYS5jYXBhYmlsaXRpZXMuU2NhbGFibGUNCiAgICAgIGJpbmRpbmc6DQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5uZXR3b3JrLkJpbmRhYmxlDQo=");
263                 return importReqDetails;
264         }
265
266         public static ImportReqDetails getDefaultImportResource() {
267                 ResourceReqDetails resourceReqDetails = getDefaultResource();
268                 ImportReqDetails importReqDetails = new ImportReqDetails(resourceReqDetails.getName(), resourceReqDetails.getDescription(), resourceReqDetails.getTags(), resourceReqDetails.getDerivedFrom(), resourceReqDetails.getVendorName(),
269                                 resourceReqDetails.getVendorRelease(), resourceReqDetails.getContactId(), resourceReqDetails.getIcon());
270                 importReqDetails.setPayloadName("myCompute.yaml");
271                 importReqDetails.setCategories(resourceReqDetails.getCategories());
272                 importReqDetails.setPayloadData(
273                                 "dG9zY2FfZGVmaW5pdGlvbnNfdmVyc2lvbjogdG9zY2Ffc2ltcGxlX3lhbWxfMV8wXzANCm5vZGVfdHlwZXM6IA0KICBjb20uYXR0LmQyLnJlc291cmNlLk15Q29tcHV0ZToNCiAgICBkZXJpdmVkX2Zyb206IHRvc2NhLm5vZGVzLlJvb3QNCiAgICBhdHRyaWJ1dGVzOg0KICAgICAgcHJpdmF0ZV9hZGRyZXNzOg0KICAgICAgICB0eXBlOiBzdHJpbmcNCiAgICAgIHB1YmxpY19hZGRyZXNzOg0KICAgICAgICB0eXBlOiBzdHJpbmcNCiAgICAgIG5ldHdvcmtzOg0KICAgICAgICB0eXBlOiBtYXANCiAgICAgICAgZW50cnlfc2NoZW1hOg0KICAgICAgICAgIHR5cGU6IHRvc2NhLmRhdGF0eXBlcy5uZXR3b3JrLk5ldHdvcmtJbmZvDQogICAgICBwb3J0czoNCiAgICAgICAgdHlwZTogbWFwDQogICAgICAgIGVudHJ5X3NjaGVtYToNCiAgICAgICAgICB0eXBlOiB0b3NjYS5kYXRhdHlwZXMubmV0d29yay5Qb3J0SW5mbw0KICAgIHJlcXVpcmVtZW50czoNCiAgICAgIC0gbG9jYWxfc3RvcmFnZTogDQogICAgICAgICAgY2FwYWJpbGl0eTogdG9zY2EuY2FwYWJpbGl0aWVzLkF0dGFjaG1lbnQNCiAgICAgICAgICBub2RlOiB0b3NjYS5ub2Rlcy5CbG9ja1N0b3JhZ2UNCiAgICAgICAgICByZWxhdGlvbnNoaXA6IHRvc2NhLnJlbGF0aW9uc2hpcHMuQXR0YWNoZXNUbw0KICAgICAgICAgIG9jY3VycmVuY2VzOiBbMCwgVU5CT1VOREVEXSAgDQogICAgY2FwYWJpbGl0aWVzOg0KICAgICAgaG9zdDogDQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5Db250YWluZXINCiAgICAgICAgdmFsaWRfc291cmNlX3R5cGVzOiBbdG9zY2Eubm9kZXMuU29mdHdhcmVDb21wb25lbnRdIA0KICAgICAgZW5kcG9pbnQgOg0KICAgICAgICB0eXBlOiB0b3NjYS5jYXBhYmlsaXRpZXMuRW5kcG9pbnQuQWRtaW4gDQogICAgICBvczogDQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5PcGVyYXRpbmdTeXN0ZW0NCiAgICAgIHNjYWxhYmxlOg0KICAgICAgICB0eXBlOiB0b3NjYS5jYXBhYmlsaXRpZXMuU2NhbGFibGUNCiAgICAgIGJpbmRpbmc6DQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5uZXR3b3JrLkJpbmRhYmxlDQo=");
274                 return importReqDetails;
275         }
276
277         public static ImportReqDetails getDefaultImportResource(String name) {
278                 ResourceReqDetails resourceReqDetails = getDefaultResourceByType(ResourceTypeEnum.VFC, name);
279                 ImportReqDetails importReqDetails = new ImportReqDetails(resourceReqDetails.getName(), resourceReqDetails.getDescription(), resourceReqDetails.getTags(), resourceReqDetails.getDerivedFrom(), resourceReqDetails.getVendorName(),
280                                 resourceReqDetails.getVendorRelease(), resourceReqDetails.getContactId(), resourceReqDetails.getIcon());
281                 importReqDetails.setPayloadName("myCompute.yaml");
282                 importReqDetails.setCategories(resourceReqDetails.getCategories());
283                 importReqDetails.setPayloadData(
284                                 "dG9zY2FfZGVmaW5pdGlvbnNfdmVyc2lvbjogdG9zY2Ffc2ltcGxlX3lhbWxfMV8wXzANCm5vZGVfdHlwZXM6IA0KICBjb20uYXR0LmQyLnJlc291cmNlLk15Q29tcHV0ZToNCiAgICBkZXJpdmVkX2Zyb206IHRvc2NhLm5vZGVzLlJvb3QNCiAgICBhdHRyaWJ1dGVzOg0KICAgICAgcHJpdmF0ZV9hZGRyZXNzOg0KICAgICAgICB0eXBlOiBzdHJpbmcNCiAgICAgIHB1YmxpY19hZGRyZXNzOg0KICAgICAgICB0eXBlOiBzdHJpbmcNCiAgICAgIG5ldHdvcmtzOg0KICAgICAgICB0eXBlOiBtYXANCiAgICAgICAgZW50cnlfc2NoZW1hOg0KICAgICAgICAgIHR5cGU6IHRvc2NhLmRhdGF0eXBlcy5uZXR3b3JrLk5ldHdvcmtJbmZvDQogICAgICBwb3J0czoNCiAgICAgICAgdHlwZTogbWFwDQogICAgICAgIGVudHJ5X3NjaGVtYToNCiAgICAgICAgICB0eXBlOiB0b3NjYS5kYXRhdHlwZXMubmV0d29yay5Qb3J0SW5mbw0KICAgIHJlcXVpcmVtZW50czoNCiAgICAgIC0gbG9jYWxfc3RvcmFnZTogDQogICAgICAgICAgY2FwYWJpbGl0eTogdG9zY2EuY2FwYWJpbGl0aWVzLkF0dGFjaG1lbnQNCiAgICAgICAgICBub2RlOiB0b3NjYS5ub2Rlcy5CbG9ja1N0b3JhZ2UNCiAgICAgICAgICByZWxhdGlvbnNoaXA6IHRvc2NhLnJlbGF0aW9uc2hpcHMuQXR0YWNoZXNUbw0KICAgICAgICAgIG9jY3VycmVuY2VzOiBbMCwgVU5CT1VOREVEXSAgDQogICAgY2FwYWJpbGl0aWVzOg0KICAgICAgaG9zdDogDQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5Db250YWluZXINCiAgICAgICAgdmFsaWRfc291cmNlX3R5cGVzOiBbdG9zY2Eubm9kZXMuU29mdHdhcmVDb21wb25lbnRdIA0KICAgICAgZW5kcG9pbnQgOg0KICAgICAgICB0eXBlOiB0b3NjYS5jYXBhYmlsaXRpZXMuRW5kcG9pbnQuQWRtaW4gDQogICAgICBvczogDQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5PcGVyYXRpbmdTeXN0ZW0NCiAgICAgIHNjYWxhYmxlOg0KICAgICAgICB0eXBlOiB0b3NjYS5jYXBhYmlsaXRpZXMuU2NhbGFibGUNCiAgICAgIGJpbmRpbmc6DQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5uZXR3b3JrLkJpbmRhYmxlDQo=");
285                 return importReqDetails;
286         }
287
288         // *** SERVICE ***
289         public static ServiceReqDetails getDefaultService() {
290                 return getDefaultService(CI_SERVICE, ServiceCategoriesEnum.MOBILITY, "al1976");
291         }
292
293         public static ServiceReqDetails getDefaultService(String contactId) {
294                 return getDefaultService(CI_SERVICE, ServiceCategoriesEnum.MOBILITY, contactId);
295         }
296
297         public static ServiceReqDetails getDefaultService(User user) {
298                 return getDefaultService(CI_SERVICE, ServiceCategoriesEnum.MOBILITY, user.getUserId());
299         }
300
301         public static ServiceReqDetails getServiceByCategory(ServiceCategoriesEnum category) {
302                 return getDefaultService(CI_SERVICE, category, "al1976");
303         }
304
305         public static ServiceReqDetails getDefaultService(ServiceCategoriesEnum category, User user) {
306                 return getDefaultService(CI_SERVICE, category, user.getUserId());
307         }
308
309         public static ServiceReqDetails getDefaultService(String serviceName, ServiceCategoriesEnum category, String contactId) {
310                 serviceName = (serviceName + generateUUIDforSufix());
311                 ArrayList<String> tags = new ArrayList<>();
312                 tags.add("serviceTag");
313                 tags.add("serviceTag1");
314                 tags.add(serviceName);
315                 String description = "service Description";
316                 String icon = "defaulticon";
317
318                 ServiceReqDetails serviceDetails = new ServiceReqDetails(serviceName, category.getValue(), tags, description, contactId, icon);
319
320                 return serviceDetails;
321         }
322
323         public static ServiceReqDetails getRandomCategoryService() {
324                 ServiceReqDetails serviceReqDetails = getServiceByCategory(ServiceCategoriesEnum.getRandomElement());
325                 return serviceReqDetails;
326         }
327
328         // ***** PROPERTY ***
329
330         public static PropertyReqDetails getDefaultProperty() {
331                 return getDefaultProperty("disk_size");
332         }
333
334         public static PropertyReqDetails getDefaultProperty(String propertyName) {
335                 PropertyReqDetails property = new PropertyReqDetails();
336                 property.setName(propertyName);
337                 property.setPropertyType("integer");
338                 property.setPropertyRequired(false);
339                 property.setPropertyDefaultValue("12345");
340                 property.setPropertyDescription("test property");
341                 property.setPropertyRangeMax("500");
342                 property.setPropertyRangeMin("100");
343                 property.setPropertyPassword(false);
344                 return property;
345         }
346
347         public static PropertyReqDetails getDefaultIntegerProperty() {
348                 return getPropertyDetails(PropertyTypeEnum.INTEGER);
349         }
350
351         public static PropertyReqDetails getDefaultStringProperty() {
352                 return getPropertyDetails(PropertyTypeEnum.STRING);
353         }
354
355         public static PropertyReqDetails getDefaultBooleanProperty() {
356                 return getPropertyDetails(PropertyTypeEnum.BOOLEAN);
357         }
358
359         public static PropertyReqDetails getDefaultListProperty() {
360                 return getPropertyDetails(PropertyTypeEnum.STRING_LIST);
361         }
362
363         public static PropertyReqDetails getDefaultListProperty(PropertyTypeEnum innerType) {
364                 return getPropertyDetails(innerType);
365         }
366
367         public static PropertyReqDetails getPropertyDetails(PropertyTypeEnum propType) {
368                 return new PropertyReqDetails(propType.getName(), propType.getType(), propType.getValue(), propType.getDescription(), propType.getSchemaDefinition());
369         }
370
371         // ***** RESOURCE INSTANCE ***
372         public static ComponentInstanceReqDetails getDefaultComponentInstance() {
373                 return getDefaultComponentInstance("resourceInstanceName");
374         }
375
376         public static ComponentInstanceReqDetails getDefaultComponentInstance(String name) {
377                 String resourceUid = "resourceId";
378                 ComponentInstanceReqDetails resourceInstanceDetails = new ComponentInstanceReqDetails(resourceUid, RESOURCE_INSTANCE_DESCRIPTION, RESOURCE_INSTANCE_POS_X, RESOURCE_INSTANCE_POS_Y, name);
379
380                 return resourceInstanceDetails;
381
382         }
383
384         public static ComponentInstanceReqDetails getDefaultComponentInstance(String name, ComponentReqDetails componentReqDetails) {
385                 String resourceUid = componentReqDetails.getUniqueId();
386                 ComponentInstanceReqDetails resourceInstanceDetails = new ComponentInstanceReqDetails(resourceUid, RESOURCE_INSTANCE_DESCRIPTION, RESOURCE_INSTANCE_POS_X, RESOURCE_INSTANCE_POS_Y, name);
387
388                 return resourceInstanceDetails;
389
390         }
391
392         public static ComponentInstanceReqDetails getComponentResourceInstance(ComponentReqDetails compInstOriginDetails) {
393                 String compInstName = (compInstOriginDetails.getName() != null ? compInstOriginDetails.getName() : "resourceInstanceName");
394                 String resourceUid = compInstOriginDetails.getUniqueId();
395                 ComponentInstanceReqDetails resourceInstanceDetails = new ComponentInstanceReqDetails(resourceUid, RESOURCE_INSTANCE_DESCRIPTION, RESOURCE_INSTANCE_POS_X, RESOURCE_INSTANCE_POS_Y, compInstName);
396                 return resourceInstanceDetails;
397
398         }
399
400         public static ComponentInstanceReqDetails getComponentInstance(Component compInstOriginDetails) {
401                 String compInstName = (compInstOriginDetails.getName() != null ? compInstOriginDetails.getName() : "componentInstanceName");
402                 String compInsUid = compInstOriginDetails.getUniqueId();
403                 ComponentInstanceReqDetails componentInstanceDetails = new ComponentInstanceReqDetails(compInsUid, RESOURCE_INSTANCE_DESCRIPTION, RESOURCE_INSTANCE_POS_X, RESOURCE_INSTANCE_POS_Y, compInstName);
404                 return componentInstanceDetails;
405
406         }
407
408         // ******* USER **********************
409         public static User getDefaultUser(UserRoleEnum userRole) {
410                 User sdncModifierDetails = new User();
411                 sdncModifierDetails.setUserId(userRole.getUserId());
412                 sdncModifierDetails.setFirstName(userRole.getFirstName());
413                 sdncModifierDetails.setLastName(userRole.getLastName());
414                 return sdncModifierDetails;
415         }
416
417         public static User getDefaultMechUser() {
418                 User sdncMechUserDetails = new User();
419                 sdncMechUserDetails.setUserId("m12345");
420                 sdncMechUserDetails.setFirstName("Fishi");
421                 sdncMechUserDetails.setLastName("Shifi");
422                 sdncMechUserDetails.setEmail("mechId@intl.sdc.com");
423                 sdncMechUserDetails.setRole("DESIGNER");
424                 return sdncMechUserDetails;
425         }
426
427         // ******* CONSUMER **********************
428
429         public static ConsumerDataDefinition getDefaultConsumerDetails() {
430                 ConsumerDataDefinition consumer = new ConsumerDataDefinition();
431                 consumer.setConsumerName("ci");
432                 consumer.setConsumerSalt("2a1f887d607d4515d4066fe0f5452a50");
433                 consumer.setConsumerPassword("0a0dc557c3bf594b1a48030e3e99227580168b21f44e285c69740b8d5b13e33b");
434                 return consumer;
435         }
436
437         // *** ARTIFACT ***
438         public static ArtifactReqDetails getDefaultArtifact() throws IOException, Exception {
439                 return getDefaultArtifact(DEFAULT_ARTIFACT_LABEL);
440         }
441
442         public static ArtifactReqDetails getDefaultArtifact(String artifactLabel) throws IOException, Exception {
443                 List<String> artifactTypes = ResponseParser.getValuesFromJsonArray(ArtifactRestUtils.getArtifactTypesList());
444                 String artifactType = artifactTypes.get(0);
445
446                 return getDefaultArtifact(artifactLabel, artifactType);
447         }
448
449         public static ArtifactReqDetails getDefaultArtifact(String artifactLabel, String artifactType) throws IOException, Exception {
450
451                 String artifactName = "testArtifact.sh";
452                 String artifactDescription = "descriptionTest";
453                 String payloadData = "dGVzdA=="; // content of file
454
455                 ArtifactReqDetails artifactDetails = new ArtifactReqDetails(artifactName, artifactType, artifactDescription, payloadData, artifactLabel);
456                 artifactDetails.setUrl("");
457                 artifactDetails.setArtifactDisplayName(artifactLabel);
458                 return artifactDetails;
459         }
460
461         public static ArtifactReqDetails getServiceApiArtifactDetails(String artifactLabel) throws IOException, Exception {
462                 ArtifactReqDetails defaultArtifact = getDefaultArtifact(artifactLabel, "OTHER");
463                 defaultArtifact.setUrl("http://www.apple.com");
464                 defaultArtifact.setServiceApi(true);
465                 defaultArtifact.setArtifactDisplayName(StringUtils.capitalize(defaultArtifact.getArtifactLabel()));
466                 return defaultArtifact;
467         }
468
469         public static ArtifactReqDetails getDefaultDeploymentArtifactForType(String artifactType) throws IOException, Exception {
470                 return getArtifactByType(DEFAULT_ARTIFACT_LABEL, artifactType, true, false);
471         }
472
473         public static ArtifactReqDetails getArtifactByType(ArtifactTypeEnum artifactLabel, ArtifactTypeEnum artifactType, Boolean deploymentTrue) throws IOException, Exception {
474                 return getArtifactByType(DEFAULT_ARTIFACT_LABEL, artifactType.toString(), deploymentTrue, false);
475
476         }
477
478         public static ArtifactReqDetails getArtifactByType(String artifactLabel, String artifactType, Boolean deploymentTrue, Boolean updatedPayload) throws IOException, Exception {
479                 String artifactName;
480                 String updatedPayloadData =null;
481                 String payloadData = null;
482                 Integer timeout = null;
483                 String url = "";
484                 String artifactDescription = "descriptionTest";
485
486                 // PLEASE NOTE!!!
487                 // The non-default payloads here are real ones according to various
488                 // types validations,
489                 // Please don't change them unless you know what you are doing!
490
491                 ArtifactTypeEnum artifactTypeEnum = ArtifactTypeEnum.findType(artifactType);
492
493                 /*
494                  * Missing file type: DCAE_JSON
495                  */
496                 switch (artifactTypeEnum) {
497                 case DCAE_INVENTORY_TOSCA:
498                 case DCAE_EVENT:
499                 case APPC_CONFIG:
500                 case DCAE_DOC:
501                 case DCAE_TOSCA:
502                 case HEAT:
503                 case HEAT_NET:
504                 case HEAT_VOL: {
505                         artifactName = generateUUIDforSufix() + artifactType + "_install_apache2.yaml";
506                         payloadData = "aGVhdF90ZW1wbGF0ZV92ZXJzaW9uOiAyMDEzLTA1LTIzDQoNCmRlc2NyaXB0aW9uOiBTaW1wbGUgdGVtcGxhdGUgdG8gZGVwbG95IGEgc3RhY2sgd2l0aCB0d28gdmlydHVhbCBtYWNoaW5lIGluc3RhbmNlcw0KDQpwYXJhbWV0ZXJzOg0KICBpbWFnZV9uYW1lXzE6DQogICAgdHlwZTogc3RyaW5nDQogICAgbGFiZWw6IEltYWdlIE5hbWUNCiAgICBkZXNjcmlwdGlvbjogU0NPSU1BR0UgU3BlY2lmeSBhbiBpbWFnZSBuYW1lIGZvciBpbnN0YW5jZTENCiAgICBkZWZhdWx0OiBjaXJyb3MtMC4zLjEteDg2XzY0DQogIGltYWdlX25hbWVfMjoNCiAgICB0eXBlOiBzdHJpbmcNCiAgICBsYWJlbDogSW1hZ2UgTmFtZQ0KICAgIGRlc2NyaXB0aW9uOiBTQ09JTUFHRSBTcGVjaWZ5IGFuIGltYWdlIG5hbWUgZm9yIGluc3RhbmNlMg0KICAgIGRlZmF1bHQ6IGNpcnJvcy0wLjMuMS14ODZfNjQNCiAgbmV0d29ya19pZDoNCiAgICB0eXBlOiBzdHJpbmcNCiAgICBsYWJlbDogTmV0d29yayBJRA0KICAgIGRlc2NyaXB0aW9uOiBTQ09ORVRXT1JLIE5ldHdvcmsgdG8gYmUgdXNlZCBmb3IgdGhlIGNvbXB1dGUgaW5zdGFuY2UNCiAgICBoaWRkZW46IHRydWUNCiAgICBjb25zdHJhaW50czoNCiAgICAgIC0gbGVuZ3RoOiB7IG1pbjogNiwgbWF4OiA4IH0NCiAgICAgICAgZGVzY3JpcHRpb246IFBhc3N3b3JkIGxlbmd0aCBtdXN0IGJlIGJldHdlZW4gNiBhbmQgOCBjaGFyYWN0ZXJzLg0KICAgICAgLSByYW5nZTogeyBtaW46IDYsIG1heDogOCB9DQogICAgICAgIGRlc2NyaXB0aW9uOiBSYW5nZSBkZXNjcmlwdGlvbg0KICAgICAgLSBhbGxvd2VkX3ZhbHVlczoNCiAgICAgICAgLSBtMS5zbWFsbA0KICAgICAgICAtIG0xLm1lZGl1bQ0KICAgICAgICAtIG0xLmxhcmdlDQogICAgICAgIGRlc2NyaXB0aW9uOiBBbGxvd2VkIHZhbHVlcyBkZXNjcmlwdGlvbg0KICAgICAgLSBhbGxvd2VkX3BhdHRlcm46ICJbYS16QS1aMC05XSsiDQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBtdXN0IGNvbnNpc3Qgb2YgY2hhcmFjdGVycyBhbmQgbnVtYmVycyBvbmx5Lg0KICAgICAgLSBhbGxvd2VkX3BhdHRlcm46ICJbQS1aXStbYS16QS1aMC05XSoiDQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBtdXN0IHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGNoYXJhY3Rlci4NCiAgICAgIC0gY3VzdG9tX2NvbnN0cmFpbnQ6IG5vdmEua2V5cGFpcg0KICAgICAgICBkZXNjcmlwdGlvbjogQ3VzdG9tIGRlc2NyaXB0aW9uDQoNCnJlc291cmNlczoNCiAgbXlfaW5zdGFuY2UxOg0KICAgIHR5cGU6IE9TOjpOb3ZhOjpTZXJ2ZXINCiAgICBwcm9wZXJ0aWVzOg0KICAgICAgaW1hZ2U6IHsgZ2V0X3BhcmFtOiBpbWFnZV9uYW1lXzEgfQ0KICAgICAgZmxhdm9yOiBtMS5zbWFsbA0KICAgICAgbmV0d29ya3M6DQogICAgICAgIC0gbmV0d29yayA6IHsgZ2V0X3BhcmFtIDogbmV0d29ya19pZCB9DQogIG15X2luc3RhbmNlMjoNCiAgICB0eXBlOiBPUzo6Tm92YTo6U2VydmVyDQogICAgcHJvcGVydGllczoNCiAgICAgIGltYWdlOiB7IGdldF9wYXJhbTogaW1hZ2VfbmFtZV8yIH0NCiAgICAgIGZsYXZvcjogbTEudGlueQ0KICAgICAgbmV0d29ya3M6DQogICAgICAgIC0gbmV0d29yayA6IHsgZ2V0X3BhcmFtIDogbmV0d29ya19pZCB9";
507                         updatedPayloadData = "dG9zY2FfZGVmaW5pdGlvbnNfdmVyc2lvbjogdG9zY2Ffc2ltcGxlX3lhbWxfMV8wXzANCg0Kbm9kZV90eXBlczoNCiAgY29tLmF0dC5kMi5yZXNvdXJjZS5jcC5DUDoNCiAgICBkZXJpdmVkX2Zyb206IHRvc2NhLm5vZGVzLm5ldHdvcmsuUG9ydA0KICAgIHByb3BlcnRpZXM6DQogICAgICBpc190YWdnZWQ6DQogICAgICAgIHR5cGU6IGJvb2xlYW4NCiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlDQogICAgICAgIGRlZmF1bHQ6IGZhbHNlDQogICAgICAgIGRlc2NyaXB0aW9uOiANCg0KICAgIHJlcXVpcmVtZW50czoNCiAgICAgIC0gdmlydHVhbExpbms6DQogICAgICAgICAgY2FwYWJpbGl0eTogdG9zY2EuY2FwYWJpbGl0aWVzLm5ldHdvcmsuTGlua2FibGUNCiAgICAgICAgICByZWxhdGlvbnNoaXA6IHRvc2NhLnJlbGF0aW9uc2hpcHMubmV0d29yay5MaW5rc1RvDQogICAgICAtIHZpcnR1YWxCaW5kaW5nOg0KICAgICAgICAgIGNhcGFiaWxpdHk6IHRvc2NhLmNhcGFiaWxpdGllcy5uZXR3b3JrLkJpbmRhYmxlDQogICAgICAgICAgcmVsYXRpb25zaGlwOiB0b3NjYS5yZWxhdGlvbnNoaXBzLm5ldHdvcmsuQmluZHNUbw0KICAgIGNhcGFiaWxpdGllczoNCiAgICAgIGF0dGFjaG1lbnQ6DQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5BdHRhY2htZW50DQogICAgICAgIG9jY3VycmVuY2VzOg0KICAgICAgICAtIDENCiAgICAgICAgLSBVTkJPVU5ERUQNCiAgICAgICAgdHlwZTogdG9zY2EuY2FwYWJpbGl0aWVzLm5ldHdvcmsuQmluZGFibGUNCiAgICAgICAgb2NjdXJyZW5jZXM6DQogICAgICAgIC0gMQ0KICAgICAgICAtIFVOQk9VTkRFRA0KICAgICAgdmlydHVhbF9saW5rYWJsZToNCiAgICAgICAgdHlwZTogY29tLmF0dC5kMi5jYXBhYmlsaXRpZXMuTWV0cmljDQogICAgICBlbmRfcG9pbnQ6DQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5FbmRwb2ludCAgICAgICA=";
508                         timeout = 60;
509                         artifactLabel = normalizeArtifactLabel(artifactName);
510                         break;
511                 }
512                 case DCAE_INVENTORY_POLICY:
513                 case DCAE_INVENTORY_BLUEPRINT:
514                 case DCAE_INVENTORY_EVENT: {
515                         artifactName = getDcaeArtifactName(artifactTypeEnum, artifactType);
516                         payloadData = "will be override later";
517                         updatedPayloadData = "override";
518                         timeout = 60;
519                         artifactLabel = normalizeArtifactLabel(artifactName);
520                         break;
521                 }
522                 case MURANO_PKG: {
523                         artifactName = artifactType + "org.openstack.Rally.zip";
524                         payloadData = "ODM4MTRjNzkxZjcwYTlkMjk4ZGQ2ODE4MThmNjg0N2Y=";
525                         updatedPayloadData = "ODM4MTRjNzkxZjcwYTlkMjk4ZGQ2ODE4MThmMTAwN2Y=";
526                         break;
527                 }
528                 case DCAE_POLICY: {
529                         artifactName = artifactType + "dcae_policy.emf";
530                         payloadData = "will be override later";
531                         updatedPayloadData = "override";
532                         break;
533                 }
534                 case DCAE_INVENTORY_JSON:
535                 case DCAE_JSON: {
536                         artifactName = artifactType + "dcae_policy.json";
537                         payloadData = "ew0KICAiYXJ0aWZhY3RzIjogImRmc2FmIiwNCiAgIm5vcm1hbGl6ZWROYW1lIjogImNpc2VydmljZTBiYzY5ODk2OTQ4ZiIsDQogICJzeXN0ZW1OYW1lIjogIkNpc2VydmljZTBiYzY5ODk2OTQ4ZiIsDQogICJpbnZhcmlhbnRVVUlEIjogIjEzZmJkNzI3LWRjNzUtNDU1OS1iNzEyLWUwMjc5YmY4YTg2MSIsDQogICJhdHRDb250YWN0IjogImNzMDAwOCIsDQogICJuYW1lIjogImNpU2VydmljZTBiYzY5ODk2OTQ4ZiINCn0=";
538                         updatedPayloadData = "ew0KICAiYXJ0aWZhY3RzIjogIjEyMzQzIiwNCiAgIm5vcm1hbGl6ZWROYW1lIjogIjU0MzUzNCIsDQogICJzeXN0ZW1OYW1lIjogIkNpc2VydmljZTBiYzY5ODk2OTQ4ZiIsDQogICJpbnZhcmlhbnRVVUlEIjogIjEzZmJkNzI3LWRjNzUtNDU1OS1iNzEyLWUwMjc5YmY4YTg2MSIsDQogICJhdHRDb250YWN0IjogImNzMDAwOCIsDQogICJuYW1lIjogImNpU2VydmljZTBiYzY5ODk2OTQ4ZiINCn0=";
539                         break;
540                 }
541                 case PUPPET:
542                 case CHEF:
543                 case DG_XML:
544                 case YANG: {
545                         artifactName = generateUUIDforSufix() + artifactType + "yangXml.xml";
546                         payloadData = "PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8ZGF0YT4NCiAgPHNwb3J0cz4NCiAgICA8cGVyc29uPg0KICAgICAgPG5hbWU+TGlvbmVsIEFuZHJlcyBNZXNzaTwvbmFtZT4NCiAgICAgIDxiaXJ0aGRheT4xOTg3LTA2LTI0VDAwOjAwOjAwLTAwOjAwPC9iaXJ0aGRheT4NCiAgICA8L3BlcnNvbj4NCiAgICA8cGVyc29uPg0KICAgICAgPG5hbWU+Q3Jpc3RpYW5vIFJvbmFsZG88L25hbWU+DQogICAgICA8YmlydGhkYXk+MTk4NS0wMi0wNVQwMDowMDowMC0wMDowMDwvYmlydGhkYXk+DQogICAgPC9wZXJzb24+DQogICAgPHRlYW0+DQogICAgICA8bmFtZT5GQyBCYXJjZWxvbmE8L25hbWU+DQogICAgICA8cGxheWVyPg0KICAgICAgICA8bmFtZT5MaW9uZWwgQW5kcmVzIE1lc3NpPC9uYW1lPg0KICAgICAgICA8c2Vhc29uPkNoYW1waW9ucyBMZWFndWUgMjAxNC0yMDE1PC9zZWFzb24+DQogICAgICAgIDxudW1iZXI+MTA8L251bWJlcj4NCiAgICAgICAgPHNjb3Jlcz40Mzwvc2NvcmVzPg0KICAgICAgPC9wbGF5ZXI+DQogICAgPC90ZWFtPg0KICAgIDx0ZWFtPg0KICAgICAgPG5hbWU+UmVhbCBNYWRyaWQ8L25hbWU+DQogICAgICA8cGxheWVyPg0KICAgICAgICA8bmFtZT5DcmlzdGlhbm8gUm9uYWxkbzwvbmFtZT4NCiAgICAgICAgPHNlYXNvbj5DaGFtcGlvbnMgTGVhZ3VlIDIwMTQtMjAxNTwvc2Vhc29uPg0KICAgICAgICA8bnVtYmVyPjc8L251bWJlcj4NCiAgICAgICAgPHNjb3Jlcz40ODwvc2NvcmVzPg0KICAgICAgPC9wbGF5ZXI+DQogICAgPC90ZWFtPg0KICA8L3Nwb3J0cz4NCg0KPC9kYXRhPg==";
547                         updatedPayloadData = "PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8ZGF0YT4NCiAgPHNwb3J0cz4NCiAgICA8cGVyc29uPg0KICAgICAgPG5hbWU+TGlvbmVsIEFuZHJlcyBNZXNzaTwvbmFtZT4NCiAgICAgIDxiaXJ0aGRheT4xOTkwLTA2LTI0VDAwOjAwOjAwLTAwOjExPC9iaXJ0aGRheT4NCiAgICA8L3BlcnNvbj4NCiAgICA8cGVyc29uPg0KICAgICAgPG5hbWU+Q3Jpc3RpYW5vIFJvbmFsZG88L25hbWU+DQogICAgICA8YmlydGhkYXk+MTk4NS0wMi0wNVQwMDowMDowMC0wMDowMDwvYmlydGhkYXk+DQogICAgPC9wZXJzb24+DQogICAgPHRlYW0+DQogICAgICA8bmFtZT5GQyBCYXJjZWxvbmE8L25hbWU+DQogICAgICA8cGxheWVyPg0KICAgICAgICA8bmFtZT5MaW9uZWwgQW5kcmVzIE1lc3NpPC9uYW1lPg0KICAgICAgICA8c2Vhc29uPkNoYW1waW9ucyBMZWFndWUgMjAxNC0yMDE1PC9zZWFzb24+DQogICAgICAgIDxudW1iZXI+MTA8L251bWJlcj4NCiAgICAgICAgPHNjb3Jlcz40Mzwvc2NvcmVzPg0KICAgICAgPC9wbGF5ZXI+DQogICAgPC90ZWFtPg0KICAgIDx0ZWFtPg0KICAgICAgPG5hbWU+UmVhbCBNYWRyaWQ8L25hbWU+DQogICAgICA8cGxheWVyPg0KICAgICAgICA8bmFtZT5DcmlzdGlhbm8gUm9uYWxkbzwvbmFtZT4NCiAgICAgICAgPHNlYXNvbj5DaGFtcGlvbnMgTGVhZ3VlIDIwMTQtMjAxNTwvc2Vhc29uPg0KICAgICAgICA8bnVtYmVyPjc8L251bWJlcj4NCiAgICAgICAgPHNjb3Jlcz40ODwvc2NvcmVzPg0KICAgICAgPC9wbGF5ZXI+DQogICAgPC90ZWFtPg0KICA8L3Nwb3J0cz4NCg0KPC9kYXRhPg==";
548                         timeout = 15;
549                         artifactLabel = normalizeArtifactLabel(artifactName);
550                         break;
551                 }
552                 case VF_LICENSE:
553                 case VENDOR_LICENSE:
554                 case MODEL_INVENTORY_PROFILE:
555                 case MODEL_QUERY_SPEC:
556                 case VNF_CATALOG:
557                 case YANG_XML: {
558                         artifactName = generateUUIDforSufix() + artifactType + "yangXml.xml";
559                         payloadData = "PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8ZGF0YT4NCiAgPHNwb3J0cz4NCiAgICA8cGVyc29uPg0KICAgICAgPG5hbWU+TGlvbmVsIEFuZHJlcyBNZXNzaTwvbmFtZT4NCiAgICAgIDxiaXJ0aGRheT4xOTg3LTA2LTI0VDAwOjAwOjAwLTAwOjAwPC9iaXJ0aGRheT4NCiAgICA8L3BlcnNvbj4NCiAgICA8cGVyc29uPg0KICAgICAgPG5hbWU+Q3Jpc3RpYW5vIFJvbmFsZG88L25hbWU+DQogICAgICA8YmlydGhkYXk+MTk4NS0wMi0wNVQwMDowMDowMC0wMDowMDwvYmlydGhkYXk+DQogICAgPC9wZXJzb24+DQogICAgPHRlYW0+DQogICAgICA8bmFtZT5GQyBCYXJjZWxvbmE8L25hbWU+DQogICAgICA8cGxheWVyPg0KICAgICAgICA8bmFtZT5MaW9uZWwgQW5kcmVzIE1lc3NpPC9uYW1lPg0KICAgICAgICA8c2Vhc29uPkNoYW1waW9ucyBMZWFndWUgMjAxNC0yMDE1PC9zZWFzb24+DQogICAgICAgIDxudW1iZXI+MTA8L251bWJlcj4NCiAgICAgICAgPHNjb3Jlcz40Mzwvc2NvcmVzPg0KICAgICAgPC9wbGF5ZXI+DQogICAgPC90ZWFtPg0KICAgIDx0ZWFtPg0KICAgICAgPG5hbWU+UmVhbCBNYWRyaWQ8L25hbWU+DQogICAgICA8cGxheWVyPg0KICAgICAgICA8bmFtZT5DcmlzdGlhbm8gUm9uYWxkbzwvbmFtZT4NCiAgICAgICAgPHNlYXNvbj5DaGFtcGlvbnMgTGVhZ3VlIDIwMTQtMjAxNTwvc2Vhc29uPg0KICAgICAgICA8bnVtYmVyPjc8L251bWJlcj4NCiAgICAgICAgPHNjb3Jlcz40ODwvc2NvcmVzPg0KICAgICAgPC9wbGF5ZXI+DQogICAgPC90ZWFtPg0KICA8L3Nwb3J0cz4NCg0KPC9kYXRhPg==";
560                         updatedPayloadData = "PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8ZGF0YT4NCiAgPHNwb3J0cz4NCiAgICA8cGVyc29uPg0KICAgICAgPG5hbWU+TGlvbmVsIEFuZHJlcyBNZXNzaTwvbmFtZT4NCiAgICAgIDxiaXJ0aGRheT4xOTkwLTA2LTI0VDAwOjAwOjAwLTAwOjExPC9iaXJ0aGRheT4NCiAgICA8L3BlcnNvbj4NCiAgICA8cGVyc29uPg0KICAgICAgPG5hbWU+Q3Jpc3RpYW5vIFJvbmFsZG88L25hbWU+DQogICAgICA8YmlydGhkYXk+MTk4NS0wMi0wNVQwMDowMDowMC0wMDowMDwvYmlydGhkYXk+DQogICAgPC9wZXJzb24+DQogICAgPHRlYW0+DQogICAgICA8bmFtZT5GQyBCYXJjZWxvbmE8L25hbWU+DQogICAgICA8cGxheWVyPg0KICAgICAgICA8bmFtZT5MaW9uZWwgQW5kcmVzIE1lc3NpPC9uYW1lPg0KICAgICAgICA8c2Vhc29uPkNoYW1waW9ucyBMZWFndWUgMjAxNC0yMDE1PC9zZWFzb24+DQogICAgICAgIDxudW1iZXI+MTA8L251bWJlcj4NCiAgICAgICAgPHNjb3Jlcz40Mzwvc2NvcmVzPg0KICAgICAgPC9wbGF5ZXI+DQogICAgPC90ZWFtPg0KICAgIDx0ZWFtPg0KICAgICAgPG5hbWU+UmVhbCBNYWRyaWQ8L25hbWU+DQogICAgICA8cGxheWVyPg0KICAgICAgICA8bmFtZT5DcmlzdGlhbm8gUm9uYWxkbzwvbmFtZT4NCiAgICAgICAgPHNlYXNvbj5DaGFtcGlvbnMgTGVhZ3VlIDIwMTQtMjAxNTwvc2Vhc29uPg0KICAgICAgICA8bnVtYmVyPjc8L251bWJlcj4NCiAgICAgICAgPHNjb3Jlcz40ODwvc2NvcmVzPg0KICAgICAgPC9wbGF5ZXI+DQogICAgPC90ZWFtPg0KICA8L3Nwb3J0cz4NCg0KPC9kYXRhPg==";
561                         timeout = 0;
562                         artifactLabel = normalizeArtifactLabel(artifactName);
563                         break;
564                 }
565                 case SNMP_POLL:
566                 case SNMP_TRAP:
567                 case DCAE_INVENTORY_DOC:
568                 case GUIDE:
569                 case OTHER: {
570                         artifactName = generateUUIDforSufix() + artifactType + "other.pdf";
571                         payloadData = "aGVhdF90ZW1wbGF0ZV92ZXJzaW9uOiAyMDEzLTA1LTIzDQoNCmRlc2NyaXB0aW9uOiBTaW1wbGUgdGVtcGxhdGUgdG8gZGVwbG95IGEgc3RhY2sgd2l0aCB0d28gdmlydHVhbCBtYWNoaW5lIGluc3RhbmNlcw0KDQpwYXJhbWV0ZXJzOg0KICBpbWFnZV9uYW1lXzE6DQogICAgdHlwZTogc3RyaW5nDQogICAgbGFiZWw6IEltYWdlIE5hbWUNCiAgICBkZXNjcmlwdGlvbjogU0NPSU1BR0UgU3BlY2lmeSBhbiBpbWFnZSBuYW1lIGZvciBpbnN0YW5jZTENCiAgICBkZWZhdWx0OiBjaXJyb3MtMC4zLjEteDg2XzY0DQogIGltYWdlX25hbWVfMjoNCiAgICB0eXBlOiBzdHJpbmcNCiAgICBsYWJlbDogSW1hZ2UgTmFtZQ0KICAgIGRlc2NyaXB0aW9uOiBTQ09JTUFHRSBTcGVjaWZ5IGFuIGltYWdlIG5hbWUgZm9yIGluc3RhbmNlMg0KICAgIGRlZmF1bHQ6IGNpcnJvcy0wLjMuMS14ODZfNjQNCiAgbmV0d29ya19pZDoNCiAgICB0eXBlOiBzdHJpbmcNCiAgICBsYWJlbDogTmV0d29yayBJRA0KICAgIGRlc2NyaXB0aW9uOiBTQ09ORVRXT1JLIE5ldHdvcmsgdG8gYmUgdXNlZCBmb3IgdGhlIGNvbXB1dGUgaW5zdGFuY2UNCiAgICBoaWRkZW46IHRydWUNCiAgICBjb25zdHJhaW50czoNCiAgICAgIC0gbGVuZ3RoOiB7IG1pbjogNiwgbWF4OiA4IH0NCiAgICAgICAgZGVzY3JpcHRpb246IFBhc3N3b3JkIGxlbmd0aCBtdXN0IGJlIGJldHdlZW4gNiBhbmQgOCBjaGFyYWN0ZXJzLg0KICAgICAgLSByYW5nZTogeyBtaW46IDYsIG1heDogOCB9DQogICAgICAgIGRlc2NyaXB0aW9uOiBSYW5nZSBkZXNjcmlwdGlvbg0KICAgICAgLSBhbGxvd2VkX3ZhbHVlczoNCiAgICAgICAgLSBtMS5zbWFsbA0KICAgICAgICAtIG0xLm1lZGl1bQ0KICAgICAgICAtIG0xLmxhcmdlDQogICAgICAgIGRlc2NyaXB0aW9uOiBBbGxvd2VkIHZhbHVlcyBkZXNjcmlwdGlvbg0KICAgICAgLSBhbGxvd2VkX3BhdHRlcm46ICJbYS16QS1aMC05XSsiDQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBtdXN0IGNvbnNpc3Qgb2YgY2hhcmFjdGVycyBhbmQgbnVtYmVycyBvbmx5Lg0KICAgICAgLSBhbGxvd2VkX3BhdHRlcm46ICJbQS1aXStbYS16QS1aMC05XSoiDQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBtdXN0IHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGNoYXJhY3Rlci4NCiAgICAgIC0gY3VzdG9tX2NvbnN0cmFpbnQ6IG5vdmEua2V5cGFpcg0KICAgICAgICBkZXNjcmlwdGlvbjogQ3VzdG9tIGRlc2NyaXB0aW9uDQoNCnJlc291cmNlczoNCiAgbXlfaW5zdGFuY2UxOg0KICAgIHR5cGU6IE9TOjpOb3ZhOjpTZXJ2ZXINCiAgICBwcm9wZXJ0aWVzOg0KICAgICAgaW1hZ2U6IHsgZ2V0X3BhcmFtOiBpbWFnZV9uYW1lXzEgfQ0KICAgICAgZmxhdm9yOiBtMS5zbWFsbA0KICAgICAgbmV0d29ya3M6DQogICAgICAgIC0gbmV0d29yayA6IHsgZ2V0X3BhcmFtIDogbmV0d29ya19pZCB9DQogIG15X2luc3RhbmNlMjoNCiAgICB0eXBlOiBPUzo6Tm92YTo6U2VydmVyDQogICAgcHJvcGVydGllczoNCiAgICAgIGltYWdlOiB7IGdldF9wYXJhbTogaW1hZ2VfbmFtZV8yIH0NCiAgICAgIGZsYXZvcjogbTEudGlueQ0KICAgICAgbmV0d29ya3M6DQogICAgICAgIC0gbmV0d29yayA6IHsgZ2V0X3BhcmFtIDogbmV0d29ya19pZCB9";
572                         updatedPayloadData = "aGVhdF90ZW1wbGF0ZV92ZXJzaW9uOiAyMDE2LTA1LTIzDQoNCmRlc2NyaXB0aW9uOiBTaW1wbGUgdGVtcGxhdGRzYWRzYWRzYWUgdG8gZGVwbG95IGEgc3RhY2sgd2l0aCB0d28gdmlydHVhbCBtYWNoaW5lIGluc3RhbmNlcw0KDQpwYXJhbWV0ZXJzOg0KICBpbWFnZV9uYW1lXzE6DQogICAgdHlwZTogc3RyaW5nDQogICAgbGFiZWw6IEltYWdlIE5hbWUNCiAgICBkZXNjcmlwdGlvbjogU0NPSU1BR0UgU3BlY2lmeSBhbiBpbWFkc2FkYXN3Z2UgbmFtZSBmb3IgaW5zdGFuY2UxDQogICAgZGVmYXVsdDogY2lycm9zLTAuMy4xLXg4Nl82NA0KICBpbWFnZV9uYW1lXzI6DQogICAgdHlwZTogc3RyaW5nDQogICAgbGFiZWw6IEltYWdlIE5hbWUNCiAgICBkZXNjcmlwdGlvbjogU0NPSU1BR0UgU3BlY2lmeSBhbiBpbWFnZSBuYW1lIGZvciBpbnN0YW5jZTINCiAgICBkZWZhdWx0OiBjaXJyb3MtMC4zLjEteDg2XzY0DQogIG5ldHdvcmtfaWQ6DQogICAgdHlwZTogc3RyaW5nDQogICAgbGFiZWw6IE5ldHdvcmsgSUQNCiAgICBkZXNjcmlwdGlvbjogU0NPTkVUV09SSyBOZXR3b3JrIHRvIGJlIHVzZWQgZm9yIHRoZSBjb21wdXRlIGluc3RhbmNlDQogICAgaGlkZGVuOiB0cnVlDQogICAgY29uc3RyYWludHM6DQogICAgICAtIGxlbmd0aDogeyBtaW46IDYsIG1heDogOCB9DQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBsZW5ndGggbXVzdCBiZSBiZXR3ZWVuIDYgYW5kIDggY2hhcmFjdGVycy4NCiAgICAgIC0gcmFuZ2U6IHsgbWluOiA2LCBtYXg6IDggfQ0KICAgICAgICBkZXNjcmlwdGlvbjogUmFuZ2UgZGVzY3JpcHRpb24NCiAgICAgIC0gYWxsb3dlZF92YWx1ZXM6DQogICAgICAgIC0gbTEuc21hbGwNCiAgICAgICAgLSBtMS5tZWRpdW0NCiAgICAgICAgLSBtMS5sYXJnZQ0KICAgICAgICBkZXNjcmlwdGlvbjogQWxsb3dlZCB2YWx1ZXMgZGVzY3JpcHRpb24NCiAgICAgIC0gYWxsb3dlZF9wYXR0ZXJuOiAiW2EtekEtWjAtOV0rIg0KICAgICAgICBkZXNjcmlwdGlvbjogUGFzc3dvcmQgbXVzdCBjb25zaXN0IG9mIGNoYXJhY3RlcnMgYW5kIG51bWJlcnMgb25seS4NCiAgICAgIC0gYWxsb3dlZF9wYXR0ZXJuOiAiW0EtWl0rW2EtekEtWjAtOV0qIg0KICAgICAgICBkZXNjcmlwdGlvbjogUGFzc3dvcmQgbXVzdCBzdGFydCB3aXRoIGFuIHVwcGVyY2FzZSBjaGFyYWN0ZXIuDQogICAgICAtIGN1c3RvbV9jb25zdHJhaW50OiBub3ZhLmtleXBhaXINCiAgICAgICAgZGVzY3JpcHRpb246IEN1c3RvbSBkZXNjcmlwdGlvbg0KDQpyZXNvdXJjZXM6DQogIG15X2luc3RhbmNlMToNCiAgICB0eXBlOiBPUzo6Tm92YTo6U2VydmVyDQogICAgcHJvcGVydGllczoNCiAgICAgIGltYWdlOiB7IGdldF9wYXJhbTogaW1hZ2VfbmFtZV8xIH0NCiAgICAgIGZsYXZvcjogbTEuc21hbGwNCiAgICAgIG5ldHdvcmtzOg0KICAgICAgICAtIG5ldHdvcmsgOiB7IGdldF9wYXJhbSA6IG5ldHdvcmtfaWQgfQ0KICBteV9pbnN0YW5jZTI6DQogICAgdHlwZTogT1M6Ok5vdmE6OlNlcnZlcg0KICAgIHByb3BlcnRpZXM6DQogICAgICBpbWFnZTogeyBnZXRfcGFyYW06IGltYWdlX25hbWVfMiB9DQogICAgICBmbGF2b3I6IG0xLnRpbnkNCiAgICAgIG5ldHdvcmtzOg0KICAgICAgICAtIG5ldHdvcmsgOiB7IGdldF9wYXJhbSA6IG5ldHdvcmtfaWQgfQ";
573                         timeout = 0;
574                         artifactLabel = normalizeArtifactLabel(artifactName);
575                         break;
576                 }
577                 case SHELL_SCRIPT:
578                 default: {// dummy
579                         artifactName = generateUUIDforSufix() + "testArtifact.sh";
580                         payloadData = "dGVzdA==";
581                         updatedPayloadData = "YmVzYg==";
582                         artifactLabel = normalizeArtifactLabel(artifactName);
583                         break;
584                 }
585                 }
586                 artifactLabel = normalizeArtifactLabel("ci" + artifactName);
587                 
588                 ArtifactReqDetails artifactDetails = null;
589                 
590                 if (!updatedPayload){
591                 artifactDetails = new ArtifactReqDetails(artifactName, artifactType, artifactDescription, payloadData, artifactLabel);
592                 }
593                 else artifactDetails = new ArtifactReqDetails(artifactName, artifactType, artifactDescription,
594                                 updatedPayloadData, artifactLabel);
595                 
596                 artifactDetails.setArtifactGroupType(ArtifactGroupTypeEnum.DEPLOYMENT.getType());
597                 artifactDetails.setUrl(url);
598                 artifactDetails.setTimeout(timeout);
599                 artifactDetails.setArtifactDisplayName(artifactLabel);
600                 return artifactDetails;
601         }
602
603         private static String getDcaeArtifactName(ArtifactTypeEnum artifactTypeEnum, String artifactType) {
604                 String artifactName = null;
605                 switch (artifactTypeEnum) {
606                 case DCAE_INVENTORY_TOSCA: {
607                         artifactName = generateUUIDforSufix() + artifactType + "_toscaSampleArtifact.yml";
608                         break;
609                 }
610                 case DCAE_INVENTORY_JSON: {
611                         artifactName = generateUUIDforSufix() + artifactType + "_jsonSampleArtifact.json";
612                         break;
613                 }
614                 case DCAE_INVENTORY_POLICY: {
615                         artifactName = generateUUIDforSufix() + artifactType + "_emfSampleArtifact.emf";
616                         break;
617                 }
618                 case DCAE_INVENTORY_DOC: {
619                         artifactName = generateUUIDforSufix() + artifactType + "_docSampleArtifact.doc";
620                         break;
621                 }
622                 case DCAE_INVENTORY_BLUEPRINT: {
623                         artifactName = generateUUIDforSufix() + artifactType + "_bluePrintSampleArtifact.xml";
624                         break;
625                 }
626                 case DCAE_INVENTORY_EVENT: {
627                         artifactName = generateUUIDforSufix() + artifactType + "_eventSampleArtifact.xml";
628                         break;
629                 }
630                 }
631                 return artifactName;
632         }
633
634         // ---------------------Audit message------------------
635         public static ExpectedResourceAuditJavaObject getDefaultImportResourceAuditMsgSuccess() {
636
637                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
638                 expectedResourceAuditJavaObject.setAction(AuditingActionEnum.IMPORT_RESOURCE.getName());
639                 expectedResourceAuditJavaObject.setResourceName("defaultImportResourceName.yaml");
640                 expectedResourceAuditJavaObject.setResourceType("Resource");
641                 expectedResourceAuditJavaObject.setPrevVersion("");
642                 expectedResourceAuditJavaObject.setCurrVersion("0.1");
643                 expectedResourceAuditJavaObject.setModifierName(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER).getFullName());
644                 expectedResourceAuditJavaObject.setModifierUid(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER).getUserId());
645                 expectedResourceAuditJavaObject.setPrevState("");
646                 expectedResourceAuditJavaObject.setCurrState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.toString());
647                 expectedResourceAuditJavaObject.setStatus("201");
648                 expectedResourceAuditJavaObject.setDesc("OK");
649                 expectedResourceAuditJavaObject.setToscaNodeType("");
650                 return expectedResourceAuditJavaObject;
651
652         }
653
654         public static ExpectedResourceAuditJavaObject getDefaultImportResourceAuditMsgFailure(ErrorInfo errorInfo, List<String> variables) {
655
656                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
657                 expectedResourceAuditJavaObject.setAction(AuditingActionEnum.IMPORT_RESOURCE.getName());
658                 expectedResourceAuditJavaObject.setResourceName("");
659                 expectedResourceAuditJavaObject.setResourceType("Resource");
660                 expectedResourceAuditJavaObject.setPrevVersion("");
661                 expectedResourceAuditJavaObject.setCurrVersion("");
662                 expectedResourceAuditJavaObject.setModifierName(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER).getFullName());
663                 expectedResourceAuditJavaObject.setModifierUid(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER).getUserId());
664                 expectedResourceAuditJavaObject.setPrevState("");
665                 expectedResourceAuditJavaObject.setCurrState("");
666                 expectedResourceAuditJavaObject.setStatus(errorInfo.getCode().toString());
667                 expectedResourceAuditJavaObject.setDesc(AuditValidationUtils.buildAuditDescription(errorInfo, variables));
668                 expectedResourceAuditJavaObject.setToscaNodeType("");
669                 return expectedResourceAuditJavaObject;
670
671         }
672
673         public static ExpectedResourceAuditJavaObject getDefaultCertificationRequestAuditMsgSuccess() {
674
675                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
676                 expectedResourceAuditJavaObject.setAction(AuditingActionEnum.CERTIFICATION_REQUEST_RESOURCE.getName());
677                 expectedResourceAuditJavaObject.setResourceName("defaultResourceName");
678                 expectedResourceAuditJavaObject.setResourceType("Resource");
679                 expectedResourceAuditJavaObject.setPrevVersion("");
680                 expectedResourceAuditJavaObject.setCurrVersion("0.1");
681                 expectedResourceAuditJavaObject.setModifierName(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER).getFullName());
682                 expectedResourceAuditJavaObject.setModifierUid(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER).getUserId());
683                 expectedResourceAuditJavaObject.setPrevState("");
684                 expectedResourceAuditJavaObject.setCurrState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.toString());
685                 expectedResourceAuditJavaObject.setStatus("200");
686                 expectedResourceAuditJavaObject.setDesc("OK");
687                 expectedResourceAuditJavaObject.setComment("");
688                 return expectedResourceAuditJavaObject;
689
690         }
691
692         public static ExpectedResourceAuditJavaObject getDefaultCertificationRequestAuditMsgFailure(ErrorInfo errorInfo, List<String> variables) {
693
694                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
695                 expectedResourceAuditJavaObject.setAction(AuditingActionEnum.CERTIFICATION_REQUEST_RESOURCE.getName());
696                 expectedResourceAuditJavaObject.setResourceName("");
697                 expectedResourceAuditJavaObject.setResourceType("Resource");
698                 expectedResourceAuditJavaObject.setPrevVersion("0.1");
699                 expectedResourceAuditJavaObject.setCurrVersion("0.1");
700                 expectedResourceAuditJavaObject.setModifierName(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER).getFullName());
701                 expectedResourceAuditJavaObject.setModifierUid(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER).getUserId());
702                 expectedResourceAuditJavaObject.setPrevState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.toString());
703                 expectedResourceAuditJavaObject.setCurrState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.toString());
704                 expectedResourceAuditJavaObject.setStatus(errorInfo.getCode().toString());
705                 expectedResourceAuditJavaObject.setDesc(AuditValidationUtils.buildAuditDescription(errorInfo, variables));
706                 expectedResourceAuditJavaObject.setComment("");
707                 return expectedResourceAuditJavaObject;
708
709         }
710
711         public static ExpectedExternalAudit getDefaultExternalAuditObject(AssetTypeEnum assetType, AuditingActionEnum action, String query) {
712
713                 ExpectedExternalAudit expectedExternalAudit = new ExpectedExternalAudit();
714                 expectedExternalAudit.setACTION(action.getName());
715                 expectedExternalAudit.setCONSUMER_ID("ci");
716                 expectedExternalAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetType.getValue() + (query == null ? "" : query));
717                 expectedExternalAudit.setSTATUS("200");
718                 expectedExternalAudit.setDESC("OK");
719                 return expectedExternalAudit;
720
721         }
722
723         public static ExpectedExternalAudit getDefaultAssetListAudit(AssetTypeEnum assetType, AuditingActionEnum auditAction) {
724
725                 // ExpectedExternalAudit expectedAssetListAuditJavaObject = new
726                 // ExpectedExternalAudit();
727                 ExpectedExternalAudit expectedAssetListAuditJavaObject = getDefaultExternalAuditObject(assetType, auditAction, null);
728                 return expectedAssetListAuditJavaObject;
729
730         }
731
732         public static ExpectedExternalAudit getDefaultFilteredAssetListAudit(AssetTypeEnum assetType, String query) {
733
734                 // ExpectedExternalAudit expectedAssetListAuditJavaObject = new
735                 // ExpectedExternalAudit();
736                 ExpectedExternalAudit expectedAssetListAuditJavaObject = getDefaultExternalAuditObject(assetType, AuditingActionEnum.GET_FILTERED_ASSET_LIST, query);
737                 return expectedAssetListAuditJavaObject;
738
739         }
740
741         public static ExpectedExternalAudit getDefaultExternalArtifactAuditSuccess(AssetTypeEnum assetType, AuditingActionEnum action, ArtifactDefinition artifactDefinition, String componentUUID) {
742
743                 // ExpectedExternalAudit expectedExternalArtifactAudit = new
744                 // ExpectedExternalAudit();
745
746                 ExpectedExternalAudit expectedExternalArtifactAudit = getDefaultExternalAuditObject(assetType, action, null);
747                 expectedExternalArtifactAudit.setMODIFIER(AuditValidationUtils.getModifierString(artifactDefinition.getUpdaterFullName(), artifactDefinition.getUserIdLastUpdater()));
748                 expectedExternalArtifactAudit.setPREV_ARTIFACT_UUID("");
749                 expectedExternalArtifactAudit.setCURR_ARTIFACT_UUID(artifactDefinition.getArtifactUUID());
750                 expectedExternalArtifactAudit.setARTIFACT_DATA(AuditValidationUtils.buildArtifactDataAudit(artifactDefinition));
751                 expectedExternalArtifactAudit.setRESOURCE_URL(expectedExternalArtifactAudit.getRESOURCE_URL() + "/" + componentUUID + "/artifacts");
752                 return expectedExternalArtifactAudit;
753
754         }
755         
756         public static ExpectedExternalAudit getDefaultExternalArtifactAuditSuccess(AssetTypeEnum assetType, AuditingActionEnum action, ArtifactDefinition artifactDefinition, Component component) {
757
758                  //ExpectedExternalAudit expectedExternalArtifactAudit = new ExpectedExternalAudit();
759                 
760                 ExpectedExternalAudit expectedExternalArtifactAudit = getDefaultExternalAuditObject(assetType, action, null);
761                 expectedExternalArtifactAudit.setMODIFIER(AuditValidationUtils.getModifierString(artifactDefinition.getUpdaterFullName(), artifactDefinition.getUserIdLastUpdater()));
762                 expectedExternalArtifactAudit.setPREV_ARTIFACT_UUID("");
763                 expectedExternalArtifactAudit.setCURR_ARTIFACT_UUID(artifactDefinition.getArtifactUUID());
764                 expectedExternalArtifactAudit.setARTIFACT_DATA(AuditValidationUtils.buildArtifactDataAudit(artifactDefinition));
765                 expectedExternalArtifactAudit.setRESOURCE_URL(expectedExternalArtifactAudit.getRESOURCE_URL() + "/" + component.getUUID() + "/artifacts");
766                 expectedExternalArtifactAudit.setRESOURCE_NAME(component.getName());
767                 expectedExternalArtifactAudit.setRESOURCE_TYPE(component.getComponentType().getValue());
768                 return expectedExternalArtifactAudit;
769                 
770         }
771         
772         public static ExpectedResourceAuditJavaObject getDefaultCreateResourceExternalAPI(String resourceName) {
773
774                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
775                 expectedResourceAuditJavaObject.setAction(AuditingActionEnum.CREATE_RESOURCE_BY_API.getName());
776                 expectedResourceAuditJavaObject.setResourceName(resourceName);
777                 expectedResourceAuditJavaObject.setResourceType("Resource");
778                 expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
779                 expectedResourceAuditJavaObject.setRESOURCE_URL("/sdc/v1/catalog/resources");
780                 expectedResourceAuditJavaObject.setMODIFIER("");
781                 expectedResourceAuditJavaObject.setPrevVersion("");
782                 expectedResourceAuditJavaObject.setCurrVersion("0.1");
783                 expectedResourceAuditJavaObject.setPrevState("");
784                 expectedResourceAuditJavaObject.setCurrState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.toString());
785                 expectedResourceAuditJavaObject.setStatus("201");
786                 expectedResourceAuditJavaObject.setDesc("OK");
787                 
788                 return expectedResourceAuditJavaObject;
789                 
790                 
791         }
792         
793         public static ExpectedResourceAuditJavaObject getDefaultChangeAssetLifeCycleExternalAPI(Component resourceAssetStructure, User defaultUser, LifeCycleStatesEnum lifecycleStateEnum, AssetTypeEnum assetTypeEnum) {
794
795                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
796                 expectedResourceAuditJavaObject.setAction(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName());
797                 expectedResourceAuditJavaObject.setResourceName(resourceAssetStructure.getName());
798                 expectedResourceAuditJavaObject.setResourceType(assetTypeEnum.getCorrespondingComponent());
799                 expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
800                 expectedResourceAuditJavaObject.setRESOURCE_URL(String.format("/sdc/v1/catalog/%s/%s/lifecycleState/%s", assetTypeEnum.getValue().toLowerCase(), resourceAssetStructure.getUUID(), lifecycleStateEnum.getState()));
801                 expectedResourceAuditJavaObject.setMODIFIER(defaultUser.getFullName() + "(" + defaultUser.getUserId() + ")");
802                 expectedResourceAuditJavaObject.setPrevVersion("0.1");
803                 expectedResourceAuditJavaObject.setCurrVersion("0.1");
804                 expectedResourceAuditJavaObject.setPrevState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.toString());
805                 expectedResourceAuditJavaObject.setCurrState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN.toString());
806                 // TODO: Remove comment
807 //              expectedResourceAuditJavaObject.setINVARIANT_UUID(resourceAssetStructure.getInvariantUUID());
808                 // TODO: SERVICE_INSTANCE_ID
809                 expectedResourceAuditJavaObject.setStatus("201");
810                 expectedResourceAuditJavaObject.setDesc("OK");
811                 
812                 return expectedResourceAuditJavaObject;
813                 
814         }
815         
816         public static ExpectedResourceAuditJavaObject getDefaultInvalidChangeAssetLifeCycleExternalAPI(String assetUUID, User defaultUser, LifeCycleStatesEnum lifecycleStateEnum, AssetTypeEnum assetTypeEnum) {
817
818                 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
819                 expectedResourceAuditJavaObject.setAction(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName());
820                 expectedResourceAuditJavaObject.setResourceName("");
821                 expectedResourceAuditJavaObject.setResourceType(assetTypeEnum.getCorrespondingComponent());
822                 expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
823                 expectedResourceAuditJavaObject.setRESOURCE_URL(String.format("/sdc/v1/catalog/%s/%s/lifecycleState/%s", assetTypeEnum.getValue().toLowerCase(), assetUUID, lifecycleStateEnum.getState()));
824                 expectedResourceAuditJavaObject.setMODIFIER("");
825                 expectedResourceAuditJavaObject.setMODIFIER(defaultUser.getFullName() + "(" + defaultUser.getUserId() + ")");
826                 expectedResourceAuditJavaObject.setPrevVersion("");
827                 expectedResourceAuditJavaObject.setCurrVersion("");
828                 expectedResourceAuditJavaObject.setPrevState("");
829                 expectedResourceAuditJavaObject.setCurrState("");
830                 expectedResourceAuditJavaObject.setStatus("404");
831                 expectedResourceAuditJavaObject.setDesc("OK");
832                 
833                 return expectedResourceAuditJavaObject;
834                 
835         }
836
837         public static ExpectedExternalAudit getDefaultExternalArtifactAuditSuccess(AssetTypeEnum assetType, AuditingActionEnum action, ArtifactDefinition artifactDefinition, String componentUUID, String resourceInstanceName) {
838
839                 ExpectedExternalAudit expectedExternalArtifactAudit = getDefaultExternalArtifactAuditSuccess(assetType, action, artifactDefinition, componentUUID);
840                 expectedExternalArtifactAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetType.getValue() + "/" + componentUUID + "/resourceInstances/" + resourceInstanceName + "/artifacts");
841                 return expectedExternalArtifactAudit;
842         }
843
844         public static ExpectedExternalAudit getDefaultExternalArtifactAuditFailure(AssetTypeEnum assetType, AuditingActionEnum action, ArtifactDefinition artifactDefinition, String componentUUID, ErrorInfo errorInfo, List<String> variables) {
845
846                 // ExpectedExternalAudit expectedExternalArtifactAudit = new
847                 // ExpectedExternalAudit();
848
849                 ExpectedExternalAudit expectedExternalArtifactAudit = getDefaultExternalAuditObject(assetType, action, null);
850                 expectedExternalArtifactAudit.setMODIFIER(AuditValidationUtils.getModifierString(artifactDefinition.getUpdaterFullName(), artifactDefinition.getUserIdLastUpdater()));
851                 expectedExternalArtifactAudit.setPREV_ARTIFACT_UUID("");
852                 expectedExternalArtifactAudit.setCURR_ARTIFACT_UUID(artifactDefinition.getArtifactUUID());
853                 expectedExternalArtifactAudit.setARTIFACT_DATA(AuditValidationUtils.buildArtifactDataAudit(artifactDefinition));
854                 expectedExternalArtifactAudit.setRESOURCE_URL(expectedExternalArtifactAudit.getRESOURCE_URL() + "/" + componentUUID + "/artifacts");
855                 expectedExternalArtifactAudit.setSTATUS(errorInfo.getCode().toString());
856                 expectedExternalArtifactAudit.setDESC(AuditValidationUtils.buildAuditDescription(errorInfo, variables));
857                 return expectedExternalArtifactAudit;
858
859         }
860
861         public static ExpectedExternalAudit getDefaultExternalArtifactAuditFailure(AssetTypeEnum assetType, AuditingActionEnum action, ArtifactDefinition artifactDefinition, String componentUUID, ErrorInfo errorInfo, List<String> variables,
862                         String resourceInstanceName) {
863
864                 ExpectedExternalAudit expectedExternalArtifactAudit = getDefaultExternalArtifactAuditFailure(assetType, action, artifactDefinition, componentUUID, errorInfo, variables);
865                 expectedExternalArtifactAudit.setRESOURCE_URL("/sdc/v1/catalog/" + assetType.getValue() + "/" + componentUUID + "/resourceInstances/" + resourceInstanceName + "/artifacts");
866                 return expectedExternalArtifactAudit;
867         }
868
869         public static ExpectedExternalAudit getFilteredAssetListAuditCategoryNotFound(AssetTypeEnum assetType, String query, String category) {
870
871                 // ExpectedExternalAudit expectedAssetListAuditJavaObject = new
872                 // ExpectedExternalAudit();
873                 ExpectedExternalAudit expectedAssetListAuditJavaObject = getDefaultExternalAuditObject(assetType, AuditingActionEnum.GET_FILTERED_ASSET_LIST, query);
874                 expectedAssetListAuditJavaObject.setSTATUS("404");
875                 ErrorInfo errorInfo = null;
876                 try {
877                         errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name());
878                 } catch (FileNotFoundException e) {
879                         e.printStackTrace();
880                 }
881                 String desc = (errorInfo.getMessageId() + ": " + errorInfo.getMessage()).replace("%2", "category").replace("%3", category).replace("%1", "resource");
882                 expectedAssetListAuditJavaObject.setDESC(desc);
883
884                 return expectedAssetListAuditJavaObject;
885
886         }
887
888         public static ExpectedExternalAudit getDefaultAssetMetadataAudit(AssetTypeEnum assetType, Component component) {
889
890                 ExpectedExternalAudit expectedAssetListAuditJavaObject = new ExpectedExternalAudit();
891                 expectedAssetListAuditJavaObject = getDefaultExternalAuditObject(assetType, AuditingActionEnum.GET_ASSET_METADATA, null);
892                 expectedAssetListAuditJavaObject.setRESOURCE_URL(expectedAssetListAuditJavaObject.getRESOURCE_URL() + "/" + component.getUUID() + "/metadata");
893                 expectedAssetListAuditJavaObject.setRESOURCE_NAME(component.getName());
894                 expectedAssetListAuditJavaObject.setRESOURCE_TYPE(component.getComponentType().getValue());
895                 expectedAssetListAuditJavaObject.setSERVICE_INSTANCE_ID(component.getUUID());
896                 return expectedAssetListAuditJavaObject;
897
898         }
899
900         public static ExpectedExternalAudit getDefaultAssetMetadataAuditFailure(AssetTypeEnum assetType, String serviceUuid, String resourceType) {
901
902                 ExpectedExternalAudit expectedAssetListAuditJavaObject = new ExpectedExternalAudit();
903                 expectedAssetListAuditJavaObject = getDefaultExternalAuditObject(assetType, AuditingActionEnum.GET_ASSET_METADATA, null);
904                 expectedAssetListAuditJavaObject.setSTATUS("404");
905                 expectedAssetListAuditJavaObject.setDESC("OK");
906                 expectedAssetListAuditJavaObject.setRESOURCE_URL(expectedAssetListAuditJavaObject.getRESOURCE_URL() + "/" + serviceUuid + "/metadata");
907                 expectedAssetListAuditJavaObject.setRESOURCE_TYPE(resourceType);
908                 expectedAssetListAuditJavaObject.setSERVICE_INSTANCE_ID(serviceUuid);
909                 return expectedAssetListAuditJavaObject;
910
911         }
912
913         // Category/Subcategory/Group
914         public static CategoryDefinition getDefaultCategory() {
915                 CategoryDefinition productCategoryDefinition = new CategoryDefinition();
916                 productCategoryDefinition.setName("CiCateg" + generateUUIDforSufix());
917                 return productCategoryDefinition;
918         }
919
920         public static SubCategoryDefinition getDefaultSubCategory() {
921                 SubCategoryDefinition productSubCategoryDefinition = new SubCategoryDefinition();
922                 productSubCategoryDefinition.setName("CiSubCateg" + generateUUIDforSufix());
923                 return productSubCategoryDefinition;
924         }
925
926         public static GroupingDefinition getDefaultGroup() {
927                 GroupingDefinition productGroupDefinition = new GroupingDefinition();
928                 productGroupDefinition.setName("CiGrouping1" + generateUUIDforSufix());
929                 return productGroupDefinition;
930         }
931
932         // Product
933
934         public static ProductReqDetails getDefaultProduct() {
935                 return createDefaultProductReqDetails(CI_PRODUCT, null);
936         }
937
938         public static ProductReqDetails getDefaultProduct(String name) {
939                 return createDefaultProductReqDetails(name, null);
940         }
941
942         public static ProductReqDetails getDefaultProduct(CategoryDefinition category) {
943                 List<CategoryDefinition> categories = new ArrayList<>();
944                 categories.add(category);
945                 return createDefaultProductReqDetails(CI_PRODUCT, categories);
946         }
947
948         public static ProductReqDetails getDefaultProduct(String name, CategoryDefinition category) {
949                 List<CategoryDefinition> categories = new ArrayList<>();
950                 categories.add(category);
951                 return createDefaultProductReqDetails(name, categories);
952         }
953
954         public static ProductReqDetails getDefaultProduct(List<CategoryDefinition> categories) {
955                 return createDefaultProductReqDetails(CI_PRODUCT, categories);
956         }
957
958         public static ProductReqDetails getDefaultProduct(String name, List<CategoryDefinition> categories) {
959                 return createDefaultProductReqDetails(name, categories);
960         }
961
962         private static ProductReqDetails createDefaultProductReqDetails(String productName, List<CategoryDefinition> categories) {
963                 ProductReqDetails product = new ProductReqDetails(productName);
964                 productName = (productName + generateUUIDforSufix());
965                 product.setName(productName);
966                 ArrayList<String> tags = new ArrayList<>();
967                 tags.add(productName);
968                 product.setTags(tags);
969                 product.setProjectCode("12345");
970                 product.setIcon("myIcon");
971                 ArrayList<String> contacts = new ArrayList<>();
972                 // contacts.add(ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_STRATEGIST1).getUserId());
973                 // contacts.add(ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_STRATEGIST2).getUserId());
974                 contacts.add(ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_MANAGER1).getUserId());
975                 // contacts.add(ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_MANAGER2).getUserId());
976                 product.setContacts(contacts);
977                 product.setContactId(UserRoleEnum.PRODUCT_MANAGER1.getUserId());
978                 product.setCategories(categories);
979                 String fullName = "This is my full name: " + productName;
980                 product.setFullName(fullName);
981                 String description = "This is product description";
982                 product.setDescription(description);
983                 return product;
984         }
985
986         public static RequirementCapabilityRelDef getReqCapRelation(String fromCompInstId, String toCompInstId, String reqOwnerId, String capOwnerId, String capType, String reqCapName, List<CapabilityDefinition> capList,
987                         List<RequirementDefinition> reqList) {
988                 RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef();
989                 requirementDef.setFromNode(fromCompInstId);
990                 requirementDef.setToNode(toCompInstId);
991                 RelationshipInfo relationInfo = new RelationshipInfo();
992                 relationInfo.setRequirementOwnerId(reqOwnerId);
993                 relationInfo.setCapabilityOwnerId(capOwnerId);
994                 relationInfo.setRequirement(reqCapName);
995                 RelationshipImpl relationImpl = new RelationshipImpl();
996                 relationImpl.setType(capType);
997                 relationInfo.setRelationships(relationImpl);
998                 relationInfo.setCapabilityUid(capList.get(0).getUniqueId());
999                 relationInfo.setRequirementUid(reqList.get(0).getUniqueId());
1000                 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
1001                 CapabilityRequirementRelationship relationship = new CapabilityRequirementRelationship();
1002                 relationship.setRelation(relationInfo);
1003                 relationships.add(relationship);
1004                 requirementDef.setRelationships(relationships);
1005                 return requirementDef;
1006         }
1007
1008         public static String generateUUIDforSufix() {
1009
1010                 String uniqueSufix = UUID.randomUUID().toString();
1011                 String[] split = uniqueSufix.split("-");
1012                 return uniqueSufix = split[4];
1013         }
1014
1015         private static String normalizeArtifactLabel(String label) {
1016
1017                 label = label.substring(0, label.indexOf("."));
1018                 String normalizedLabel = ValidationUtils.normalizeArtifactLabel(label);
1019                 return normalizedLabel.substring(0, Math.min(25, normalizedLabel.length()));
1020
1021         }
1022
1023 }