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.be.components.lifecycle;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
26 import org.junit.Before;
27 import org.junit.Test;
28 import org.openecomp.sdc.be.dao.api.ActionStatus;
29 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
30 import org.openecomp.sdc.be.impl.ComponentsUtils;
31 import org.openecomp.sdc.be.model.LifeCycleTransitionEnum;
32 import org.openecomp.sdc.be.model.LifecycleStateEnum;
33 import org.openecomp.sdc.be.model.Resource;
34 import org.openecomp.sdc.be.model.User;
35 import org.openecomp.sdc.be.user.Role;
36 import org.openecomp.sdc.exception.ResponseFormat;
38 import fj.data.Either;
40 public class CertificationChangeTransitionTest extends LifecycleTestBase {
42 private CertificationChangeTransition certifyTransitionObj = null;
43 private CertificationChangeTransition certificationCancelObj = null;
44 private CertificationChangeTransition certificationFailObj = null;
46 private ComponentsUtils componentsUtils = new ComponentsUtils();
47 private User owner = null;
51 @SuppressWarnings("unchecked")
56 componentsUtils.Init();
57 // checkout transition object
58 certifyTransitionObj = new CertificationChangeTransition(LifeCycleTransitionEnum.CERTIFY, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, titanDao);
59 certifyTransitionObj.setConfigurationManager(configurationManager);
60 certifyTransitionObj.setLifeCycleOperation(toscaElementLifecycleOperation);
62 certificationCancelObj = new CertificationChangeTransition(LifeCycleTransitionEnum.CERTIFY, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, titanDao);
63 certificationCancelObj.setConfigurationManager(configurationManager);
64 certificationCancelObj.setLifeCycleOperation(toscaElementLifecycleOperation);
66 certificationFailObj = new CertificationChangeTransition(LifeCycleTransitionEnum.CERTIFY, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, titanDao);
67 certificationFailObj.setConfigurationManager(configurationManager);
68 certificationFailObj.setLifeCycleOperation(toscaElementLifecycleOperation);
70 owner = new User("cs0008", "Carlos", "Santana", "cs@sdc.com", "DESIGNER", null);
72 resource = createResourceObject();
76 public void testVFCMTStateValidation(){
77 Resource resource = createResourceVFCMTObject();
79 User user = new User("cs0008", "Carlos", "Santana", "cs@sdc.com", "DESIGNER", null);
81 Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
82 assertEquals(validateBeforeTransition.isLeft(), true);
86 public void testStateValidationSuccess() {
88 Either<Boolean, ResponseFormat> changeStateResult = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
89 assertEquals(changeStateResult.isLeft(), true);
94 public void testStateValidationFail() {
97 Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
99 assertValidationStateErrorResponse(validateBeforeTransition);
102 validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
103 assertValidationStateErrorResponse(validateBeforeTransition);
106 validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.READY_FOR_CERTIFICATION);
107 assertValidationStateErrorResponse(validateBeforeTransition);
110 validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFIED);
111 assertValidationStateErrorResponse(validateBeforeTransition);
116 public void testRolesFail() {
117 Either<Resource, ResponseFormat> changeStateResult;
119 resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
121 User modifier = new User();
122 modifier.setUserId("modifier");
123 modifier.setFirstName("Albert");
124 modifier.setLastName("Einstein");
125 modifier.setRole(Role.DESIGNER.name());
126 Either<User, ResponseFormat> ownerResponse = certifyTransitionObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE);
127 assertTrue(ownerResponse.isLeft());
128 User owner = ownerResponse.left().value();
130 Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
131 assertEquals(validateBeforeTransition.isRight(), true);
132 changeStateResult = Either.right(validateBeforeTransition.right().value());
133 assertResponse(changeStateResult, ActionStatus.RESTRICTED_OPERATION);
135 modifier.setRole(Role.TESTER.name());
136 validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
137 assertEquals(validateBeforeTransition.isRight(), true);
138 changeStateResult = Either.right(validateBeforeTransition.right().value());
139 assertResponse(changeStateResult, ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId());
144 public void testRolesSuccess() {
146 resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
147 Either<User, ResponseFormat> ownerResponse = certifyTransitionObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE);
148 assertTrue(ownerResponse.isLeft());
149 User owner = ownerResponse.left().value();
151 Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, owner, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
152 assertEquals(true, validateBeforeTransition.isLeft());
154 User modifier = new User();
155 modifier.setUserId("modifier");
156 modifier.setFirstName("Albert");
157 modifier.setLastName("Einstein");
158 modifier.setRole(Role.ADMIN.name());
159 validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
160 assertEquals(true, validateBeforeTransition.isLeft());
164 private void assertValidationStateErrorResponse(Either<Boolean, ResponseFormat> validateBeforeTransition) {
165 assertEquals(validateBeforeTransition.isRight(), true);
166 ResponseFormat error = validateBeforeTransition.right().value();
167 Either<Resource, ResponseFormat> changeStateResult = Either.right(error);
168 assertEquals(changeStateResult.isRight(), true);
170 assertResponse(changeStateResult, ActionStatus.COMPONENT_NOT_READY_FOR_CERTIFICATION, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId());