summaryrefslogtreecommitdiffstats
path: root/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/externalapi/LifeCycleExternalAPI.java
diff options
context:
space:
mode:
Diffstat (limited to 'asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/externalapi/LifeCycleExternalAPI.java')
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/externalapi/LifeCycleExternalAPI.java270
1 files changed, 270 insertions, 0 deletions
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/externalapi/LifeCycleExternalAPI.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/externalapi/LifeCycleExternalAPI.java
new file mode 100644
index 0000000000..510d8076be
--- /dev/null
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/externalapi/LifeCycleExternalAPI.java
@@ -0,0 +1,270 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.ci.tests.execute.externalapi;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.codehaus.jettison.json.JSONException;
+import org.junit.Rule;
+import org.junit.rules.TestName;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
+import org.openecomp.sdc.ci.tests.datatypes.ResourceAssetStructure;
+import org.openecomp.sdc.ci.tests.datatypes.ResourceExternalReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.ServiceAssetStructure;
+import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
+import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedResourceAuditJavaObject;
+import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
+import org.openecomp.sdc.ci.tests.utils.DbUtils;
+import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
+import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
+import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtilsExternalAPI;
+import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
+import org.openecomp.sdc.ci.tests.utils.validation.AuditValidationUtils;
+import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
+import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
+import org.testng.Assert;
+import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import com.google.gson.Gson;
+
+public class LifeCycleExternalAPI extends ComponentBaseTest{
+ @Rule
+ public static final TestName name = new TestName();
+ protected Gson gson = new Gson();
+
+ public LifeCycleExternalAPI() {
+ super(name, LifeCycleExternalAPI.class.getName());
+ }
+
+ @BeforeMethod
+ public void setup() {
+ AtomicOperationUtils.createDefaultConsumer(true);
+ }
+
+ @Test
+ public void testReseourceSuccsesfullTransition() throws Exception{
+ ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
+ resourceDetails.setName("ciResource1");
+ resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
+ User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+ RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
+ defaultUser);
+ ResourceAssetStructure parsedCreatedResponse = gson.fromJson(createResource.getResponse(), ResourceAssetStructure.class);
+ BaseRestUtils.checkCreateResponse(createResource);
+
+ //CHECKIN
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,defaultUser,
+ LifeCycleStatesEnum.CHECKIN,null);
+ //testAudit(defaultUser,parsedCreatedResponse,"0.1",LifeCycleStatesEnum.CHECKOUT.name(),"201","OK");
+
+ //CERTIFICATIONREQUEST
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,defaultUser,
+ LifeCycleStatesEnum.CERTIFICATIONREQUEST,null);
+
+ //CERTIFICATIONREQUEST
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.TESTER),
+ LifeCycleStatesEnum.STARTCERTIFICATION,null);
+
+ //CERTIFICATIONREQUEST
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.TESTER),
+ LifeCycleStatesEnum.CERTIFY,"1.0");
+ }
+
+ @Test
+ public void testVFCMTSuccsesfullTransitionDesigner() throws Exception{
+ User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+ ResourceExternalReqDetails resourceDetails = ElementFactory.getDefaultResourceByType("ci1", ResourceCategoryEnum.TEMPLATE_MONITORING_TEMPLATE, defaultUser.getUserId(), ResourceTypeEnum.VFCMT.toString());
+
+ RestResponse restResponse = ResourceRestUtilsExternalAPI.createResource(resourceDetails, defaultUser);
+ ResourceAssetStructure parsedCreatedResponse = gson.fromJson(restResponse.getResponse(), ResourceAssetStructure.class);
+
+ BaseRestUtils.checkCreateResponse(restResponse);
+
+ //CHECKIN
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ LifeCycleStatesEnum.CHECKIN,null);
+
+ //CERTIFICATIONREQUEST
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ LifeCycleStatesEnum.CERTIFY,"1.0");
+ }
+
+ @Test
+ public void testVFCMTSuccsesfullTransitionTester() throws Exception{
+ User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+ ResourceExternalReqDetails resourceDetails = ElementFactory.getDefaultResourceByType("ci1", ResourceCategoryEnum.TEMPLATE_MONITORING_TEMPLATE, defaultUser.getUserId(), ResourceTypeEnum.VFCMT.toString());
+
+ RestResponse restResponse = ResourceRestUtilsExternalAPI.createResource(resourceDetails, defaultUser);
+ ResourceAssetStructure parsedCreatedResponse = gson.fromJson(restResponse.getResponse(), ResourceAssetStructure.class);
+
+ BaseRestUtils.checkCreateResponse(restResponse);
+
+ //CHECKIN
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ LifeCycleStatesEnum.CHECKIN,null);
+
+ //CERTIFICATIONREQUEST
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.TESTER),
+ LifeCycleStatesEnum.CERTIFY,"1.0");
+ }
+
+ @Test
+ public void testVFCMTFailSubmitForTesting() throws Exception{
+ User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+ ResourceExternalReqDetails resourceDetails = ElementFactory.getDefaultResourceByType("ci1", ResourceCategoryEnum.TEMPLATE_MONITORING_TEMPLATE, defaultUser.getUserId(), ResourceTypeEnum.VFCMT.toString());
+
+ RestResponse restResponse = ResourceRestUtilsExternalAPI.createResource(resourceDetails, defaultUser);
+ ResourceAssetStructure parsedCreatedResponse = gson.fromJson(restResponse.getResponse(), ResourceAssetStructure.class);
+
+ BaseRestUtils.checkCreateResponse(restResponse);
+
+ //CHECKIN
+ testResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ LifeCycleStatesEnum.CHECKIN,null);
+
+ //CERTIFICATIONREQUEST
+ testFailResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ LifeCycleStatesEnum.CERTIFICATIONREQUEST,400,ActionStatus.RESOURCE_VFCMT_LIFECYCLE_STATE_NOT_VALID.name(),Arrays.asList(LifeCycleStatesEnum.CERTIFICATIONREQUEST.getState()));
+
+ //CERTIFICATIONREQUEST
+ testFailResourceTransitionOfLifeCycle(parsedCreatedResponse,ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ LifeCycleStatesEnum.STARTCERTIFICATION,400,ActionStatus.RESOURCE_VFCMT_LIFECYCLE_STATE_NOT_VALID.name(),Arrays.asList(LifeCycleStatesEnum.STARTCERTIFICATION.getState()));
+ }
+
+ //@Test
+ public void testServiceSuccsesfullTransition() throws Exception{
+ ServiceReqDetails serviceDetails = ElementFactory.getDefaultService();
+ serviceDetails.setName("ciService1");
+ RestResponse createService = ServiceRestUtils.createService(serviceDetails,
+ ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
+ ServiceAssetStructure parsedCreatedService = gson.fromJson(createService.getResponse(), ServiceAssetStructure.class);
+ BaseRestUtils.checkCreateResponse(createService);
+
+ //CHECKIN
+ testServiceTransitionOfLifeCycle(serviceDetails, parsedCreatedService,ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ LifeCycleStatesEnum.CHECKIN,null);
+
+ //CERTIFICATIONREQUEST
+ testServiceTransitionOfLifeCycle(serviceDetails, parsedCreatedService,ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ LifeCycleStatesEnum.CERTIFICATIONREQUEST,null);
+
+ //CERTIFICATIONREQUEST
+ testServiceTransitionOfLifeCycle(serviceDetails, parsedCreatedService,ElementFactory.getDefaultUser(UserRoleEnum.TESTER),
+ LifeCycleStatesEnum.STARTCERTIFICATION,null);
+
+ //CERTIFICATIONREQUEST
+ testServiceTransitionOfLifeCycle(serviceDetails, parsedCreatedService,ElementFactory.getDefaultUser(UserRoleEnum.TESTER),
+ LifeCycleStatesEnum.CERTIFY,"1.0");
+ }
+
+ private void testFailResourceTransitionOfLifeCycle(ResourceAssetStructure parsedCreatedResponse, User user,
+ LifeCycleStatesEnum lifeCycleStatesEnum,int errorCode, String error,List<String> variables) throws IOException, JSONException {
+ RestResponse response = LifecycleRestUtils.changeExternalResourceState(parsedCreatedResponse.getUuid(),user, lifeCycleStatesEnum);
+ AssertJUnit.assertNotNull("check response object is not null", response);
+ AssertJUnit.assertNotNull("check error code exists in response", response.getErrorCode());
+ AssertJUnit.assertEquals("Check response code is succses", errorCode, response.getErrorCode().intValue());
+
+ ErrorValidationUtils.checkBodyResponseOnError(error, variables,response.getResponse());
+ }
+
+ private void testResourceTransitionOfLifeCycle(ResourceAssetStructure parsedCreatedResponse, User user,
+ LifeCycleStatesEnum lifeCycleStatesEnum,String version) throws IOException {
+ RestResponse response = LifecycleRestUtils.changeExternalResourceState(parsedCreatedResponse.getUuid(),user, lifeCycleStatesEnum);
+ AssertJUnit.assertNotNull("check response object is not null", response);
+ AssertJUnit.assertNotNull("check error code exists in response", response.getErrorCode());
+ AssertJUnit.assertEquals("Check response code is succses", 201, response.getErrorCode().intValue());
+ ResourceAssetStructure parsedMetadata = gson.fromJson(response.getResponse(), ResourceAssetStructure.class);
+
+ Assert.assertEquals(parsedMetadata.getUuid(),parsedCreatedResponse.getUuid());
+ Assert.assertEquals(parsedMetadata.getInvariantUUID(),parsedCreatedResponse.getInvariantUUID());
+ Assert.assertEquals(parsedMetadata.getName(),parsedCreatedResponse.getName());
+ if (version==null){
+ Assert.assertEquals(parsedMetadata.getVersion(),parsedCreatedResponse.getVersion());
+ } else {
+ Assert.assertEquals(parsedMetadata.getVersion(),version);
+ }
+ Assert.assertEquals(parsedMetadata.getResourceType(),parsedCreatedResponse.getResourceType());
+ Assert.assertEquals(parsedMetadata.getLifecycleState(),lifeCycleStatesEnum.getComponentState());
+ Assert.assertEquals(parsedMetadata.getLastUpdaterUserId(),user.getUserId());
+ Assert.assertEquals(parsedMetadata.getLastUpdaterFullName(),user.getFullName());
+ }
+
+ private void testServiceTransitionOfLifeCycle(ServiceReqDetails resourceDetails,
+ ServiceAssetStructure parsedCreatedResponse, User user, LifeCycleStatesEnum lifeCycleStatesEnum,String version) throws IOException {
+ RestResponse response = LifecycleRestUtils.changeExternalServiceState(resourceDetails,user, lifeCycleStatesEnum);
+ AssertJUnit.assertNotNull("check response object is not null", response);
+ AssertJUnit.assertNotNull("check error code exists in response", response.getErrorCode());
+ AssertJUnit.assertEquals("Check response code is succses", 201, response.getErrorCode().intValue());
+ ServiceAssetStructure parsedMetadata = gson.fromJson(response.getResponse(), ServiceAssetStructure.class);
+
+ Assert.assertEquals(parsedMetadata.getUuid(),parsedCreatedResponse.getUuid());
+ Assert.assertEquals(parsedMetadata.getInvariantUUID(),parsedCreatedResponse.getInvariantUUID());
+ Assert.assertEquals(parsedMetadata.getName(),parsedCreatedResponse.getName());
+ if (version==null){
+ Assert.assertEquals(parsedMetadata.getVersion(),parsedCreatedResponse.getVersion());
+ } else {
+ Assert.assertEquals(parsedMetadata.getVersion(),version);
+ }
+ Assert.assertEquals(parsedMetadata.getLifecycleState(),lifeCycleStatesEnum.getComponentState());
+ Assert.assertEquals(parsedMetadata.getLastUpdaterUserId(),user.getUserId());
+ }
+
+ private void testAudit(User modifier,ResourceAssetStructure resource,String prevVersion,String prevLifecycle,
+ String errorCode, String error) throws Exception{
+ DbUtils.cleanAllAudits();
+
+ //ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(currResource.getActionStatus().name());
+ ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
+ String auditAction = "ChangeLyfecycleByAPI";
+ expectedResourceAuditJavaObject.setAction(auditAction);
+ expectedResourceAuditJavaObject.setModifierUid(modifier.getUserId());
+ expectedResourceAuditJavaObject.setModifierName(modifier.getFullName());
+ expectedResourceAuditJavaObject.setResourceName(resource.getName());
+ expectedResourceAuditJavaObject.setResourceType("Resource");
+ expectedResourceAuditJavaObject.setPrevVersion(prevVersion);
+ expectedResourceAuditJavaObject.setCurrVersion(resource.getVersion());
+ expectedResourceAuditJavaObject.setPrevState(prevLifecycle);
+ expectedResourceAuditJavaObject.setCurrState(resource.getLifecycleState());
+ expectedResourceAuditJavaObject.setStatus(errorCode);
+// List<String> variables = (currResource.getErrorParams() != null ? currResource.getErrorParams() : new ArrayList<String>());
+// String auditDesc = AuditValidationUtils.buildAuditDescription(errorInfo, variables);
+ expectedResourceAuditJavaObject.setDesc(error);
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resource.getName());
+ AuditValidationUtils.validateAuditExternalChangeLifecycle(expectedResourceAuditJavaObject, auditAction,body);
+ }
+}