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