diff options
author | Michal Duda <michal.duda@sonarsource.com> | 2020-10-09 14:25:55 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2020-10-16 20:07:40 +0000 |
commit | 4d8f0c4bf3214a0a36e15ada2a8b1090543eaf8e (patch) | |
tree | 0806728aaa059a3b1f1b3c908bcf2dc8ef098ec1 /server/sonar-webserver-webapi | |
parent | 276abb42335b4609f922bbf7c289cc26bb98f302 (diff) | |
download | sonarqube-4d8f0c4bf3214a0a36e15ada2a8b1090543eaf8e.tar.gz sonarqube-4d8f0c4bf3214a0a36e15ada2a8b1090543eaf8e.zip |
SONAR-13936 Remove use of organizations in Groups
Diffstat (limited to 'server/sonar-webserver-webapi')
22 files changed, 191 insertions, 283 deletions
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/PermissionWsSupport.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/PermissionWsSupport.java index 735cb6e46a4..92839b63154 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/PermissionWsSupport.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/PermissionWsSupport.java @@ -73,7 +73,7 @@ public class PermissionWsSupport { public GroupUuidOrAnyone findGroup(DbSession dbSession, Request request) { String groupUuid = request.param(PARAM_GROUP_ID); String groupName = request.param(PARAM_GROUP_NAME); - GroupWsRef groupRef = GroupWsRef.create(groupUuid, null, groupName); + GroupWsRef groupRef = GroupWsRef.create(groupUuid, groupName); return groupWsSupport.findGroupOrAnyone(dbSession, groupRef); } diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/CreateAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/CreateAction.java index 9010af8a617..7e1500fa766 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/CreateAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/CreateAction.java @@ -38,7 +38,6 @@ import static org.sonar.db.permission.OrganizationPermission.ADMINISTER; import static org.sonar.server.usergroups.ws.GroupWsSupport.DESCRIPTION_MAX_LENGTH; import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_GROUP_DESCRIPTION; import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_GROUP_NAME; -import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_ORGANIZATION_KEY; import static org.sonar.server.usergroups.ws.GroupWsSupport.toProtobuf; import static org.sonar.server.ws.WsUtils.writeProtobuf; @@ -68,12 +67,6 @@ public class CreateAction implements UserGroupsWsAction { .setChangelog( new Change("8.4", "Field 'id' format in the response changes from integer to string.")); - action.createParam(PARAM_ORGANIZATION_KEY) - .setDescription("Key of organization. If unset then default organization is used.") - .setExampleValue("my-org") - .setSince("6.2") - .setInternal(true); - action.createParam(PARAM_GROUP_NAME) .setRequired(true) .setMaximumLength(GROUP_NAME_MAX_LENGTH) @@ -111,8 +104,7 @@ public class CreateAction implements UserGroupsWsAction { private void writeResponse(Request request, Response response, GroupDto group) { UserGroups.CreateWsResponse.Builder respBuilder = UserGroups.CreateWsResponse.newBuilder(); // 'default' is always false as it's not possible to create a default group - // TODO - respBuilder.setGroup(toProtobuf("org", group, 0, false)); + respBuilder.setGroup(toProtobuf(group, 0, false)); writeProtobuf(respBuilder.build(), request, response); } } diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsRef.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsRef.java index a2f38972852..45087fb5cc7 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsRef.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsRef.java @@ -20,7 +20,6 @@ package org.sonar.server.usergroups.ws; import java.util.Objects; -import javax.annotation.CheckForNull; import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; import org.sonar.api.security.DefaultGroups; @@ -36,7 +35,7 @@ import static org.sonar.server.exceptions.BadRequestException.checkRequest; * of these two options: * <ul> * <li>group uuid, for instance 1234</li> - * <li>group name and optional organization key</li> + * <li>group name</li> * </ul> * * The reference is then converted to a {@link GroupUuid} or {@link GroupUuidOrAnyone}. @@ -45,19 +44,16 @@ import static org.sonar.server.exceptions.BadRequestException.checkRequest; public class GroupWsRef { private final String uuid; - private final String organizationKey; private final String name; - private GroupWsRef(String uuid, @Nullable String organizationKey, @Nullable String name) { + private GroupWsRef(@Nullable String uuid, @Nullable String name) { this.uuid = uuid; - this.organizationKey = organizationKey; this.name = name; } /** * @return {@code true} if uuid is defined and {@link #getUuid()} can be called. If {@code false}, then - * the couple {organizationKey, name} is defined and the methods {@link #getOrganizationKey()}/{@link #getName()} - * can be called. + * the name is defined and the method {@link #getName()} can be called. */ public boolean hasUuid() { return uuid != null; @@ -65,7 +61,7 @@ public class GroupWsRef { /** * @return the group uuid - * @throws IllegalStateException if {@link #getUuid()} is {@code false} + * @throws IllegalStateException if {@link #hasUuid()} is {@code false} */ public String getUuid() { checkState(hasUuid(), "Id is not present. Please see hasUuid()."); @@ -73,16 +69,6 @@ public class GroupWsRef { } /** - * @return the organization key - * @throws IllegalStateException if {@link #getUuid()} is {@code true} - */ - @CheckForNull - public String getOrganizationKey() { - checkState(!hasUuid(), "Organization is not present. Please see hasId()."); - return organizationKey; - } - - /** * @return the non-null group name. Can be anyone. * @throws IllegalStateException if {@link #getUuid()} is {@code true} */ @@ -96,28 +82,27 @@ public class GroupWsRef { * as they can't be referenced by an uuid. */ static GroupWsRef fromUuid(String uuid) { - return new GroupWsRef(uuid, null, null); + return new GroupWsRef(uuid, null); } /** - * Creates a reference to a group by its organization and name. Virtual groups "Anyone" are + * Creates a reference to a group by its name. Virtual groups "Anyone" are * supported. * - * @param organizationKey key of organization. If {@code null}, then default organization will be used. * @param name non-null name. Can refer to anyone group (case-insensitive {@code "anyone"}). */ - static GroupWsRef fromName(@Nullable String organizationKey, String name) { - return new GroupWsRef(null, organizationKey, requireNonNull(name)); + static GroupWsRef fromName(String name) { + return new GroupWsRef(null, requireNonNull(name)); } - public static GroupWsRef create(@Nullable String uuid, @Nullable String organizationKey, @Nullable String name) { + public static GroupWsRef create(@Nullable String uuid, @Nullable String name) { if (uuid != null) { - checkRequest(organizationKey == null && name == null, "Either group id or couple organization/group name must be set"); + checkRequest(name == null, "Either group id or group name must be set"); return fromUuid(uuid); } checkRequest(name != null, "Group name or group id must be provided"); - return fromName(organizationKey, name); + return fromName(name); } public boolean isAnyone() { @@ -133,21 +118,16 @@ public class GroupWsRef { return false; } GroupWsRef that = (GroupWsRef) o; - return Objects.equals(uuid, that.uuid) && Objects.equals(organizationKey, that.organizationKey) && Objects.equals(name, that.name); + return Objects.equals(uuid, that.uuid) && Objects.equals(name, that.name); } @Override public int hashCode() { - return Objects.hash(uuid, organizationKey, name); + return Objects.hash(uuid, name); } @Override public String toString() { - StringBuilder sb = new StringBuilder("GroupWsRef{"); - sb.append("uuid=").append(uuid); - sb.append(", organizationKey='").append(organizationKey).append('\''); - sb.append(", name='").append(name).append('\''); - sb.append('}'); - return sb.toString(); + return "GroupWsRef{uuid=" + uuid + ", name='" + name + "'}"; } } diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java index d4d4c38833b..354f49a7aa6 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java @@ -44,7 +44,6 @@ import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOption public class GroupWsSupport { static final String PARAM_GROUP_ID = "id"; - static final String PARAM_ORGANIZATION_KEY = "organization"; static final String PARAM_GROUP_NAME = "name"; static final String PARAM_GROUP_DESCRIPTION = "description"; static final String PARAM_LOGIN = "login"; @@ -63,8 +62,7 @@ public class GroupWsSupport { } /** - * Find a group by its id (parameter {@link #PARAM_GROUP_ID}) or couple organization key/group name - * (parameters {@link #PARAM_ORGANIZATION_KEY} and {@link #PARAM_GROUP_NAME}). The virtual + * Find a group by its id (parameter {@link #PARAM_GROUP_ID}) or group name (parameter {@link #PARAM_GROUP_NAME}). The virtual * group "Anyone" is not supported. * * @throws NotFoundException if parameters are missing/incorrect, if the requested group does not exist @@ -76,9 +74,8 @@ public class GroupWsSupport { public GroupDto findGroupDto(DbSession dbSession, Request request) { String uuid = request.param(PARAM_GROUP_ID); - String organizationKey = request.param(PARAM_ORGANIZATION_KEY); String name = request.param(PARAM_GROUP_NAME); - return findGroupDto(dbSession, GroupWsRef.create(uuid, organizationKey, name)); + return findGroupDto(dbSession, GroupWsRef.create(uuid, name)); } public GroupDto findGroupDto(DbSession dbSession, GroupWsRef ref) { @@ -121,10 +118,9 @@ public class GroupWsSupport { checkArgument(!defaultGroup.getUuid().equals(groupDto.getUuid()), "Default group '%s' cannot be used to perform this action", groupDto.getName()); } - static UserGroups.Group.Builder toProtobuf(String org, GroupDto group, int membersCount, boolean isDefault) { + static UserGroups.Group.Builder toProtobuf(GroupDto group, int membersCount, boolean isDefault) { UserGroups.Group.Builder wsGroup = UserGroups.Group.newBuilder() .setId(group.getUuid()) - .setOrganization(org) .setName(group.getName()) .setMembersCount(membersCount) .setDefault(isDefault); @@ -145,11 +141,6 @@ public class GroupWsSupport { } private static void defineGroupNameWsParameter(WebService.NewAction action) { - action.createParam(PARAM_ORGANIZATION_KEY) - .setDescription("Key of organization") - .setExampleValue("my-org") - .setInternal(true) - .setSince("6.2"); action.createParam(PARAM_GROUP_NAME) .setDescription("Group name") .setExampleValue("sonar-administrators"); diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java index 8c909605d26..45aed86a620 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java @@ -27,7 +27,6 @@ import java.util.Set; import org.sonar.api.server.ws.Change; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; -import org.sonar.api.server.ws.WebService; import org.sonar.api.server.ws.WebService.NewController; import org.sonar.api.server.ws.WebService.Param; import org.sonar.api.utils.Paging; @@ -44,7 +43,6 @@ import static org.apache.commons.lang.StringUtils.defaultIfBlank; import static org.sonar.api.utils.Paging.forPageIndex; import static org.sonar.db.permission.OrganizationPermission.ADMINISTER; import static org.sonar.server.es.SearchOptions.MAX_PAGE_SIZE; -import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_ORGANIZATION_KEY; import static org.sonar.server.ws.WsUtils.writeProtobuf; import static org.sonarqube.ws.UserGroups.Group; import static org.sonarqube.ws.UserGroups.SearchWsResponse; @@ -68,7 +66,7 @@ public class SearchAction implements UserGroupsWsAction { @Override public void define(NewController context) { - WebService.NewAction action = context.createAction("search") + context.createAction("search") .setDescription("Search for user groups.<br>" + "Requires the following permission: 'Administer System'.") .setHandler(this) @@ -81,12 +79,6 @@ public class SearchAction implements UserGroupsWsAction { new Change("8.4", "Field 'id' in the response is deprecated. Format changes from integer to string."), new Change("6.4", "Paging response fields moved to a Paging object"), new Change("6.4", "'default' response field has been added")); - - action.createParam(PARAM_ORGANIZATION_KEY) - .setDescription("Key of organization. If not set then groups are searched in default organization.") - .setExampleValue("my-org") - .setSince("6.2") - .setInternal(true); } @Override diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java index 8e68133b086..03f2f5b7c06 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java @@ -29,7 +29,6 @@ import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.user.GroupDto; import org.sonar.db.user.UserMembershipQuery; -import org.sonar.server.organization.DefaultOrganizationProvider; import org.sonar.server.user.UserSession; import org.sonarqube.ws.UserGroups; @@ -51,13 +50,11 @@ public class UpdateAction implements UserGroupsWsAction { private final DbClient dbClient; private final UserSession userSession; private final GroupWsSupport support; - private final DefaultOrganizationProvider defaultOrganizationProvider; - public UpdateAction(DbClient dbClient, UserSession userSession, GroupWsSupport support, DefaultOrganizationProvider defaultOrganizationProvider) { + public UpdateAction(DbClient dbClient, UserSession userSession, GroupWsSupport support) { this.dbClient = dbClient; this.userSession = userSession; this.support = support; - this.defaultOrganizationProvider = defaultOrganizationProvider; } @Override @@ -152,7 +149,7 @@ public class UpdateAction implements UserGroupsWsAction { UserGroups.UpdateWsResponse.Builder respBuilder = UserGroups.UpdateWsResponse.newBuilder(); // 'default' is always false as it's not possible to update a default group - respBuilder.setGroup(toProtobuf(defaultOrganizationProvider.get().getKey(), group, membersCount, false)); + respBuilder.setGroup(toProtobuf(group, membersCount, false)); writeProtobuf(respBuilder.build(), request, response); } diff --git a/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/user/ws/groups-example.json b/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/user/ws/groups-example.json index fcf4d68e287..de381b2b323 100644 --- a/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/user/ws/groups-example.json +++ b/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/user/ws/groups-example.json @@ -15,7 +15,7 @@ { "id": 2, "name": "sonar-users", - "description": "Sonar Users", + "description": "Users", "selected": true, "default": true } diff --git a/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/usergroups/ws/search-example.json b/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/usergroups/ws/search-example.json index f165d2a76ee..6cf71371022 100644 --- a/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/usergroups/ws/search-example.json +++ b/server/sonar-webserver-webapi/src/main/resources/org/sonar/server/usergroups/ws/search-example.json @@ -7,7 +7,7 @@ "groups": [ { "id": "AU-Tpxb--iU5OvuD2FLy", - "name": "users", + "name": "sonar-users", "description": "Users", "membersCount": 17, "default": true diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java index 588fab45048..82d22c0dbb8 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java @@ -70,7 +70,7 @@ public abstract class BasePermissionWsTest<A extends PermissionsWsAction> { protected abstract A buildWsAction(); protected GroupWsSupport newGroupWsSupport() { - return new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider)); + return new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient())); } protected PermissionWsSupport newPermissionWsSupport() { diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/permission/ws/template/DeleteTemplateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/permission/ws/template/DeleteTemplateActionTest.java index 493173dc94d..f92d0a53aeb 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/permission/ws/template/DeleteTemplateActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/permission/ws/template/DeleteTemplateActionTest.java @@ -80,7 +80,7 @@ public class DeleteTemplateActionTest { @Before public void setUp() { DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); - GroupWsSupport groupWsSupport = new GroupWsSupport(dbClient, new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider)); + GroupWsSupport groupWsSupport = new GroupWsSupport(dbClient, new DefaultGroupFinder(db.getDbClient())); this.underTestWithoutViews = new WsActionTester(new DeleteTemplateAction(dbClient, userSession, new PermissionWsSupport(dbClient, new ComponentFinder(dbClient, resourceTypes), groupWsSupport), defaultTemplatesResolver, defaultOrganizationProvider)); this.underTestWithViews = new WsActionTester(new DeleteTemplateAction(dbClient, userSession, diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/ChangePasswordActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/ChangePasswordActionTest.java index d6defca65ab..9c4b1ef0cea 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/ChangePasswordActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/ChangePasswordActionTest.java @@ -50,8 +50,6 @@ import static org.sonar.db.user.UserTesting.newLocalUser; public class ChangePasswordActionTest { - private System2 system2 = new AlwaysIncreasingSystem2(); - @Rule public ExpectedException expectedException = ExpectedException.none(); @Rule @@ -67,7 +65,7 @@ public class ChangePasswordActionTest { private UserUpdater userUpdater = new UserUpdater( mock(NewUserNotifier.class), db.getDbClient(), new UserIndexer(db.getDbClient(), es.client()), testDefaultOrganizationProvider, - new DefaultGroupFinder(db.getDbClient(), testDefaultOrganizationProvider), + new DefaultGroupFinder(db.getDbClient()), new MapSettings().asConfig(), localAuthentication); @@ -75,7 +73,7 @@ public class ChangePasswordActionTest { @Before public void setUp() { - db.users().insertDefaultGroup("sonar-users"); + db.users().insertDefaultGroup(); } @Test diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CreateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CreateActionTest.java index 31ab548314b..3d5a67462aa 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CreateActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CreateActionTest.java @@ -65,7 +65,6 @@ import static org.sonar.server.user.index.UserIndexDefinition.FIELD_SCM_ACCOUNTS public class CreateActionTest { - private static final String DEFAULT_GROUP_NAME = "sonar-users"; private MapSettings settings = new MapSettings(); private System2 system2 = new AlwaysIncreasingSystem2(); @@ -85,12 +84,12 @@ public class CreateActionTest { private WsActionTester tester = new WsActionTester(new CreateAction( db.getDbClient(), new UserUpdater(mock(NewUserNotifier.class), db.getDbClient(), userIndexer, defaultOrganizationProvider, - new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider), settings.asConfig(), localAuthentication), + new DefaultGroupFinder(db.getDbClient()), settings.asConfig(), localAuthentication), userSessionRule)); @Before public void setUp() { - defaultGroup = db.users().insertDefaultGroup(DEFAULT_GROUP_NAME); + defaultGroup = db.users().insertDefaultGroup(); } @Test diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/GroupsActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/GroupsActionTest.java index b28a25c45b2..2e57bb8697d 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/GroupsActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/GroupsActionTest.java @@ -29,7 +29,6 @@ import org.sonar.db.user.GroupDto; import org.sonar.db.user.UserDto; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.NotFoundException; -import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.usergroups.DefaultGroupFinder; import org.sonar.server.ws.TestRequest; @@ -62,12 +61,12 @@ public class GroupsActionTest { public UserSessionRule userSession = UserSessionRule.standalone().logIn().setRoot(); private WsActionTester ws = new WsActionTester(new GroupsAction(db.getDbClient(), userSession, - new DefaultGroupFinder(db.getDbClient(), TestDefaultOrganizationProvider.from(db)))); + new DefaultGroupFinder(db.getDbClient()))); @Test public void empty_groups() { insertUser(); - insertDefaultGroup("sonar-users", "Sonar Users"); + insertDefaultGroup(); GroupsWsResponse response = call(ws.newRequest().setParam("login", USER_LOGIN)); @@ -77,7 +76,7 @@ public class GroupsActionTest { @Test public void return_selected_groups_selected_param_is_set_to_all() { UserDto user = insertUser(); - GroupDto usersGroup = insertDefaultGroup("sonar-users", "Sonar Users"); + GroupDto usersGroup = insertDefaultGroup(); GroupDto adminGroup = insertGroup("sonar-admins", "Sonar Admins"); addUserToGroup(user, usersGroup); @@ -93,7 +92,7 @@ public class GroupsActionTest { @Test public void return_selected_groups_selected_param_is_set_to_selected() { UserDto user = insertUser(); - GroupDto usersGroup = insertDefaultGroup("sonar-users", "Sonar Users"); + GroupDto usersGroup = insertDefaultGroup(); insertGroup("sonar-admins", "Sonar Admins"); addUserToGroup(user, usersGroup); @@ -107,7 +106,7 @@ public class GroupsActionTest { @Test public void return_selected_groups_selected_param_is_not_set() { UserDto user = insertUser(); - GroupDto usersGroup = insertDefaultGroup("sonar-users", "Sonar Users"); + GroupDto usersGroup = insertDefaultGroup(); insertGroup("sonar-admins", "Sonar Admins"); addUserToGroup(user, usersGroup); @@ -121,7 +120,7 @@ public class GroupsActionTest { @Test public void return_not_selected_groups_selected_param_is_set_to_deselected() { UserDto user = insertUser(); - GroupDto usersGroup = insertDefaultGroup("sonar-users", "Sonar Users"); + GroupDto usersGroup = insertDefaultGroup(); GroupDto adminGroup = insertGroup("sonar-admins", "Sonar Admins"); addUserToGroup(user, usersGroup); @@ -133,20 +132,9 @@ public class GroupsActionTest { } @Test - public void return_group_not_having_description() { - UserDto user = insertUser(); - GroupDto group = insertDefaultGroup("sonar-users", null); - addUserToGroup(user, group); - - GroupsWsResponse response = call(ws.newRequest().setParam("login", "john").setParam(Param.SELECTED, ALL.value())); - - assertThat(response.getGroupsList()).extracting(GroupsWsResponse.Group::hasDescription).containsOnly(false); - } - - @Test public void search_with_pagination() { UserDto user = insertUser(); - insertDefaultGroup("sonar-users", "Sonar Users"); + insertDefaultGroup(); for (int i = 1; i <= 9; i++) { GroupDto groupDto = insertGroup("group-" + i, "group-" + i); addUserToGroup(user, groupDto); @@ -166,7 +154,7 @@ public class GroupsActionTest { @Test public void search_by_text_query() { UserDto user = insertUser(); - GroupDto usersGroup = insertDefaultGroup("sonar-users", "Sonar Users"); + GroupDto usersGroup = insertDefaultGroup(); GroupDto adminGroup = insertGroup("sonar-admins", "Sonar Admins"); addUserToGroup(user, usersGroup); @@ -179,7 +167,7 @@ public class GroupsActionTest { @Test public void return_default_group_information() { UserDto user = insertUser(); - GroupDto usersGroup = insertDefaultGroup("sonar-users", "Sonar Users"); + GroupDto usersGroup = insertDefaultGroup(); GroupDto adminGroup = insertGroup("sonar-admins", "Sonar Admins"); addUserToGroup(user, usersGroup); @@ -195,7 +183,7 @@ public class GroupsActionTest { @Test public void return_groups() { UserDto user = insertUser(); - GroupDto group = db.users().insertDefaultGroup(newGroupDto().setName("group1")); + GroupDto group = db.users().insertDefaultGroup(); addUserToGroup(user, group); GroupsWsResponse response = call(ws.newRequest() @@ -222,7 +210,7 @@ public class GroupsActionTest { @Test public void fail_on_unknown_user() { - insertDefaultGroup("sonar-users", "Sonar Users"); + insertDefaultGroup(); expectedException.expect(NotFoundException.class); expectedException.expectMessage("Unknown user: john"); @@ -233,7 +221,7 @@ public class GroupsActionTest { @Test public void fail_on_disabled_user() { UserDto userDto = db.users().insertUser(user -> user.setLogin("disabled").setActive(false)); - insertDefaultGroup("sonar-users", "Sonar Users"); + insertDefaultGroup(); expectedException.expect(NotFoundException.class); expectedException.expectMessage("Unknown user: disabled"); @@ -244,7 +232,7 @@ public class GroupsActionTest { @Test public void fail_when_page_size_is_greater_than_500() { UserDto user = insertUser(); - insertDefaultGroup("sonar-users", "Sonar Users"); + insertDefaultGroup(); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("The 'ps' parameter must be less than 500"); @@ -275,7 +263,7 @@ public class GroupsActionTest { @Test public void test_json_example() { UserDto user = insertUser(); - GroupDto usersGroup = insertDefaultGroup("sonar-users", "Sonar Users"); + GroupDto usersGroup = insertDefaultGroup(); insertGroup("sonar-admins", "Sonar Admins"); addUserToGroup(user, usersGroup); @@ -308,8 +296,8 @@ public class GroupsActionTest { return db.users().insertGroup(newGroupDto().setName(name).setDescription(description)); } - private GroupDto insertDefaultGroup(String name, String description) { - return db.users().insertDefaultGroup(newGroupDto().setName(name).setDescription(description)); + private GroupDto insertDefaultGroup() { + return db.users().insertDefaultGroup(); } private void addUserToGroup(UserDto user, GroupDto usersGroup) { diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java index 541a6743ec0..7578d98ce92 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java @@ -72,12 +72,12 @@ public class UpdateActionTest { private WsActionTester ws = new WsActionTester(new UpdateAction( new UserUpdater(mock(NewUserNotifier.class), dbClient, userIndexer, defaultOrganizationProvider, - new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider), settings.asConfig(), localAuthentication), + new DefaultGroupFinder(db.getDbClient()), settings.asConfig(), localAuthentication), userSession, new UserJsonWriter(userSession), dbClient)); @Before public void setUp() { - db.users().insertDefaultGroup("sonar-users"); + db.users().insertDefaultGroup(); } @Test diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java index 532495e2373..8d3537441a5 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java @@ -30,7 +30,6 @@ import org.sonar.db.user.GroupDto; import org.sonar.db.user.UserDto; import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.exceptions.UnauthorizedException; -import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.usergroups.DefaultGroupFinder; import org.sonar.server.ws.TestRequest; @@ -53,16 +52,15 @@ public class AddUserActionTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); - private WsActionTester ws = new WsActionTester(new AddUserAction(db.getDbClient(), userSession, newGroupWsSupport())); + private final WsActionTester ws = new WsActionTester(new AddUserAction(db.getDbClient(), userSession, newGroupWsSupport())); @Test public void verify_definition() { Action wsDef = ws.getDef(); - assertThat(wsDef.isInternal()).isEqualTo(false); + assertThat(wsDef.isInternal()).isFalse(); assertThat(wsDef.since()).isEqualTo("5.2"); - assertThat(wsDef.isPost()).isEqualTo(true); + assertThat(wsDef.isPost()).isTrue(); assertThat(wsDef.changelog()).extracting(Change::getVersion, Change::getDescription).containsOnly( tuple("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'name' instead.")); } @@ -205,11 +203,11 @@ public class AddUserActionTest { @Test public void fail_to_add_user_to_default_group() { UserDto user = db.users().insertUser(); - GroupDto defaultGroup = db.users().insertDefaultGroup("default"); + GroupDto defaultGroup = db.users().insertDefaultGroup(); loginAsAdmin(); expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Default group 'default' cannot be used to perform this action"); + expectedException.expectMessage("Default group 'sonar-users' cannot be used to perform this action"); newRequest() .setParam("id", defaultGroup.getUuid()) @@ -252,7 +250,7 @@ public class AddUserActionTest { } private GroupWsSupport newGroupWsSupport() { - return new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider)); + return new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient())); } } diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/CreateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/CreateActionTest.java index 4b3237ab7a5..4f04c9c7b73 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/CreateActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/CreateActionTest.java @@ -31,8 +31,6 @@ import org.sonar.db.DbTester; import org.sonar.db.user.GroupDto; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.ServerException; -import org.sonar.server.organization.DefaultOrganization; -import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.usergroups.DefaultGroupFinder; import org.sonar.server.ws.WsActionTester; @@ -49,9 +47,8 @@ public class CreateActionTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); - private CreateAction underTest = new CreateAction(db.getDbClient(), userSession, newGroupWsSupport(), new SequenceUuidFactory()); - private WsActionTester tester = new WsActionTester(underTest); + private final CreateAction underTest = new CreateAction(db.getDbClient(), userSession, newGroupWsSupport(), new SequenceUuidFactory()); + private final WsActionTester tester = new WsActionTester(underTest); @Test public void define_create_action() { @@ -60,7 +57,7 @@ public class CreateActionTest { assertThat(action.key()).isEqualTo("create"); assertThat(action.isPost()).isTrue(); assertThat(action.responseExampleAsString()).isNotEmpty(); - assertThat(action.params()).hasSize(3); + assertThat(action.params()).hasSize(2); assertThat(action.changelog()).extracting(Change::getVersion, Change::getDescription).containsOnly( tuple("8.4", "Field 'id' format in the response changes from integer to string.")); } @@ -165,10 +162,6 @@ public class CreateActionTest { } private GroupWsSupport newGroupWsSupport() { - return new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider)); - } - - private DefaultOrganization getDefaultOrganization() { - return defaultOrganizationProvider.get(); + return new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient())); } } diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java index 360ebffa3ab..4babb854028 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java @@ -36,7 +36,6 @@ import org.sonar.db.qualityprofile.QProfileDto; import org.sonar.db.user.GroupDto; import org.sonar.db.user.UserDto; import org.sonar.server.exceptions.NotFoundException; -import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.usergroups.DefaultGroupFinder; import org.sonar.server.ws.TestRequest; @@ -59,17 +58,16 @@ public class DeleteActionTest { @Rule public DbTester db = DbTester.create(new AlwaysIncreasingSystem2()); - private ComponentDbTester componentTester = new ComponentDbTester(db); - private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); - private WsActionTester ws = new WsActionTester(new DeleteAction(db.getDbClient(), userSession, newGroupWsSupport())); + private final ComponentDbTester componentTester = new ComponentDbTester(db); + private final WsActionTester ws = new WsActionTester(new DeleteAction(db.getDbClient(), userSession, newGroupWsSupport())); @Test public void verify_definition() { Action wsDef = ws.getDef(); - assertThat(wsDef.isInternal()).isEqualTo(false); + assertThat(wsDef.isInternal()).isFalse(); assertThat(wsDef.since()).isEqualTo("5.2"); - assertThat(wsDef.isPost()).isEqualTo(true); + assertThat(wsDef.isPost()).isTrue(); assertThat(wsDef.changelog()).extracting(Change::getVersion, Change::getDescription).containsOnly( tuple("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'name' instead.")); } @@ -129,7 +127,7 @@ public class DeleteActionTest { .setParam("id", group.getUuid()) .execute(); - assertThat(db.countRowsOfTable("groups_users")).isEqualTo(0); + assertThat(db.countRowsOfTable("groups_users")).isZero(); } @Test @@ -145,7 +143,7 @@ public class DeleteActionTest { .setParam("id", group.getUuid()) .execute(); - assertThat(db.countRowsOfTable("group_roles")).isEqualTo(0); + assertThat(db.countRowsOfTable("group_roles")).isZero(); } @Test @@ -164,7 +162,7 @@ public class DeleteActionTest { .setParam("id", group.getUuid()) .execute(); - assertThat(db.countRowsOfTable("perm_templates_groups")).isEqualTo(0); + assertThat(db.countRowsOfTable("perm_templates_groups")).isZero(); } @Test @@ -200,10 +198,10 @@ public class DeleteActionTest { @Test public void fail_to_delete_default_group() { loginAsAdmin(); - GroupDto defaultGroup = db.users().insertDefaultGroup("default"); + GroupDto defaultGroup = db.users().insertDefaultGroup(); expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Default group 'default' cannot be used to perform this action"); + expectedException.expectMessage("Default group 'sonar-users' cannot be used to perform this action"); newRequest() .setParam("id", defaultGroup.getUuid()) @@ -246,7 +244,7 @@ public class DeleteActionTest { db.users().insertDefaultGroup(); GroupDto adminGroup1 = db.users().insertGroup("admins"); db.users().insertPermissionOnGroup(adminGroup1, SYSTEM_ADMIN); - GroupDto adminGroup2 = db.users().insertGroup("admins"); + GroupDto adminGroup2 = db.users().insertGroup("admins2"); db.users().insertPermissionOnGroup(adminGroup2, SYSTEM_ADMIN); UserDto bigBoss = db.users().insertUser(); db.users().insertMember(adminGroup2, bigBoss); @@ -262,12 +260,12 @@ public class DeleteActionTest { .setParam(PARAM_GROUP_ID, adminGroup1.getUuid()) .execute(); } - + private void addAdmin() { UserDto admin = db.users().insertUser(); db.users().insertPermissionOnUser(admin, SYSTEM_ADMIN); } - + private void loginAsAdmin() { userSession.logIn().addPermission(ADMINISTER); } @@ -281,7 +279,7 @@ public class DeleteActionTest { } private GroupWsSupport newGroupWsSupport() { - return new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider)); + return new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient())); } } diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupWsRefTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupWsRefTest.java index 86c9d2ad904..b24f265a96a 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupWsRefTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupWsRefTest.java @@ -41,9 +41,8 @@ public class GroupWsRefTest { @Test public void test_ref_by_name() { - GroupWsRef ref = fromName("ORG1", "the-group"); + GroupWsRef ref = fromName("the-group"); assertThat(ref.hasUuid()).isFalse(); - assertThat(ref.getOrganizationKey()).isEqualTo("ORG1"); assertThat(ref.getName()).isEqualTo("the-group"); assertThat(ref.isAnyone()).isFalse(); } @@ -52,37 +51,37 @@ public class GroupWsRefTest { public void test_equals_and_hashCode() { GroupWsRef refId1 = GroupWsRef.fromUuid("10"); GroupWsRef refId2 = GroupWsRef.fromUuid("11"); - assertThat(refId1.equals(refId1)).isTrue(); - assertThat(refId1.equals(GroupWsRef.fromUuid("10"))).isTrue(); - assertThat(refId1.hashCode()).isEqualTo(GroupWsRef.fromUuid("10").hashCode()); - assertThat(refId1.equals(refId2)).isFalse(); + assertThat(refId1) + .isEqualTo(refId1) + .isEqualTo(GroupWsRef.fromUuid("10")) + .hasSameHashCodeAs(GroupWsRef.fromUuid("10")) + .isNotEqualTo(refId2); - GroupWsRef refName1 = fromName("ORG1", "the-group"); - GroupWsRef refName2 = fromName("ORG1", "the-group2"); - GroupWsRef refName3 = fromName("ORG2", "the-group2"); - assertThat(refName1.equals(refName1)).isTrue(); - assertThat(refName1.equals(fromName("ORG1", "the-group"))).isTrue(); - assertThat(refName1.hashCode()).isEqualTo(fromName("ORG1", "the-group").hashCode()); - assertThat(refName1.equals(refName2)).isFalse(); - assertThat(refName2.equals(refName3)).isFalse(); + GroupWsRef refName1 = fromName("the-group"); + GroupWsRef refName2 = fromName("the-group2"); + GroupWsRef refName3 = fromName("the-group2"); + assertThat(refName1) + .isEqualTo(refName1) + .isEqualTo(fromName("the-group")) + .hasSameHashCodeAs(fromName("the-group")) + .isNotEqualTo(refName2); + assertThat(refName2).isEqualTo(refName3); } @Test public void test_toString() { GroupWsRef refId = GroupWsRef.fromUuid("10"); - assertThat(refId.toString()).isEqualTo("GroupWsRef{uuid=10, organizationKey='null', name='null'}"); + assertThat(refId).hasToString("GroupWsRef{uuid=10, name='null'}"); } @Test public void reference_anyone_by_its_name() { - GroupWsRef ref = GroupWsRef.fromName("my-org", "Anyone"); - assertThat(ref.getOrganizationKey()).isEqualTo("my-org"); + GroupWsRef ref = GroupWsRef.fromName("Anyone"); assertThat(ref.getName()).isEqualTo("Anyone"); assertThat(ref.isAnyone()).isTrue(); // case-insensitive - ref = GroupWsRef.fromName("my-org", "anyone"); - assertThat(ref.getOrganizationKey()).isEqualTo("my-org"); + ref = GroupWsRef.fromName("anyone"); assertThat(ref.getName()).isEqualTo("anyone"); assertThat(ref.isAnyone()).isTrue(); } diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/RemoveUserActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/RemoveUserActionTest.java index bf2efd3c129..7a74834f76d 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/RemoveUserActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/RemoveUserActionTest.java @@ -32,7 +32,6 @@ import org.sonar.db.user.UserDto; import org.sonar.server.exceptions.BadRequestException; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.NotFoundException; -import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.usergroups.DefaultGroupFinder; import org.sonar.server.ws.TestRequest; @@ -55,16 +54,16 @@ public class RemoveUserActionTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - private WsActionTester ws = new WsActionTester( - new RemoveUserAction(db.getDbClient(), userSession, new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient(), TestDefaultOrganizationProvider.from(db))))); + private final WsActionTester ws = new WsActionTester( + new RemoveUserAction(db.getDbClient(), userSession, new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient())))); @Test public void verify_definition() { Action wsDef = ws.getDef(); - assertThat(wsDef.isInternal()).isEqualTo(false); + assertThat(wsDef.isInternal()).isFalse(); assertThat(wsDef.since()).isEqualTo("5.2"); - assertThat(wsDef.isPost()).isEqualTo(true); + assertThat(wsDef.isPost()).isTrue(); assertThat(wsDef.changelog()).extracting(Change::getVersion, Change::getDescription).containsOnly( tuple("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'name' instead.")); } @@ -225,12 +224,12 @@ public class RemoveUserActionTest { @Test public void fail_to_remove_user_from_default_group() { UserDto user = db.users().insertUser(); - GroupDto defaultGroup = db.users().insertDefaultGroup("default"); + GroupDto defaultGroup = db.users().insertDefaultGroup(); db.users().insertMember(defaultGroup, user); loginAsAdmin(); expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Default group 'default' cannot be used to perform this action"); + expectedException.expectMessage("Default group 'sonar-users' cannot be used to perform this action"); newRequest() .setParam("id", defaultGroup.getUuid()) diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/SearchActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/SearchActionTest.java index 79ee101b5d2..74754a72cc3 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/SearchActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/SearchActionTest.java @@ -62,8 +62,8 @@ public class SearchActionTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - private WsActionTester ws = new WsActionTester(new SearchAction(db.getDbClient(), userSession, - new DefaultGroupFinder(db.getDbClient(), TestDefaultOrganizationProvider.from(db)))); + private final WsActionTester ws = new WsActionTester(new SearchAction(db.getDbClient(), userSession, + new DefaultGroupFinder(db.getDbClient()))); @Test public void define_search_action() { @@ -71,7 +71,7 @@ public class SearchActionTest { assertThat(action).isNotNull(); assertThat(action.key()).isEqualTo("search"); assertThat(action.responseExampleAsString()).isNotEmpty(); - assertThat(action.params()).hasSize(5); + assertThat(action.params()).hasSize(4); assertThat(action.changelog()).extracting(Change::getVersion, Change::getDescription).containsOnly( tuple("8.4", "Field 'id' in the response is deprecated. Format changes from integer to string."), tuple("6.4", "Paging response fields moved to a Paging object"), @@ -80,11 +80,11 @@ public class SearchActionTest { @Test public void search_without_parameters() { - insertDefaultGroup(db.getDefaultOrganization(), "users", 0); - insertGroup(db.getDefaultOrganization(), "admins", 0); - insertGroup(db.getDefaultOrganization(), "customer1", 0); - insertGroup(db.getDefaultOrganization(), "customer2", 0); - insertGroup(db.getDefaultOrganization(), "customer3", 0); + insertDefaultGroup(0); + insertGroup("admins", 0); + insertGroup("customer1", 0); + insertGroup("customer2", 0); + insertGroup("customer3", 0); loginAsAdmin(); SearchWsResponse response = call(ws.newRequest()); @@ -94,16 +94,16 @@ public class SearchActionTest { tuple("customer1", "Customer1", 0), tuple("customer2", "Customer2", 0), tuple("customer3", "Customer3", 0), - tuple("users", "Users", 0)); + tuple("sonar-users", "Users", 0)); } @Test public void search_with_members() { - insertDefaultGroup(db.getDefaultOrganization(), "users", 5); - insertGroup(db.getDefaultOrganization(), "admins", 1); - insertGroup(db.getDefaultOrganization(), "customer1", 0); - insertGroup(db.getDefaultOrganization(), "customer2", 4); - insertGroup(db.getDefaultOrganization(), "customer3", 0); + insertDefaultGroup(5); + insertGroup("admins", 1); + insertGroup("customer1", 0); + insertGroup("customer2", 4); + insertGroup("customer3", 0); loginAsAdmin(); SearchWsResponse response = call(ws.newRequest()); @@ -113,16 +113,16 @@ public class SearchActionTest { tuple("customer1", "Customer1", 0), tuple("customer2", "Customer2", 4), tuple("customer3", "Customer3", 0), - tuple("users", "Users", 5)); + tuple("sonar-users", "Users", 5)); } @Test public void search_with_query() { - insertDefaultGroup(db.getDefaultOrganization(), "users", 0); - insertGroup(db.getDefaultOrganization(), "admins", 0); - insertGroup(db.getDefaultOrganization(), "customer%_%/1", 0); - insertGroup(db.getDefaultOrganization(), "customer%_%/2", 0); - insertGroup(db.getDefaultOrganization(), "customer%_%/3", 0); + insertDefaultGroup(0); + insertGroup("admins", 0); + insertGroup("customer%_%/1", 0); + insertGroup("customer%_%/2", 0); + insertGroup("customer%_%/3", 0); loginAsAdmin(); SearchWsResponse response = call(ws.newRequest().setParam(TEXT_QUERY, "tomer%_%/")); @@ -135,11 +135,11 @@ public class SearchActionTest { @Test public void search_with_paging() { - insertDefaultGroup(db.getDefaultOrganization(), "users", 0); - insertGroup(db.getDefaultOrganization(), "admins", 0); - insertGroup(db.getDefaultOrganization(), "customer1", 0); - insertGroup(db.getDefaultOrganization(), "customer2", 0); - insertGroup(db.getDefaultOrganization(), "customer3", 0); + insertDefaultGroup(0); + insertGroup("admins", 0); + insertGroup("customer1", 0); + insertGroup("customer2", 0); + insertGroup("customer3", 0); loginAsAdmin(); SearchWsResponse response = call(ws.newRequest().setParam(PAGE_SIZE, "3")); @@ -153,7 +153,7 @@ public class SearchActionTest { assertThat(response.getPaging()).extracting(Paging::getPageIndex, Paging::getPageSize, Paging::getTotal).containsOnly(2, 3, 5); assertThat(response.getGroupsList()).extracting(Group::getName, Group::getDescription, Group::getMembersCount).containsOnly( tuple("customer3", "Customer3", 0), - tuple("users", "Users", 0)); + tuple("sonar-users", "Users", 0)); response = call(ws.newRequest().setParam(PAGE_SIZE, "3").setParam(PAGE, "3")); assertThat(response.getPaging()).extracting(Paging::getPageIndex, Paging::getPageSize, Paging::getTotal).containsOnly(3, 3, 5); @@ -162,7 +162,7 @@ public class SearchActionTest { @Test public void search_with_fields() { - insertDefaultGroup(db.getDefaultOrganization(), "sonar-users", 0); + insertDefaultGroup(0); loginAsAdmin(); assertThat(call(ws.newRequest()).getGroupsList()).extracting(Group::hasId, Group::hasName, Group::hasDescription, Group::hasMembersCount) @@ -179,23 +179,12 @@ public class SearchActionTest { @Test public void return_default_group() { - db.users().insertDefaultGroup("default"); + db.users().insertDefaultGroup(); loginAsAdmin(); SearchWsResponse response = call(ws.newRequest()); - assertThat(response.getGroupsList()).extracting(Group::getName, Group::getDefault).containsOnly(tuple("default", true)); - } - - @Test - public void fail_when_no_default_group() { - db.users().insertGroup("users"); - loginAsAdmin(); - - expectedException.expect(IllegalStateException.class); - expectedException.expectMessage("Default group cannot be found"); - - call(ws.newRequest()); + assertThat(response.getGroupsList()).extracting(Group::getName, Group::getDefault).containsOnly(tuple("sonar-users", true)); } @Test @@ -208,8 +197,8 @@ public class SearchActionTest { @Test public void test_json_example() { - insertDefaultGroup(db.getDefaultOrganization(), "users", 17); - insertGroup(db.getDefaultOrganization(), "administrators", 2); + insertDefaultGroup(17); + insertGroup("administrators", 2); loginAsAdmin(); String response = ws.newRequest().setMediaType(MediaTypes.JSON).execute().getInput(); @@ -226,7 +215,7 @@ public class SearchActionTest { assertThat(action.isInternal()).isFalse(); assertThat(action.responseExampleAsString()).isNotEmpty(); - assertThat(action.params()).extracting(WebService.Param::key).containsOnly("p", "q", "ps", "f", "organization"); + assertThat(action.params()).extracting(WebService.Param::key).containsOnly("p", "q", "ps", "f"); assertThat(action.param("f").possibleValues()).containsOnly("name", "description", "membersCount"); } @@ -235,13 +224,12 @@ public class SearchActionTest { return request.executeProtobuf(SearchWsResponse.class); } - private void insertDefaultGroup(OrganizationDto org, String name, int numberOfMembers) { - GroupDto group = newGroupDto().setName(name).setDescription(capitalize(name)); - db.users().insertDefaultGroup(group); + private void insertDefaultGroup(int numberOfMembers) { + GroupDto group = db.users().insertDefaultGroup(); addMembers(group, numberOfMembers); } - private void insertGroup(OrganizationDto org, String name, int numberOfMembers) { + private void insertGroup(String name, int numberOfMembers) { GroupDto group = newGroupDto().setName(name).setDescription(capitalize(name)); db.users().insertGroup(group); addMembers(group, numberOfMembers); diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java index 26d43ea4583..bf2b901f406 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java @@ -31,7 +31,6 @@ import org.sonar.db.user.UserDto; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.exceptions.ServerException; -import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.usergroups.DefaultGroupFinder; import org.sonar.server.ws.TestRequest; @@ -50,10 +49,8 @@ public class UpdateActionTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); - private WsActionTester ws = new WsActionTester( - new UpdateAction(db.getDbClient(), userSession, new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider)), - defaultOrganizationProvider)); + private final WsActionTester ws = new WsActionTester( + new UpdateAction(db.getDbClient(), userSession, new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient())))); @Test public void verify_definition() { @@ -282,11 +279,11 @@ public class UpdateActionTest { @Test public void fail_to_update_default_group_name() { - GroupDto group = db.users().insertDefaultGroup("default"); + GroupDto group = db.users().insertDefaultGroup(); loginAsAdmin(); expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Default group 'default' cannot be used to perform this action"); + expectedException.expectMessage("Default group 'sonar-users' cannot be used to perform this action"); newRequest() .setParam("id", group.getUuid()) @@ -296,11 +293,11 @@ public class UpdateActionTest { @Test public void fail_to_update_default_group_description() { - GroupDto group = db.users().insertDefaultGroup("default"); + GroupDto group = db.users().insertDefaultGroup(); loginAsAdmin(); expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Default group 'default' cannot be used to perform this action"); + expectedException.expectMessage("Default group 'sonar-users' cannot be used to perform this action"); newRequest() .setParam("id", group.getUuid()) diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java index 9ad8de4d6d5..1a9be214911 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java @@ -54,17 +54,16 @@ public class UsersActionTest { public DbTester db = DbTester.create(System2.INSTANCE); @Rule public UserSessionRule userSession = UserSessionRule.standalone(); - private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); - private WsActionTester ws = new WsActionTester( - new UsersAction(db.getDbClient(), userSession, new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient(), defaultOrganizationProvider)))); + private final WsActionTester ws = new WsActionTester( + new UsersAction(db.getDbClient(), userSession, new GroupWsSupport(db.getDbClient(), new DefaultGroupFinder(db.getDbClient())))); @Test public void verify_definition() { Action wsDef = ws.getDef(); - assertThat(wsDef.isInternal()).isEqualTo(false); + assertThat(wsDef.isInternal()).isFalse(); assertThat(wsDef.since()).isEqualTo("5.2"); - assertThat(wsDef.isPost()).isEqualTo(false); + assertThat(wsDef.isPost()).isFalse(); assertThat(wsDef.changelog()).extracting(Change::getVersion, Change::getDescription).containsOnly( tuple("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'name' instead.")); } @@ -215,20 +214,20 @@ public class UsersActionTest { .setParam("id", group.getUuid()) .execute() .getInput()).isSimilarTo("{\n" + - " \"users\": [\n" + - " {\"login\": \"ada\", \"name\": \"Ada Lovelace\", \"selected\": true}\n" + - " ]\n" + - "}"); + " \"users\": [\n" + + " {\"login\": \"ada\", \"name\": \"Ada Lovelace\", \"selected\": true}\n" + + " ]\n" + + "}"); assertJson(newUsersRequest() .setParam("id", group.getUuid()) .setParam(Param.SELECTED, SelectionMode.SELECTED.value()) .execute() .getInput()).isSimilarTo("{\n" + - " \"users\": [\n" + - " {\"login\": \"ada\", \"name\": \"Ada Lovelace\", \"selected\": true}\n" + - " ]\n" + - "}"); + " \"users\": [\n" + + " {\"login\": \"ada\", \"name\": \"Ada Lovelace\", \"selected\": true}\n" + + " ]\n" + + "}"); } @Test @@ -270,13 +269,13 @@ public class UsersActionTest { .setParam(Param.SELECTED, SelectionMode.ALL.value()) .execute() .getInput()).isSimilarTo("{\n" + - " \"p\": 1,\n" + - " \"ps\": 1,\n" + - " \"total\": 2,\n" + - " \"users\": [\n" + - " {\"login\": \"ada\", \"name\": \"Ada Lovelace\", \"selected\": true}\n" + - " ]\n" + - "}"); + " \"p\": 1,\n" + + " \"ps\": 1,\n" + + " \"total\": 2,\n" + + " \"users\": [\n" + + " {\"login\": \"ada\", \"name\": \"Ada Lovelace\", \"selected\": true}\n" + + " ]\n" + + "}"); assertJson(newUsersRequest() .setParam("id", group.getUuid()) @@ -285,13 +284,13 @@ public class UsersActionTest { .setParam(Param.SELECTED, SelectionMode.ALL.value()) .execute() .getInput()).isSimilarTo("{\n" + - " \"p\": 2,\n" + - " \"ps\": 1,\n" + - " \"total\": 2,\n" + - " \"users\": [\n" + - " {\"login\": \"grace\", \"name\": \"Grace Hopper\", \"selected\": false}\n" + - " ]\n" + - "}"); + " \"p\": 2,\n" + + " \"ps\": 1,\n" + + " \"total\": 2,\n" + + " \"users\": [\n" + + " {\"login\": \"grace\", \"name\": \"Grace Hopper\", \"selected\": false}\n" + + " ]\n" + + "}"); } @Test @@ -310,50 +309,50 @@ public class UsersActionTest { .setParam(Param.SELECTED, SelectionMode.ALL.value()) .execute() .getInput()).isSimilarTo("{\n" + - " \"users\": [\n" + - " {\"login\": \"ada.login\", \"name\": \"Ada Lovelace\", \"selected\": true},\n" + - " {\"login\": \"grace\", \"name\": \"Grace Hopper\", \"selected\": false}\n" + - " ]\n" + - "}\n"); + " \"users\": [\n" + + " {\"login\": \"ada.login\", \"name\": \"Ada Lovelace\", \"selected\": true},\n" + + " {\"login\": \"grace\", \"name\": \"Grace Hopper\", \"selected\": false}\n" + + " ]\n" + + "}\n"); assertJson(newUsersRequest().setParam("id", group.getUuid()) .setParam("q", ".logi") .execute() .getInput()).isSimilarTo("{\n" + - " \"users\": [\n" + - " {\n" + - " \"login\": \"ada.login\",\n" + - " \"name\": \"Ada Lovelace\",\n" + - " \"selected\": true\n" + - " }\n" + - " ]\n" + - "}\n"); + " \"users\": [\n" + + " {\n" + + " \"login\": \"ada.login\",\n" + + " \"name\": \"Ada Lovelace\",\n" + + " \"selected\": true\n" + + " }\n" + + " ]\n" + + "}\n"); assertJson(newUsersRequest().setParam("id", group.getUuid()) .setParam("q", "OvE") .execute() .getInput()).isSimilarTo("{\n" + - " \"users\": [\n" + - " {\n" + - " \"login\": \"ada.login\",\n" + - " \"name\": \"Ada Lovelace\",\n" + - " \"selected\": true\n" + - " }\n" + - " ]\n" + - "}\n"); + " \"users\": [\n" + + " {\n" + + " \"login\": \"ada.login\",\n" + + " \"name\": \"Ada Lovelace\",\n" + + " \"selected\": true\n" + + " }\n" + + " ]\n" + + "}\n"); assertJson(newUsersRequest().setParam("id", group.getUuid()) .setParam("q", "mail") .execute() .getInput()).isSimilarTo("{\n" + - " \"users\": [\n" + - " {\n" + - " \"login\": \"ada.login\",\n" + - " \"name\": \"Ada Lovelace\",\n" + - " \"selected\": true\n" + - " }\n" + - " ]\n" + - "}\n"); + " \"users\": [\n" + + " {\n" + + " \"login\": \"ada.login\",\n" + + " \"name\": \"Ada Lovelace\",\n" + + " \"selected\": true\n" + + " }\n" + + " ]\n" + + "}\n"); } @Test |