From 1179fd37fa6c3de088bffc1130f05a2fca5a9313 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 13 Mar 2019 15:56:40 +0100 Subject: [PATCH] fixes integration tests, which are relying on the admin flag --- .../test/java/sonia/scm/it/UserITCase.java | 8 +++---- .../java/sonia/scm/it/utils/TestData.java | 22 +++++++++++++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/scm-it/src/test/java/sonia/scm/it/UserITCase.java b/scm-it/src/test/java/sonia/scm/it/UserITCase.java index 4c7e3b2cac..fdda43300e 100644 --- a/scm-it/src/test/java/sonia/scm/it/UserITCase.java +++ b/scm-it/src/test/java/sonia/scm/it/UserITCase.java @@ -27,7 +27,7 @@ public class UserITCase { .assertStatusCode(200) .requestUser(newUser) .assertStatusCode(200) - .assertAdmin(aBoolean -> assertThat(aBoolean).isEqualTo(Boolean.TRUE)) + // we could no longer easily check if the user is an admin, because the admin flag is gone .assertPassword(Assert::assertNull) .requestChangePassword(newPassword) .assertStatusCode(204); @@ -36,7 +36,7 @@ public class UserITCase { .requestIndexResource(newUser, newPassword) .assertStatusCode(200) .requestUser(newUser) - .assertAdmin(isAdmin -> assertThat(isAdmin).isEqualTo(Boolean.TRUE)) + // we could no longer easily check if the user is an admin, because the admin flag is gone .assertPassword(Assert::assertNull); } @@ -52,7 +52,7 @@ public class UserITCase { .assertStatusCode(200) .requestUser(newUser) .assertStatusCode(200) - .assertAdmin(aBoolean -> assertThat(aBoolean).isEqualTo(Boolean.TRUE)) // the user anonymous is not an admin + // we could no longer easily check if the user is an admin, because the admin flag is gone .assertPassword(Assert::assertNull) .requestChangePassword(newPassword) // the oldPassword is not needed in the user resource .assertStatusCode(204); @@ -96,7 +96,7 @@ public class UserITCase { .assertStatusCode(200) .requestUser(newUser) .assertStatusCode(200) - .assertAdmin(aBoolean -> assertThat(aBoolean).isEqualTo(Boolean.TRUE)) + // we could no longer easily check if the user is an admin, because the admin flag is gone .assertPassword(Assert::assertNull) .assertType(s -> assertThat(s).isEqualTo(type)) .assertPasswordLinkDoesNotExists(); diff --git a/scm-it/src/test/java/sonia/scm/it/utils/TestData.java b/scm-it/src/test/java/sonia/scm/it/utils/TestData.java index 584737221f..23228d686b 100644 --- a/scm-it/src/test/java/sonia/scm/it/utils/TestData.java +++ b/scm-it/src/test/java/sonia/scm/it/utils/TestData.java @@ -74,9 +74,27 @@ public class TestData { .append(" }").toString()) .post(getUsersUrl()) .then() - .statusCode(HttpStatus.SC_CREATED) - ; + .statusCode(HttpStatus.SC_CREATED); + + if (isAdmin) { + assignAdminPermissions(username); + } } + + public static void assignAdminPermissions(String username) { + LOG.info("assign admin permissions to user {}", username); + given(VndMediaType.PERMISSION_COLLECTION) + .when() + .body("{'permissions': ['*']}".replaceAll("'", "\"")) + .put(getPermissionUrl(username)) + .then() + .statusCode(HttpStatus.SC_NO_CONTENT); + } + + private static URI getPermissionUrl(String username) { + return RestUtil.createResourceUrl(String.format("users/%s/permissions", username)); + } + public static void createGroup(String groupName, String desc) { LOG.info("create group with group name: {} and description {}", groupName, desc); given(VndMediaType.GROUP)