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 com.google.gson.Gson;
24 import com.google.gson.reflect.TypeToken;
25 import org.junit.Rule;
26 import org.junit.rules.TestName;
27 import org.openecomp.portalsdk.core.restful.domain.EcompRole;
28 import org.openecomp.portalsdk.core.restful.domain.EcompUser;
29 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
30 import org.openecomp.sdc.be.model.Resource;
31 import org.openecomp.sdc.be.model.User;
32 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
33 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
34 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
35 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
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.BaseRestUtils;
39 import org.openecomp.sdc.ci.tests.utils.rest.EcompUserRestUtils;
40 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
41 import org.openecomp.sdc.ci.tests.utils.rest.UserRestUtils;
42 import org.testng.Assert;
43 import org.testng.annotations.Test;
45 import java.io.IOException;
46 import java.lang.reflect.Type;
49 import static org.testng.AssertJUnit.assertFalse;
50 import static org.testng.AssertJUnit.assertTrue;
52 public class UserAPIs extends ComponentBaseTest {
55 public static TestName name = new TestName();
58 super(name, UserAPIs.class.getName());
61 public User adminUser = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
65 public void createUserAllPosibleRolesThenDeactivate() throws Exception {
67 EcompUser ecompUser = new EcompUser();
68 EcompRole ecompRole = new EcompRole();
70 List<EcompRole> allRoles = getAllRoles();
72 for (EcompRole ecompRole2 : allRoles) {
76 List<EcompUser> allusersList = getAllusersList();
77 int sizeBeforeChange = allusersList.size();
80 ecompUser.setLoginId(getUser());
81 ecompRole.setId((long) ecompRole2.getId());
82 ecompRole.setName(ecompRole2.getName());
83 System.out.println(ecompRole2.getName());
84 Set<EcompRole> setRoles = new HashSet<EcompRole>();
85 setRoles.add(ecompRole);
86 ecompUser.setRoles(setRoles);
87 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
88 BaseRestUtils.checkSuccess(pushUser);
90 ///get list of users verify list size changed
91 allusersList = getAllusersList();
92 int sizeAfterChange = allusersList.size();
94 Assert.assertEquals(sizeBeforeChange + 1, sizeAfterChange, "Expected that list will change.");
95 sizeBeforeChange = sizeAfterChange;
96 pushUser = EcompUserRestUtils.pushUser(ecompUser);
99 ecompRole = new EcompRole();;
100 List<EcompRole> list= new ArrayList<EcompRole>();
103 RestResponse deactivateUserResponse = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
104 BaseRestUtils.checkSuccess(deactivateUserResponse);
106 ///get list of users verify list size changed
107 allusersList = getAllusersList();
108 sizeAfterChange = allusersList.size();
109 Assert.assertEquals(sizeBeforeChange, sizeAfterChange + 1, "Expected that list will change.");
112 deleteUser(ecompUser.getLoginId());
120 public void createSameUserTwiceTest() throws Exception {
122 EcompUser ecompUser = new EcompUser();
123 EcompRole ecompRole = new EcompRole();
127 List<EcompUser> allusersList = getAllusersList();
128 int sizeBeforeChange = allusersList.size();
131 ecompUser.setLoginId(getUser());
132 ecompRole.setId((long) 1);
133 ecompRole.setName("TESTER");
134 Set<EcompRole> setRoles = new HashSet<EcompRole>();
135 setRoles.add(ecompRole);
136 ecompUser.setRoles(setRoles);
137 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
138 BaseRestUtils.checkSuccess(pushUser);
140 ///get list of users verify list size changed
141 allusersList = getAllusersList();
142 int sizeAfterChange = allusersList.size();
144 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
145 pushUser = EcompUserRestUtils.pushUser(ecompUser);
148 deleteUser(ecompUser.getLoginId());
154 public void createSameUserTwiceDiffrentDataTest() throws Exception {
156 EcompUser ecompUser = new EcompUser();
157 EcompRole ecompRole = new EcompRole();
160 List<EcompUser> allusersList = getAllusersList();
161 int sizeBeforeChange = allusersList.size();
164 ecompUser.setLoginId(getUser());
165 ecompRole.setId((long) 1);
166 ecompRole.setName("TESTER");
167 Set<EcompRole> setRoles = new HashSet<EcompRole>();
168 setRoles.add(ecompRole);
169 ecompUser.setRoles(setRoles);
170 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
171 BaseRestUtils.checkSuccess(pushUser);
173 ///get list of users verify list size changed
174 allusersList = getAllusersList();
175 int sizeAfterChange = allusersList.size();
177 assertTrue("Lists are Equal" , sizeBeforeChange != sizeAfterChange );
180 ecompRole.setId((long) 2);
181 ecompRole.setName("DESIGNER");
182 setRoles = new HashSet<EcompRole>();
183 setRoles.add(ecompRole);
184 ecompUser.setRoles(setRoles);
186 pushUser = EcompUserRestUtils.pushUser(ecompUser);
189 deleteUser(ecompUser.getLoginId());
195 public void updateUserRoleTest() throws Exception {
197 EcompUser ecompUser = new EcompUser();
198 EcompRole ecompRole = new EcompRole();
201 ecompUser.setLoginId(getUser());
202 ecompRole.setId((long) 1);
203 ecompRole.setName("TESTER");
204 Set<EcompRole> setRoles = new HashSet<EcompRole>();
205 setRoles.add(ecompRole);
206 ecompUser.setRoles(setRoles);
207 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
208 BaseRestUtils.checkSuccess(pushUser);
210 List<EcompRole> userRolesBefore = getUserRoles(ecompUser);
213 ecompRole = new EcompRole();
214 ecompRole.setId((long) 2);
215 ecompRole.setName("DESIGNER");
216 List<EcompRole> list= new ArrayList<EcompRole>();
219 EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
221 List<EcompRole> userRolesAfter = getUserRoles(ecompUser);
223 assertFalse("role wasn't changed", userRolesBefore.equals(userRolesAfter));
225 deleteUser(ecompUser.getLoginId());
231 public void addUserCreateResource() throws Exception {
233 EcompUser ecompUser = new EcompUser();
234 EcompRole ecompRole = new EcompRole();
235 Resource resource = new Resource();
239 ecompUser.setLoginId(getUser());
240 ecompRole.setId((long) 2);
241 ecompRole.setName("DESIGNER");
242 Set<EcompRole> setRoles = new HashSet<EcompRole>();
243 setRoles.add(ecompRole);
244 ecompUser.setRoles(setRoles);
245 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
246 BaseRestUtils.checkSuccess(pushUser);
248 UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
249 resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
252 ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
253 deleteUser(ecompUser.getLoginId());
258 // First try update to Tester and verify it not success
259 // Then try to deactivate and verify it not success
261 public void changeUserRoleWithCheckOutResourceThenDeactivate() throws Exception {
262 EcompUser ecompUser = new EcompUser();
263 EcompRole ecompRole = new EcompRole();
264 Resource resource = new Resource();
267 ecompUser.setLoginId(getUser());
268 ecompRole.setId((long) 2);
269 ecompRole.setName("DESIGNER");
270 Set<EcompRole> setRoles = new HashSet<EcompRole>();
271 setRoles.add(ecompRole);
272 ecompUser.setRoles(setRoles);
273 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
274 BaseRestUtils.checkSuccess(pushUser);
276 UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
277 resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
279 int sizeBeforeChange = getAllusersList().size();
282 ecompRole = new EcompRole();
283 ecompRole.setId((long) 1);
284 ecompRole.setName("TESTER");
285 List<EcompRole> list= new ArrayList<EcompRole>();
288 RestResponse pushUserRoles = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
289 Assert.assertEquals(pushUserRoles.getErrorCode(), (Integer)BaseRestUtils.STATUS_CODE_UNSUPPORTED_ERROR, "Not correct response code");
292 ecompRole = new EcompRole();;
293 list= new ArrayList<EcompRole>();
296 RestResponse deactivateUserResponse = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
297 Assert.assertEquals(deactivateUserResponse.getErrorCode(), (Integer)BaseRestUtils.STATUS_CODE_UNSUPPORTED_ERROR, "Not correct response code");
299 ///get list of users verify list size changed
300 int sizeAfterChange = getAllusersList().size();
301 Assert.assertEquals(sizeBeforeChange, sizeAfterChange, "Expected that list will not change.");
304 ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
305 deleteUser(ecompUser.getLoginId());
310 public void deactivateUserRoleWithStartTestingResource() throws Exception {
312 EcompUser ecompUser = new EcompUser();
313 EcompRole ecompRole = new EcompRole();
314 Resource resource= new Resource();
318 ecompUser.setLoginId(getUser());
319 ecompRole.setId((long) 2);
320 ecompRole.setName("DESIGNER");
321 Set<EcompRole> setRoles = new HashSet<EcompRole>();
322 setRoles.add(ecompRole);
323 ecompUser.setRoles(setRoles);
324 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
325 BaseRestUtils.checkSuccess(pushUser);
326 int sizeBeforeChange = getAllusersList().size();
327 UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
329 resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
330 AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFICATIONREQUEST, true);
334 ecompRole = new EcompRole();
335 ecompRole.setId((long) 1);
336 ecompRole.setName("TESTER");
337 List<EcompRole> list= new ArrayList<EcompRole>();
340 RestResponse pushUserRoles = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
341 BaseRestUtils.checkSuccess(pushUserRoles);
343 UserRoleEnum.TESTER.setUserId(ecompUser.getLoginId());
344 AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.TESTER, LifeCycleStatesEnum.STARTCERTIFICATION, true);
347 ecompRole = new EcompRole();;
348 list= new ArrayList<EcompRole>();
351 RestResponse deactivateUserResponse = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
352 Assert.assertEquals(deactivateUserResponse.getErrorCode(), (Integer)BaseRestUtils.STATUS_CODE_UNSUPPORTED_ERROR, "Not correct response code");
354 ///get list of users verify list size changed
355 int sizeAfterChange = getAllusersList().size();
356 Assert.assertEquals(sizeBeforeChange, sizeAfterChange, "Expected that list will not change.");
359 ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
360 deleteUser(ecompUser.getLoginId());
365 public void changeUserRoleWithStartTestingResource() throws Exception {
367 EcompUser ecompUser = new EcompUser();
368 EcompRole ecompRole = new EcompRole();
369 Resource resource= new Resource();
373 ecompUser.setLoginId(getUser());
374 ecompRole.setId((long) 2);
375 ecompRole.setName("DESIGNER");
376 Set<EcompRole> setRoles = new HashSet<EcompRole>();
377 setRoles.add(ecompRole);
378 ecompUser.setRoles(setRoles);
379 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
380 BaseRestUtils.checkSuccess(pushUser);
382 UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
384 resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
385 AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.STARTCERTIFICATION, true);
389 ecompRole = new EcompRole();
390 ecompRole.setId((long) 1);
391 ecompRole.setName("TESTER");
392 List<EcompRole> list= new ArrayList<EcompRole>();
395 RestResponse pushUserRoles = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
396 BaseRestUtils.checkSuccess(pushUserRoles);
399 ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
400 deleteUser(ecompUser.getLoginId());
405 public void fillAllEcompFields() throws Exception {
406 EcompUser ecompUser = new EcompUser();
407 EcompRole ecompRole = new EcompRole();
411 List<EcompUser> allusersList = getAllusersList();
412 int sizeBeforeChange = allusersList.size();
415 ecompUser.setLoginId(getUser());
416 ecompUser.setOrgId((long) 123);
417 ecompUser.setManagerId("ci4321");
418 ecompUser.setFirstName("firstName");
419 ecompUser.setMiddleInitial("middleInitial");
420 ecompUser.setLastName("lastName");
421 ecompUser.setPhone("phone");
422 ecompUser.setEmail("email@email.com");
423 ecompUser.setHrid("hrid");
424 ecompUser.setOrgUserId("orgUserId");
425 ecompUser.setOrgCode("orgCode");
426 ecompUser.setOrgManagerUserId("ci1234");
427 ecompUser.setJobTitle("jobTitle");
428 ecompUser.setActive(true);
431 ecompRole.setId((long) 1);
432 ecompRole.setName("TESTER");
433 Set<EcompRole> setRoles = new HashSet<EcompRole>();
434 setRoles.add(ecompRole);
435 ecompUser.setRoles(setRoles);
436 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
437 BaseRestUtils.checkSuccess(pushUser);
439 ///get list of users verify list size changed
440 allusersList = getAllusersList();
441 int sizeAfterChange = allusersList.size();
443 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
447 deleteUser(ecompUser.getLoginId());
452 public void missingMandatoryFieldRole() throws Exception {
454 EcompUser ecompUser = new EcompUser();
457 List<EcompUser> allusersList = getAllusersList();
458 int sizeBeforeChange = allusersList.size();
461 ecompUser.setLoginId(getUser());
462 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
463 BaseRestUtils.checkSuccess(pushUser);
465 ///get list of users verify list size changed
466 allusersList = getAllusersList();
467 int sizeAfterChange = allusersList.size();
469 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
472 deleteUser(ecompUser.getLoginId());
477 public void missingMandatoryFieldATTid() throws Exception {
479 EcompUser ecompUser = new EcompUser();
480 EcompRole ecompRole = new EcompRole();
484 ecompUser.setLoginId("");
485 ecompRole.setId((long) 1);
486 ecompRole.setName("TESTER");
487 Set<EcompRole> setRoles = new HashSet<EcompRole>();
488 setRoles.add(ecompRole);
489 ecompUser.setRoles(setRoles);
490 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
491 assertTrue("wrong response code :" , pushUser.getErrorCode() == BaseRestUtils.STATUS_CODE_INVALID_CONTENT);
494 deleteUser(ecompUser.getLoginId());
500 private List<EcompRole> getUserRoles(EcompUser ecompUser) throws IOException {
501 RestResponse userRoles = EcompUserRestUtils.getUserRoles(ecompUser.getLoginId());
502 Type listType = new TypeToken<List<EcompRole>>() {}.getType();
503 List<EcompRole> roleList = new Gson().fromJson(userRoles.getResponse(), listType);
507 private void deleteUser(String userId) throws IOException {
508 User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
509 defaultUser.setUserId(userId);
511 UserRestUtils.deleteUser(defaultUser, adminUser, true);
514 private List<EcompUser> getAllusersList() throws IOException {
515 RestResponse allUsers = EcompUserRestUtils.getAllUsers();
517 Type listType = new TypeToken<List<EcompUser>>() {}.getType();
518 List<EcompUser> usersList = new Gson().fromJson(allUsers.getResponse(), listType);
523 private List<EcompRole> getAllRoles() throws IOException {
524 RestResponse allRoles = EcompUserRestUtils.getAllAvailableRoles();
526 Type listType = new TypeToken<List<EcompRole>>() {}.getType();
527 List<EcompRole> availableRoles = new Gson().fromJson(allRoles.getResponse(), listType);
529 return availableRoles;
532 private String getUser() {
533 int nextInt = rnd.nextInt(8999) + 1000;
534 // String returnMe = "ci"+ new BigInteger(getRandomNumber(4));
535 String returnMe = "ci"+ nextInt;
536 System.out.println(returnMe);
542 private static Random rnd = new Random();
544 public static String getRandomNumber(int digCount) {
545 StringBuilder sb = new StringBuilder(digCount);
546 for(int i=1; i <= digCount; i++){
547 sb.append((char)('0' + rnd.nextInt(10)));
549 return sb.toString();