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