2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.externalApis;
23 import org.junit.Rule;
24 import org.junit.rules.TestName;
25 import org.openecomp.sdc.be.dao.api.ActionStatus;
26 import org.openecomp.sdc.be.datatypes.enums.AssetTypeEnum;
27 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
28 import org.openecomp.sdc.be.model.DistributionStatusEnum;
29 import org.openecomp.sdc.be.model.Resource;
30 import org.openecomp.sdc.be.model.Service;
31 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
32 import org.openecomp.sdc.ci.tests.datatypes.*;
33 import org.openecomp.sdc.ci.tests.datatypes.enums.*;
34 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
35 import org.openecomp.sdc.ci.tests.utils.Utils;
36 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
37 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
38 import org.openecomp.sdc.ci.tests.utils.rest.*;
39 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
40 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
41 import org.slf4j.Logger;
42 import org.slf4j.LoggerFactory;
43 import org.testng.annotations.Test;
45 import java.util.ArrayList;
46 import java.util.Arrays;
47 import java.util.List;
49 import static org.testng.AssertJUnit.assertEquals;
50 import static org.testng.AssertJUnit.assertNotNull;
52 public class GetFilteredAssetServlet extends ComponentBaseTest {
54 private static Logger log = LoggerFactory.getLogger(GetAssetServlet.class.getName());
55 protected final static String categoryFilterKey = "category";
56 protected final static String subCategoryFilterKey = "subCategory";
57 protected final static String distributionStatusFilterKey = "distributionStatus";
58 protected final static String serviceKey = "service";
59 protected final static String resourceKey = "resource";
60 protected final static String resourceType = "resourceType";
61 protected final static String validFilterParameters = "[" + resourceType + ", "+ subCategoryFilterKey + ", " + categoryFilterKey + "]";
64 public static TestName name = new TestName();
66 public GetFilteredAssetServlet() {
67 super(name, GetFilteredAssetServlet.class.getName());
71 // public void setup() throws Exception {
72 // AtomicOperationUtils.createDefaultConsumer(true);
78 @Test // (enabled = false)
79 public void getResourceAssetBySpecifiedCategory() throws Exception {
80 String[] filter = { categoryFilterKey + "=" + ResourceCategoryEnum.GENERIC_ABSTRACT.getCategory() };
81 List<String> expectedAssetNamesList = new ArrayList<>();
83 Resource resource1 = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.COMPUTE, ResourceCategoryEnum.GENERIC_ABSTRACT, UserRoleEnum.DESIGNER, true).left().value();
84 expectedAssetNamesList.add(resource1.getName());
85 Resource resource2 = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.DATABASE, ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, UserRoleEnum.DESIGNER, true).left().value();
86 expectedAssetNamesList.add(resource2.getName());
87 Resource resource3 = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.COMPUTE, ResourceCategoryEnum.NETWORK_CONNECTIVITY_CON_POINT, UserRoleEnum.DESIGNER, true).left().value();
89 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.RESOURCES, filter);
90 BaseRestUtils.checkSuccess(assetResponse);
92 List<ResourceAssetStructure> resourceAssetList = AssetRestUtils.getResourceAssetList(assetResponse);
93 List<String> getActualAssetNamesList = AssetRestUtils.getResourceNamesList(resourceAssetList);
94 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
96 /*// Validate audit message
97 validateSuccessAudit(filter, AssetTypeEnum.RESOURCES);*/
101 // 2 resources has the same category and different subcategory
102 @Test // (enabled = false)
103 public void getResourceAssetBySpecifiedCategoryAndSubCategory() throws Exception {
104 String[] filter = { categoryFilterKey + "=" + ResourceCategoryEnum.GENERIC_ABSTRACT.getCategory(), subCategoryFilterKey + "=" + ResourceCategoryEnum.GENERIC_ABSTRACT.getSubCategory() };
105 // String[] filter2 = {categoryFilterKey + "=" +
106 // ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS.getCategory(),
107 // subCategoryFilterKey + "=" +
108 // ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS.getSubCategory()};
109 List<String> expectedAssetNamesList = new ArrayList<>();
111 Resource resource1 = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.COMPUTE, ResourceCategoryEnum.GENERIC_ABSTRACT, UserRoleEnum.DESIGNER, true).left().value();
112 expectedAssetNamesList.add(resource1.getName());
113 Resource resource2 = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.DATABASE, ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, UserRoleEnum.DESIGNER, true).left().value();
115 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.RESOURCES, filter);
116 BaseRestUtils.checkSuccess(assetResponse);
118 List<ServiceAssetStructure> resourceAssetList = AssetRestUtils.getServiceAssetList(assetResponse);
119 List<String> getActualAssetNamesList = AssetRestUtils.getServiceNamesList(resourceAssetList);
120 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
122 /*// Validate audit message
123 validateSuccessAudit(filter, AssetTypeEnum.RESOURCES);*/
126 @Test // (enabled = false)
127 public void getResourceAssetBySpecifiedSubCategoryAndCategory() throws Exception {
128 String[] filter = { subCategoryFilterKey + "=" + ResourceCategoryEnum.GENERIC_DATABASE.getSubCategory(), categoryFilterKey + "=" + ResourceCategoryEnum.GENERIC_DATABASE.getCategory(), };
129 List<String> expectedAssetNamesList = new ArrayList<>();
131 Resource resource1 = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.COMPUTE, ResourceCategoryEnum.GENERIC_ABSTRACT, UserRoleEnum.DESIGNER, true).left().value();
132 Resource resource2 = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.DATABASE, ResourceCategoryEnum.GENERIC_DATABASE, UserRoleEnum.DESIGNER, true).left().value();
133 expectedAssetNamesList.add(resource2.getName());
135 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.RESOURCES, filter);
136 BaseRestUtils.checkSuccess(assetResponse);
138 List<ServiceAssetStructure> resourceAssetList = AssetRestUtils.getServiceAssetList(assetResponse);
139 List<String> getActualAssetNamesList = AssetRestUtils.getServiceNamesList(resourceAssetList);
140 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
142 /*// Validate audit message
143 validateSuccessAudit(filter, AssetTypeEnum.RESOURCES);*/
147 @Test // (enabled = false)
148 public void getResourceAssetCategoryNotExists() throws Exception {
149 String[] filter = { categoryFilterKey + "=" + "NotExistingCategory" };
151 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.RESOURCES, filter);
152 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name());
154 assertNotNull("check response object is not null after create resouce", assetResponse);
155 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
156 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
158 List<String> variables = Arrays.asList(resourceKey, categoryFilterKey, "NotExistingCategory");
159 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name(), variables, assetResponse.getResponse());
161 /*// Validate audit message
162 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.RESOURCES)*/;
165 @Test // (enabled = false)
166 public void getResourceAssetSubCategoryNotExists() throws Exception {
167 String[] filter = { categoryFilterKey + "=" + ResourceCategoryEnum.GENERIC_ABSTRACT.getCategory(), subCategoryFilterKey + "=" + "NotExistingSubCategory" };
169 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.RESOURCES, filter);
170 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_SUB_CATEGORY_NOT_FOUND_FOR_CATEGORY.name());
172 assertNotNull("check response object is not null after create resouce", assetResponse);
173 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
174 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
176 List<String> variables = Arrays.asList("Resource", "NotExistingSubCategory", ResourceCategoryEnum.GENERIC_ABSTRACT.getCategory());
177 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.COMPONENT_SUB_CATEGORY_NOT_FOUND_FOR_CATEGORY.name(), variables, assetResponse.getResponse());
179 /*// Validate audit message
180 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.RESOURCES);*/
183 @Test // (enabled = false)
184 public void getResourceAssetCategoryNotExistsSubCategoryExists() throws Exception {
185 String[] filter = { subCategoryFilterKey + "=" + ResourceCategoryEnum.NETWORK_L2_3_GETEWAY.getSubCategory(), categoryFilterKey + "=" + "NotExistingCategory" };
187 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.RESOURCES, filter);
188 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name());
190 assertNotNull("check response object is not null after create resouce", assetResponse);
191 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
192 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
194 List<String> variables = Arrays.asList(resourceKey, categoryFilterKey, "NotExistingCategory");
195 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name(), variables, assetResponse.getResponse());
197 /*// Validate audit message
198 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.RESOURCES);*/
201 @Test // (enabled = false)
202 public void getResourceAssetInvalidFilterKey() throws Exception {
203 String[] filter = { subCategoryFilterKey + "1=" + ResourceCategoryEnum.NETWORK_L2_3_GETEWAY.getSubCategory(), categoryFilterKey + "=" + "NotExistingCategory" };
205 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.RESOURCES, filter);
206 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.INVALID_FILTER_KEY.name());
208 assertNotNull("check response object is not null after create resouce", assetResponse);
209 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
210 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
212 List<String> variables = Arrays.asList(subCategoryFilterKey + "1", validFilterParameters);
213 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.INVALID_FILTER_KEY.name(), variables, assetResponse.getResponse());
215 /*// Validate audit message
216 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.RESOURCES);*/
219 // ---------------------------------------------------------------------------------------------------------
222 @Test // (enabled = false)
223 public void getServiceAssetBySpecifiedCategory() throws Exception {
224 String[] filter = { categoryFilterKey + "=" + ServiceCategoriesEnum.MOBILITY.getValue() };
225 List<String> expectedAssetNamesList = new ArrayList<>();
227 Service service1 = AtomicOperationUtils.createServiceByCategory(ServiceCategoriesEnum.MOBILITY, UserRoleEnum.DESIGNER, true).left().value();
228 expectedAssetNamesList.add(service1.getName());
230 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES, filter);
231 BaseRestUtils.checkSuccess(assetResponse);
233 List<ServiceAssetStructure> serviceAssetList = AssetRestUtils.getServiceAssetList(assetResponse);
234 List<String> getActualAssetNamesList = AssetRestUtils.getServiceNamesList(serviceAssetList);
235 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
237 /*// Validate audit message
238 validateSuccessAudit(filter, AssetTypeEnum.SERVICES);*/
241 @Test // (enabled = false)
242 public void getServiceAssetBySpecifiedCategoryAndDistributionStatus() throws Exception {
243 String[] filter = { categoryFilterKey + "=" + ServiceCategoriesEnum.MOBILITY.getValue(), distributionStatusFilterKey + "=" + DistributionStatusEnum.DISTRIBUTION_NOT_APPROVED };
244 List<String> expectedAssetNamesList = new ArrayList<>();
245 ArtifactReqDetails artifactDetails = ElementFactory.getArtifactByType(ArtifactTypeEnum.OTHER, ArtifactTypeEnum.OTHER, true);
247 Service service1 = AtomicOperationUtils.createServiceByCategory(ServiceCategoriesEnum.MOBILITY, UserRoleEnum.DESIGNER, true).left().value();
248 expectedAssetNamesList.add(service1.getName());
249 Service service2 = AtomicOperationUtils.createServiceByCategory(ServiceCategoriesEnum.MOBILITY, UserRoleEnum.DESIGNER, true).left().value();
250 RestResponse addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service2.getUniqueId());
251 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
252 service2 = (Service) AtomicOperationUtils.changeComponentState(service2, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
253 expectedAssetNamesList.add(service2.getName());
255 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES, filter);
256 BaseRestUtils.checkSuccess(assetResponse);
258 List<ServiceAssetStructure> serviceAssetList = AssetRestUtils.getServiceAssetList(assetResponse);
259 List<String> getActualAssetNamesList = AssetRestUtils.getServiceNamesList(serviceAssetList);
260 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
262 /*// Validate audit message
263 validateSuccessAudit(filter, AssetTypeEnum.SERVICES);*/
266 @Test // (enabled = false)
267 public void getServiceAssetByDistributionStatus() throws Exception {
268 String[] filter = { distributionStatusFilterKey + "=" + DistributionStatusEnum.DISTRIBUTION_NOT_APPROVED };
269 List<String> expectedAssetNamesList = new ArrayList<>();
270 ArtifactReqDetails artifactDetails = ElementFactory.getArtifactByType(ArtifactTypeEnum.OTHER, ArtifactTypeEnum.OTHER, true);
272 Service service1 = AtomicOperationUtils.createServiceByCategory(ServiceCategoriesEnum.MOBILITY, UserRoleEnum.DESIGNER, true).left().value();
273 expectedAssetNamesList.add(service1.getName());
274 Service service2 = AtomicOperationUtils.createServiceByCategory(ServiceCategoriesEnum.MOBILITY, UserRoleEnum.DESIGNER, true).left().value();
275 RestResponse addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service2.getUniqueId());
276 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
277 service2 = (Service) AtomicOperationUtils.changeComponentState(service2, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
278 ServiceRestUtils.approveServiceDistribution(service2.getUniqueId(), UserRoleEnum.GOVERNOR.getUserId());
280 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES, filter);
281 BaseRestUtils.checkSuccess(assetResponse);
283 List<ServiceAssetStructure> serviceAssetList = AssetRestUtils.getServiceAssetList(assetResponse);
284 List<String> getActualAssetNamesList = AssetRestUtils.getServiceNamesList(serviceAssetList);
285 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
287 /*// Validate audit message
288 validateSuccessAudit(filter, AssetTypeEnum.SERVICES);*/
292 @Test // (enabled = false)
293 public void getServiceAssetCategoryNotExists() throws Exception {
294 String[] filter = { categoryFilterKey + "=" + "NotExistingCategory" };
296 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES, filter);
297 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name());
299 assertNotNull("check response object is not null after create resouce", assetResponse);
300 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
301 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
303 List<String> variables = Arrays.asList(serviceKey, categoryFilterKey, "NotExistingCategory");
304 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name(), variables, assetResponse.getResponse());
306 /*// Validate audit message
307 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.SERVICES);*/
310 @Test // (enabled = false)
311 public void getServiceAssetInvalidDistributionStatus() throws Exception {
312 String[] filter = { distributionStatusFilterKey + "=" + "NotExistingDistributionStatus" };
313 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES, filter);
314 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name());
316 assertNotNull("check response object is not null after create resouce", assetResponse);
317 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
318 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
320 List<String> variables = Arrays.asList(serviceKey, distributionStatusFilterKey, "NotExistingDistributionStatus");
321 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name(), variables, assetResponse.getResponse());
323 /*// Validate audit message
324 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.SERVICES);*/
327 @Test // (enabled = false)
328 public void getServiceAssetCategoryExitsDistributionStatusInvalid() throws Exception {
329 String[] filter = { categoryFilterKey + "=" + ServiceCategoriesEnum.MOBILITY.getValue(), distributionStatusFilterKey + "=" + "NotExistingDistributionStatus" };
331 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES, filter);
332 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name());
334 assertNotNull("check response object is not null after create resouce", assetResponse);
335 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
336 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
338 List<String> variables = Arrays.asList(serviceKey, distributionStatusFilterKey, "NotExistingDistributionStatus");
339 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name(), variables, assetResponse.getResponse());
341 /*// Validate audit message
342 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.SERVICES);*/
345 @Test // (enabled = false)
346 public void getServiceAssetCategoryNotExistsDistributionStatus() throws Exception {
347 String[] filter = { distributionStatusFilterKey + "=" + DistributionStatusEnum.DISTRIBUTION_NOT_APPROVED, categoryFilterKey + "=" + "NotExistingCategory" };
349 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES, filter);
350 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name());
352 assertNotNull("check response object is not null after create resouce", assetResponse);
353 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
354 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
356 List<String> variables = Arrays.asList(serviceKey, categoryFilterKey, "NotExistingCategory");
357 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.COMPONENT_CATEGORY_NOT_FOUND.name(), variables, assetResponse.getResponse());
359 /*// Validate audit message
360 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.SERVICES);*/
363 @Test // (enabled = false)
364 public void getServiceAssetInvalidFilterKey() throws Exception {
365 String[] filter = { distributionStatusFilterKey + "1=" + DistributionStatusEnum.DISTRIBUTION_NOT_APPROVED, categoryFilterKey + "=" + ServiceCategoriesEnum.MOBILITY.getValue() };
367 RestResponse assetResponse = AssetRestUtils.getComponentListByAssetType(true, AssetTypeEnum.SERVICES, filter);
368 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.INVALID_FILTER_KEY.name());
370 assertNotNull("check response object is not null after create resouce", assetResponse);
371 assertNotNull("check error code exists in response after create resource", assetResponse.getErrorCode());
372 assertEquals("Check response code after create resource", errorInfo.getCode(), assetResponse.getErrorCode());
374 List<String> variables = Arrays.asList(distributionStatusFilterKey + "1", "[" + categoryFilterKey + ", " + distributionStatusFilterKey + "]");
375 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.INVALID_FILTER_KEY.name(), variables, assetResponse.getResponse());
377 /*// Validate audit message
378 validateFailureAudit(filter, errorInfo, variables, AssetTypeEnum.SERVICES);*/
383 public void getFilteredResourceAssetCategoryNotFound() throws Exception {
385 String query = "category=Application%20L3%2B";
386 RestResponse assetResponse = AssetRestUtils.getFilteredComponentList(AssetTypeEnum.RESOURCES, query);
387 BaseRestUtils.checkErrorResponse(assetResponse, ActionStatus.COMPONENT_CATEGORY_NOT_FOUND, "resource", "category", "Application L3+");
389 /*// Validate audit message
390 ExpectedExternalAudit expectedAssetListAudit = ElementFactory.getFilteredAssetListAuditCategoryNotFound(AssetTypeEnum.RESOURCES, "?" + query, "Application L3+");
391 Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
392 body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedAssetListAudit.getRESOURCE_URL());
393 AuditValidationUtils.validateExternalAudit(expectedAssetListAudit, AuditingActionEnum.GET_FILTERED_ASSET_LIST.getName(), body);*/
398 public void getFilteredResourceAssetSuccess() throws Exception {
400 List<String> expectedAssetNamesList = new ArrayList<>();
402 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource(ResourceCategoryEnum.APPLICATION_L4_APP_SERVER);
403 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
404 Resource resource = AtomicOperationUtils.createResourceByResourceDetails(resourceDetails, UserRoleEnum.DESIGNER, true).left().value();
405 expectedAssetNamesList.add(resource.getName());
407 resourceDetails = ElementFactory.getDefaultResource(ResourceCategoryEnum.APPLICATION_L4_BORDER);
408 resourceDetails.setResourceType(ResourceTypeEnum.VFC.name());
409 resource = AtomicOperationUtils.createResourceByResourceDetails(resourceDetails, UserRoleEnum.DESIGNER, true).left().value();
410 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
411 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
412 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
413 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
415 resourceDetails = ElementFactory.getDefaultResource(ResourceCategoryEnum.GENERIC_INFRASTRUCTURE);
416 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
417 resource = AtomicOperationUtils.createResourceByResourceDetails(resourceDetails, UserRoleEnum.DESIGNER, true).left().value();
418 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
419 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
420 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
422 resourceDetails = ElementFactory.getDefaultResource(ResourceCategoryEnum.APPLICATION_L4_FIREWALL);
423 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
424 resource = AtomicOperationUtils.createResourceByResourceDetails(resourceDetails, UserRoleEnum.DESIGNER, true).left().value();
425 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
426 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
427 resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
428 expectedAssetNamesList.add(resource.getName());
430 log.debug("4 resources created");
431 String query = "category=Application%20L4%2B";
432 RestResponse assetResponse = AssetRestUtils.getFilteredComponentList(AssetTypeEnum.RESOURCES, query);
433 BaseRestUtils.checkSuccess(assetResponse);
435 List<ResourceAssetStructure> resourceAssetList = AssetRestUtils.getResourceAssetList(assetResponse);
436 List<String> getActualAssetNamesList = AssetRestUtils.getResourceNamesList(resourceAssetList);
437 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
439 // Andrey L. This condition can not be checked in case resources list has two or ore different resource types
440 // AssetRestUtils.checkResourceTypeInObjectList(resourceAssetList, ResourceTypeEnum.VF);
442 /*// Validate audit message
443 validateFilteredAudit(query, AssetTypeEnum.RESOURCES);*/
448 public void getFilteredServiceAssetInformationalSuccess() throws Exception {
450 List<String> expectedAssetNamesList = new ArrayList<>();
451 ArtifactReqDetails artifactDetails = ElementFactory.getArtifactByType(ArtifactTypeEnum.OTHER, ArtifactTypeEnum.OTHER, true);
452 artifactDetails.setArtifactGroupType(ArtifactGroupTypeEnum.INFORMATIONAL.getType());
454 ServiceReqDetails serviceDetails = ElementFactory.getDefaultService();
455 Service service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
457 serviceDetails = ElementFactory.getDefaultService();
458 service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
459 RestResponse addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service.getUniqueId());
460 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
461 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
463 ServiceReqDetails certifyService = new ServiceReqDetails(service);
464 LifecycleRestUtils.changeDistributionStatus(certifyService, certifyService.getVersion(), ElementFactory.getDefaultUser(UserRoleEnum.GOVERNOR), null, DistributionStatusEnum.DISTRIBUTION_APPROVED);
465 AtomicOperationUtils.distributeService(service, false);
466 expectedAssetNamesList.add(service.getName());
468 serviceDetails = ElementFactory.getDefaultService();
469 service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
470 addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service.getUniqueId());
471 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
472 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
473 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
474 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
475 certifyService = new ServiceReqDetails(service);
476 LifecycleRestUtils.changeDistributionStatus(certifyService, certifyService.getVersion(), ElementFactory.getDefaultUser(UserRoleEnum.GOVERNOR), null, DistributionStatusEnum.DISTRIBUTION_APPROVED);
477 AtomicOperationUtils.distributeService(service, false);
478 expectedAssetNamesList.add(service.getName());
480 serviceDetails = ElementFactory.getDefaultService();
481 service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
482 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
483 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
484 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
485 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
486 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
488 serviceDetails = ElementFactory.getDefaultService();
489 service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
490 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
491 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
492 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
493 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
495 String query = "distributionStatus=Distributed";
496 RestResponse assetResponse = AssetRestUtils.getFilteredComponentList(AssetTypeEnum.SERVICES, query);
497 BaseRestUtils.checkSuccess(assetResponse);
499 List<ServiceAssetStructure> resourceAssetList = AssetRestUtils.getServiceAssetList(assetResponse);
500 List<String> getActualAssetNamesList = AssetRestUtils.getServiceNamesList(resourceAssetList);
501 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
503 /*// Validate audit message
504 validateFilteredAudit(query, AssetTypeEnum.SERVICES);*/
509 public void getFilteredServiceAssetDeploymentSuccess() throws Exception {
511 List<String> expectedAssetNamesList = new ArrayList<>();
512 ArtifactReqDetails artifactDetails = ElementFactory.getArtifactByType(ArtifactTypeEnum.OTHER, ArtifactTypeEnum.OTHER, true);
514 ServiceReqDetails serviceDetails = ElementFactory.getDefaultService();
515 Service service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
517 serviceDetails = ElementFactory.getDefaultService();
518 service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
519 RestResponse addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service.getUniqueId());
520 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
521 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
523 ServiceReqDetails certifyService = new ServiceReqDetails(service);
524 LifecycleRestUtils.changeDistributionStatus(certifyService, certifyService.getVersion(), ElementFactory.getDefaultUser(UserRoleEnum.GOVERNOR), null, DistributionStatusEnum.DISTRIBUTION_APPROVED);
525 AtomicOperationUtils.distributeService(service, false);
526 expectedAssetNamesList.add(service.getName());
528 serviceDetails = ElementFactory.getDefaultService();
529 service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
530 addInformationalArtifactToService = ArtifactRestUtils.addInformationalArtifactToService(artifactDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), service.getUniqueId());
531 BaseRestUtils.checkSuccess(addInformationalArtifactToService);
532 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
533 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
534 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
535 certifyService = new ServiceReqDetails(service);
536 LifecycleRestUtils.changeDistributionStatus(certifyService, certifyService.getVersion(), ElementFactory.getDefaultUser(UserRoleEnum.GOVERNOR), null, DistributionStatusEnum.DISTRIBUTION_APPROVED);
537 AtomicOperationUtils.distributeService(service, false);
538 expectedAssetNamesList.add(service.getName());
540 serviceDetails = ElementFactory.getDefaultService();
541 service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
542 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
543 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
544 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
545 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
546 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
548 serviceDetails = ElementFactory.getDefaultService();
549 service = AtomicOperationUtils.createCustomService(serviceDetails, UserRoleEnum.DESIGNER, true).left().value();
550 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
551 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
552 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
553 service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
555 String query = "distributionStatus=Distributed";
556 RestResponse assetResponse = AssetRestUtils.getFilteredComponentList(AssetTypeEnum.SERVICES, query);
557 BaseRestUtils.checkSuccess(assetResponse);
559 List<ServiceAssetStructure> resourceAssetList = AssetRestUtils.getServiceAssetList(assetResponse);
560 List<String> getActualAssetNamesList = AssetRestUtils.getServiceNamesList(resourceAssetList);
561 Utils.compareArrayLists(getActualAssetNamesList, expectedAssetNamesList, "Element");
563 /*// Validate audit message
564 validateFilteredAudit(query, AssetTypeEnum.SERVICES);*/
567 /*private void validateSuccessAudit(String[] filter, AssetTypeEnum assetType) throws Exception {
568 ExpectedExternalAudit expectedAssetListAudit = ElementFactory.getDefaultAssetListAudit(assetType, AuditingActionEnum.GET_FILTERED_ASSET_LIST);
569 expectedAssetListAudit.setRESOURCE_URL(AssetRestUtils.buildUrlWithFilter(expectedAssetListAudit.getRESOURCE_URL(), filter));
570 Map<AuditingFieldsKeysEnum, String> body = new HashMap<>();
571 body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedAssetListAudit.getRESOURCE_URL());
572 AuditValidationUtils.validateExternalAudit(expectedAssetListAudit, AuditingActionEnum.GET_FILTERED_ASSET_LIST.getName(), body);
575 private void validateFilteredAudit(String query, AssetTypeEnum assetType) throws Exception {
576 ExpectedExternalAudit expectedAssetListAudit = ElementFactory.getDefaultFilteredAssetListAudit(assetType, "?" + query);
577 Map<AuditingFieldsKeysEnum, String> body = new HashMap<>();
578 body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedAssetListAudit.getRESOURCE_URL());
579 AuditValidationUtils.validateExternalAudit(expectedAssetListAudit, AuditingActionEnum.GET_FILTERED_ASSET_LIST.getName(), body);
582 private void validateFailureAudit(String[] filter, ErrorInfo errorInfo, List<String> variables, AssetTypeEnum assetType) throws Exception {
583 ExpectedExternalAudit expectedAssetListAudit = ElementFactory.getDefaultAssetListAudit(assetType, AuditingActionEnum.GET_FILTERED_ASSET_LIST);
584 expectedAssetListAudit.setRESOURCE_URL(AssetRestUtils.buildUrlWithFilter(expectedAssetListAudit.getRESOURCE_URL(), filter));
585 expectedAssetListAudit.setSTATUS(errorInfo.getCode().toString());
586 expectedAssetListAudit.setDESC(AuditValidationUtils.buildAuditDescription(errorInfo, variables));
587 Map<AuditingFieldsKeysEnum, String> body = new HashMap<>();
588 body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_URL, expectedAssetListAudit.getRESOURCE_URL());
589 AuditValidationUtils.validateExternalAudit(expectedAssetListAudit, AuditingActionEnum.GET_FILTERED_ASSET_LIST.getName(), body);