Selaa lähdekoodia

SONAR-6474 WS usergroups/delete handles group name

tags/5.2-RC1
Teryk Bellahsene 8 vuotta sitten
vanhempi
commit
5b439efe9f
29 muutettua tiedostoa jossa 254 lisäystä ja 133 poistoa
  1. 6
    18
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/PermissionDependenciesFinder.java
  2. 6
    6
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/CreateAction.java
  3. 29
    26
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/DeleteAction.java
  4. 7
    7
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java
  5. 55
    0
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UserGroupFinder.java
  6. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UserGroupUpdater.java
  7. 3
    1
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UserGroupsModule.java
  8. 9
    3
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddGroupActionTest.java
  9. 3
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java
  10. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java
  11. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveGroupActionTest.java
  12. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveUserActionTest.java
  13. 4
    2
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java
  14. 8
    2
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/TemplateGroupsActionTest.java
  15. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/TemplateUsersActionTest.java
  16. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java
  17. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddGroupToTemplateActionTest.java
  18. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddUserToTemplateActionTest.java
  19. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java
  20. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/DeleteTemplateActionTest.java
  21. 3
    2
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveGroupFromTemplateActionTest.java
  22. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java
  23. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/SetDefaultTemplateActionTest.java
  24. 2
    1
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/UpdateTemplateActionTest.java
  25. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/CreateActionTest.java
  26. 57
    48
      server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java
  27. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java
  28. 35
    0
      server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UserGroupsModuleTest.java
  29. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UserGroupsWsTest.java

+ 6
- 18
server/sonar-server/src/main/java/org/sonar/server/permission/ws/PermissionDependenciesFinder.java Näytä tiedosto

@@ -30,6 +30,7 @@ import org.sonar.db.permission.PermissionTemplateDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.usergroups.ws.WsGroupRef;

import static java.lang.String.format;
@@ -40,11 +41,13 @@ import static org.sonar.server.ws.WsUtils.checkFound;
public class PermissionDependenciesFinder {
private final DbClient dbClient;
private final ComponentFinder componentFinder;
private final UserGroupFinder userGroupFinder;
private final ResourceTypes resourceTypes;

public PermissionDependenciesFinder(DbClient dbClient, ComponentFinder componentFinder, ResourceTypes resourceTypes) {
public PermissionDependenciesFinder(DbClient dbClient, ComponentFinder componentFinder, UserGroupFinder userGroupFinder, ResourceTypes resourceTypes) {
this.dbClient = dbClient;
this.componentFinder = componentFinder;
this.userGroupFinder = userGroupFinder;
this.resourceTypes = resourceTypes;
}

@@ -76,26 +79,11 @@ public class PermissionDependenciesFinder {
*/
@CheckForNull
public GroupDto getGroup(DbSession dbSession, WsGroupRef group) {
Long groupId = group.id();
String groupName = group.name();

if (isAnyone(groupName)) {
if (isAnyone(group.name())) {
return null;
}

GroupDto groupDto = null;

if (groupId != null) {
groupDto = checkFound(dbClient.groupDao().selectById(dbSession, groupId),
format("Group with id '%d' is not found", groupId));
}

if (groupName != null) {
groupDto = checkFound(dbClient.groupDao().selectByName(dbSession, groupName),
format("Group with name '%s' is not found", groupName));
}

return groupDto;
return userGroupFinder.getGroup(dbSession, group);
}

public UserDto getUser(DbSession dbSession, String userLogin) {

+ 6
- 6
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/CreateAction.java Näytä tiedosto

@@ -31,18 +31,18 @@ import org.sonar.db.user.GroupDto;
import org.sonar.server.user.UserSession;

import static org.sonar.db.MyBatis.closeQuietly;
import static org.sonar.server.usergroups.ws.GroupUpdater.DESCRIPTION_MAX_LENGTH;
import static org.sonar.server.usergroups.ws.GroupUpdater.NAME_MAX_LENGTH;
import static org.sonar.server.usergroups.ws.GroupUpdater.PARAM_DESCRIPTION;
import static org.sonar.server.usergroups.ws.GroupUpdater.PARAM_NAME;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.DESCRIPTION_MAX_LENGTH;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.NAME_MAX_LENGTH;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.PARAM_DESCRIPTION;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.PARAM_NAME;

public class CreateAction implements UserGroupsWsAction {

private final DbClient dbClient;
private final UserSession userSession;
private final GroupUpdater groupUpdater;
private final UserGroupUpdater groupUpdater;

public CreateAction(DbClient dbClient, UserSession userSession, GroupUpdater groupUpdater) {
public CreateAction(DbClient dbClient, UserSession userSession, UserGroupUpdater groupUpdater) {
this.dbClient = dbClient;
this.groupUpdater = groupUpdater;
this.userSession = userSession;

+ 29
- 26
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/DeleteAction.java Näytä tiedosto

@@ -19,64 +19,67 @@
*/
package org.sonar.server.usergroups.ws;

import com.google.common.base.Preconditions;
import org.sonar.api.CoreProperties;
import org.sonar.api.config.Settings;
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.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.MyBatis;
import org.sonar.db.user.GroupDto;
import org.sonar.server.db.DbClient;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession;

public class DeleteAction implements UserGroupsWsAction {
import static com.google.common.base.Preconditions.checkArgument;
import static java.lang.String.format;
import static org.sonar.server.usergroups.ws.UserGroupsWsParameters.PARAM_GROUP_ID;
import static org.sonar.server.usergroups.ws.UserGroupsWsParameters.PARAM_GROUP_NAME;

private static final String PARAM_ID = "id";
public class DeleteAction implements UserGroupsWsAction {

private final DbClient dbClient;
private final UserGroupFinder userGroupFinder;
private final UserSession userSession;
private final Settings settings;

public DeleteAction(DbClient dbClient, UserSession userSession, Settings settings) {
public DeleteAction(DbClient dbClient, UserGroupFinder userGroupFinder, UserSession userSession, Settings settings) {
this.dbClient = dbClient;
this.userGroupFinder = userGroupFinder;
this.userSession = userSession;
this.settings = settings;
}

@Override
public void define(NewController context) {
context.createAction("delete")
.setDescription("Delete a group. The default group cannot be deleted. Requires System Administrator permission.")
WebService.NewAction action = context.createAction("delete")
.setDescription(format("Delete a group. The default groups cannot be deleted.<br/>" +
"'%s' or '%s' must be provided." +
"Requires System Administrator permission.",
PARAM_GROUP_ID, PARAM_GROUP_NAME))
.setHandler(this)
.setSince("5.2")
.setPost(true)
.createParam(PARAM_ID)
.setDescription("ID of the group to delete.")
.setRequired(true);
.setPost(true);

UserGroupsWsParameters.createGroupParameters(action);
}

@Override
public void handle(Request request, Response response) throws Exception {
userSession.checkLoggedIn().checkGlobalPermission(GlobalPermissions.SYSTEM_ADMIN);

long groupId = request.mandatoryParamAsLong(PARAM_ID);

WsGroupRef groupRef = WsGroupRef.fromUserGroupsRequest(request);

DbSession dbSession = dbClient.openSession(false);
try {
if (dbClient.groupDao().selectById(dbSession, groupId) == null) {
throw new NotFoundException(String.format("Could not find a group with id=%d", groupId));
}
GroupDto group = userGroupFinder.getGroup(dbSession, groupRef);
long groupId = group.getId();

checkNotTryingToDeleteDefaultGroup(dbSession, groupId);

removeGroupMembers(groupId, dbSession);
removeGroupPermissions(groupId, dbSession);
removeFromPermissionTemplates(groupId, dbSession);
removeGroupMembers(dbSession, groupId);
removeGroupPermissions(dbSession, groupId);
removeFromPermissionTemplates(dbSession, groupId);
dbClient.groupDao().deleteById(dbSession, groupId);

dbSession.commit();
@@ -89,19 +92,19 @@ public class DeleteAction implements UserGroupsWsAction {
private void checkNotTryingToDeleteDefaultGroup(DbSession dbSession, long groupId) {
String defaultGroupName = settings.getString(CoreProperties.CORE_DEFAULT_GROUP);
GroupDto defaultGroup = dbClient.groupDao().selectOrFailByName(dbSession, defaultGroupName);
Preconditions.checkArgument(groupId != defaultGroup.getId(),
String.format("Default group '%s' cannot be deleted", defaultGroupName));
checkArgument(groupId != defaultGroup.getId(),
format("Default group '%s' cannot be deleted", defaultGroupName));
}

private void removeGroupMembers(long groupId, DbSession dbSession) {
private void removeGroupMembers(DbSession dbSession, long groupId) {
dbClient.userGroupDao().deleteMembersByGroupId(dbSession, groupId);
}

private void removeGroupPermissions(long groupId, DbSession dbSession) {
private void removeGroupPermissions(DbSession dbSession, long groupId) {
dbClient.roleDao().deleteGroupRolesByGroupId(dbSession, groupId);
}

private void removeFromPermissionTemplates(long groupId, DbSession dbSession) {
private void removeFromPermissionTemplates(DbSession dbSession, long groupId) {
dbClient.permissionTemplateDao().deleteByGroup(dbSession, groupId);
}
}

+ 7
- 7
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java Näytä tiedosto

@@ -33,19 +33,19 @@ import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession;

import static org.sonar.db.MyBatis.closeQuietly;
import static org.sonar.server.usergroups.ws.GroupUpdater.DESCRIPTION_MAX_LENGTH;
import static org.sonar.server.usergroups.ws.GroupUpdater.NAME_MAX_LENGTH;
import static org.sonar.server.usergroups.ws.GroupUpdater.PARAM_DESCRIPTION;
import static org.sonar.server.usergroups.ws.GroupUpdater.PARAM_ID;
import static org.sonar.server.usergroups.ws.GroupUpdater.PARAM_NAME;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.DESCRIPTION_MAX_LENGTH;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.NAME_MAX_LENGTH;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.PARAM_DESCRIPTION;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.PARAM_ID;
import static org.sonar.server.usergroups.ws.UserGroupUpdater.PARAM_NAME;

public class UpdateAction implements UserGroupsWsAction {

private final DbClient dbClient;
private final UserSession userSession;
private final GroupUpdater groupUpdater;
private final UserGroupUpdater groupUpdater;

public UpdateAction(DbClient dbClient, UserSession userSession, GroupUpdater groupUpdater) {
public UpdateAction(DbClient dbClient, UserSession userSession, UserGroupUpdater groupUpdater) {
this.dbClient = dbClient;
this.groupUpdater = groupUpdater;
this.userSession = userSession;

+ 55
- 0
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UserGroupFinder.java Näytä tiedosto

@@ -0,0 +1,55 @@
/*
* SonarQube, open source software quality management tool.
* Copyright (C) 2008-2014 SonarSource
* mailto:contact AT sonarsource DOT com
*
* SonarQube is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* SonarQube is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

package org.sonar.server.usergroups.ws;

import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.user.GroupDto;

import static java.lang.String.format;
import static org.sonar.server.ws.WsUtils.checkFound;

public class UserGroupFinder {
private final DbClient dbClient;

public UserGroupFinder(DbClient dbClient) {
this.dbClient = dbClient;
}

public GroupDto getGroup(DbSession dbSession, WsGroupRef group) {
Long groupId = group.id();
String groupName = group.name();

GroupDto groupDto = null;

if (groupId != null) {
groupDto = checkFound(dbClient.groupDao().selectById(dbSession, groupId),
format("Group with id '%d' is not found", groupId));
}

if (groupName != null) {
groupDto = checkFound(dbClient.groupDao().selectByName(dbSession, groupName),
format("Group with name '%s' is not found", groupName));
}

return groupDto;
}
}

server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/GroupUpdater.java → server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UserGroupUpdater.java Näytä tiedosto

@@ -29,7 +29,7 @@ import org.sonar.server.db.DbClient;
import org.sonar.server.exceptions.BadRequestException;

@ServerSide
public class GroupUpdater {
public class UserGroupUpdater {

static final String PARAM_ID = "id";
static final String PARAM_DESCRIPTION = "description";
@@ -43,7 +43,7 @@ public class GroupUpdater {

private final DbClient dbClient;

public GroupUpdater(DbClient dbClient) {
public UserGroupUpdater(DbClient dbClient) {
this.dbClient = dbClient;
}


+ 3
- 1
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UserGroupsModule.java Näytä tiedosto

@@ -26,8 +26,10 @@ public class UserGroupsModule extends Module {
@Override
protected void configureModule() {
add(
GroupUpdater.class,
UserGroupsWs.class,
UserGroupUpdater.class,
UserGroupFinder.class,
// actions
SearchAction.class,
CreateAction.class,
DeleteAction.class,

+ 9
- 3
server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddGroupActionTest.java Näytä tiedosto

@@ -42,6 +42,7 @@ import org.sonar.server.exceptions.ServerException;
import org.sonar.server.permission.PermissionChange;
import org.sonar.server.permission.PermissionUpdater;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.WsTester;
import org.sonar.test.DbTests;

@@ -52,12 +53,12 @@ import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonar.db.component.ComponentTesting.newProjectDto;
import static org.sonar.db.component.ComponentTesting.newView;
import static org.sonar.server.permission.ws.AddGroupAction.ACTION;
import static org.sonar.server.permission.ws.PermissionsWs.ENDPOINT;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_GROUP_ID;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_GROUP_NAME;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_PERMISSION;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_PROJECT_KEY;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_PROJECT_ID;
import static org.sonar.server.permission.ws.PermissionsWs.ENDPOINT;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_PROJECT_KEY;

@Category(DbTests.class)
public class AddGroupActionTest {
@@ -79,7 +80,12 @@ public class AddGroupActionTest {
dbClient = db.getDbClient();
ComponentFinder componentFinder = new ComponentFinder(dbClient);
ws = new WsTester(new PermissionsWs(
new AddGroupAction(dbClient, new PermissionChangeBuilder(new PermissionDependenciesFinder(dbClient, componentFinder, resourceTypes)), permissionUpdater)));
new AddGroupAction(dbClient, new PermissionChangeBuilder(new PermissionDependenciesFinder(
dbClient,
componentFinder,
new UserGroupFinder(dbClient),
resourceTypes)),
permissionUpdater)));
userSession.login("admin").setGlobalPermissions(SYSTEM_ADMIN);
}


+ 3
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java Näytä tiedosto

@@ -41,6 +41,7 @@ import org.sonar.server.exceptions.ServerException;
import org.sonar.server.permission.PermissionChange;
import org.sonar.server.permission.PermissionUpdater;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.WsTester;
import org.sonar.test.DbTests;

@@ -81,7 +82,8 @@ public class AddUserActionTest {
dbSession = db.getSession();
ComponentFinder componentFinder = new ComponentFinder(dbClient);
ws = new WsTester(new PermissionsWs(
new AddUserAction(dbClient, permissionUpdater, new PermissionChangeBuilder(new PermissionDependenciesFinder(dbClient, componentFinder, resourceTypes)))));
new AddUserAction(dbClient, permissionUpdater, new PermissionChangeBuilder(new PermissionDependenciesFinder(dbClient, componentFinder, new UserGroupFinder(dbClient),
resourceTypes)))));
userSession.login("admin").setGlobalPermissions(SYSTEM_ADMIN);
}


+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java Näytä tiedosto

@@ -47,6 +47,7 @@ import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.permission.PermissionFinder;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;

@@ -85,7 +86,7 @@ public class GroupsActionTest {
dbClient = db.getDbClient();
dbSession = db.getSession();
PermissionFinder permissionFinder = new PermissionFinder(dbClient);
underTest = new GroupsAction(dbClient, userSession, permissionFinder, new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes));
underTest = new GroupsAction(dbClient, userSession, permissionFinder, new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes));
ws = new WsActionTester(underTest);

userSession.login("login").setGlobalPermissions(SYSTEM_ADMIN);

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveGroupActionTest.java Näytä tiedosto

@@ -42,6 +42,7 @@ import org.sonar.server.exceptions.ServerException;
import org.sonar.server.permission.PermissionChange;
import org.sonar.server.permission.PermissionUpdater;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.WsTester;
import org.sonar.test.DbTests;

@@ -78,7 +79,7 @@ public class RemoveGroupActionTest {
DbClient dbClient = db.getDbClient();
ComponentFinder componentFinder = new ComponentFinder(dbClient);
ws = new WsTester(new PermissionsWs(
new RemoveGroupAction(dbClient, new PermissionChangeBuilder(new PermissionDependenciesFinder(dbClient, componentFinder, resourceTypes)), permissionUpdater)));
new RemoveGroupAction(dbClient, new PermissionChangeBuilder(new PermissionDependenciesFinder(dbClient, componentFinder, new UserGroupFinder(dbClient), resourceTypes)), permissionUpdater)));
userSession.login("admin").setGlobalPermissions(SYSTEM_ADMIN);
}


+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveUserActionTest.java Näytä tiedosto

@@ -41,6 +41,7 @@ import org.sonar.server.exceptions.ServerException;
import org.sonar.server.permission.PermissionChange;
import org.sonar.server.permission.PermissionUpdater;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.WsTester;
import org.sonar.test.DbTests;

@@ -79,7 +80,7 @@ public class RemoveUserActionTest {
dbSession = db.getSession();
ComponentFinder componentFinder = new ComponentFinder(dbClient);
ws = new WsTester(new PermissionsWs(
new RemoveUserAction(dbClient, permissionUpdater, new PermissionChangeBuilder(new PermissionDependenciesFinder(dbClient, componentFinder, resourceTypes)))));
new RemoveUserAction(dbClient, permissionUpdater, new PermissionChangeBuilder(new PermissionDependenciesFinder(dbClient, componentFinder, new UserGroupFinder(dbClient), resourceTypes)))));
userSession.login("admin").setGlobalPermissions(SYSTEM_ADMIN);
}


+ 4
- 2
server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java Näytä tiedosto

@@ -45,6 +45,7 @@ import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.i18n.I18nRule;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.WsActionTester;

import static java.util.Arrays.asList;
@@ -85,7 +86,7 @@ public class SearchProjectPermissionsActionTest {
resourceTypes = mock(ResourceTypes.class);
when(resourceTypes.getRoots()).thenReturn(rootResourceTypes());
ComponentFinder componentFinder = new ComponentFinder(dbClient);
PermissionDependenciesFinder finder = new PermissionDependenciesFinder(dbClient, componentFinder, resourceTypes);
PermissionDependenciesFinder finder = new PermissionDependenciesFinder(dbClient, componentFinder, new UserGroupFinder(dbClient), resourceTypes);
i18n.setProjectPermissions();

dataLoader = new SearchProjectPermissionsDataLoader(dbClient, finder, resourceTypes);
@@ -225,7 +226,8 @@ public class SearchProjectPermissionsActionTest {
insertComponent(newDeveloper("developer-name"));
insertComponent(newProjectDto("project-uuid"));
commit();
dataLoader = new SearchProjectPermissionsDataLoader(dbClient, new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes), resourceTypes);
dataLoader = new SearchProjectPermissionsDataLoader(dbClient, new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes),
resourceTypes);
underTest = new SearchProjectPermissionsAction(dbClient, userSession, i18n, dataLoader);
ws = new WsActionTester(underTest);


+ 8
- 2
server/sonar-server/src/test/java/org/sonar/server/permission/ws/TemplateGroupsActionTest.java Näytä tiedosto

@@ -47,6 +47,7 @@ import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.plugins.MimeTypes;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;
import org.sonarqube.ws.WsPermissions.WsGroupsResponse;
@@ -61,8 +62,8 @@ import static org.sonar.db.permission.PermissionTemplateTesting.newPermissionTem
import static org.sonar.db.permission.PermissionTemplateTesting.newPermissionTemplateGroupDto;
import static org.sonar.db.user.GroupTesting.newGroupDto;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_PERMISSION;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_TEMPLATE_UUID;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_TEMPLATE_NAME;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_TEMPLATE_UUID;
import static org.sonar.test.JsonAssert.assertJson;

@Category(DbTests.class)
@@ -88,7 +89,12 @@ public class TemplateGroupsActionTest {
public void setUp() {
dbClient = db.getDbClient();
dbSession = db.getSession();
underTest = new TemplateGroupsAction(dbClient, userSession, new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes));
underTest = new TemplateGroupsAction(dbClient, userSession,
new PermissionDependenciesFinder(
dbClient,
new ComponentFinder(dbClient),
new UserGroupFinder(dbClient),
resourceTypes));
ws = new WsActionTester(underTest);

userSession.login("login").setGlobalPermissions(SYSTEM_ADMIN);

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/TemplateUsersActionTest.java Näytä tiedosto

@@ -46,6 +46,7 @@ import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;
@@ -80,7 +81,7 @@ public class TemplateUsersActionTest {

@Before
public void setUp() {
PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes);
PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes);
underTest = new TemplateUsersAction(dbClient, userSession, dependenciesFinder);
ws = new WsActionTester(underTest);


+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java Näytä tiedosto

@@ -43,6 +43,7 @@ import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.permission.PermissionFinder;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;

@@ -76,7 +77,7 @@ public class UsersActionTest {
@Before
public void setUp() {
PermissionFinder permissionFinder = new PermissionFinder(dbClient);
PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes);
PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes);
underTest = new UsersAction(dbClient, userSession, permissionFinder, dependenciesFinder);
ws = new WsActionTester(underTest);


+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddGroupToTemplateActionTest.java Näytä tiedosto

@@ -49,6 +49,7 @@ import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.permission.ws.PermissionDependenciesFinder;
import org.sonar.server.permission.ws.WsPermissionParameters;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;
@@ -92,7 +93,7 @@ public class AddGroupToTemplateActionTest {
dbSession = db.getSession();
userSession.login().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);

PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes);
PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes);
ws = new WsActionTester(new AddGroupToTemplateAction(dbClient, dependenciesFinder, userSession));

group = insertGroup(newGroupDto().setName(GROUP_NAME));

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddUserToTemplateActionTest.java Näytä tiedosto

@@ -48,6 +48,7 @@ import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.permission.ws.PermissionDependenciesFinder;
import org.sonar.server.permission.ws.WsPermissionParameters;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;
@@ -87,7 +88,7 @@ public class AddUserToTemplateActionTest {
dbSession = db.getSession();
userSession.login().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);

PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes);
PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes);
ws = new WsActionTester(new AddUserToTemplateAction(dbClient, dependenciesFinder, userSession));

user = insertUser(newUserDto().setLogin(USER_LOGIN));

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java Näytä tiedosto

@@ -58,6 +58,7 @@ import org.sonar.server.permission.PermissionFinder;
import org.sonar.server.permission.PermissionService;
import org.sonar.server.permission.ws.PermissionDependenciesFinder;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester;
@@ -110,7 +111,7 @@ public class ApplyTemplateActionTest {
PermissionFinder permissionFinder = new PermissionFinder(dbClient);
ComponentFinder componentFinder = new ComponentFinder(dbClient);
PermissionService permissionService = new PermissionService(dbClient, repository, issueAuthorizationIndexer, userSession, componentFinder);
PermissionDependenciesFinder permissionDependenciesFinder = new PermissionDependenciesFinder(dbClient, componentFinder, resourceTypes);
PermissionDependenciesFinder permissionDependenciesFinder = new PermissionDependenciesFinder(dbClient, componentFinder, new UserGroupFinder(dbClient), resourceTypes);

ApplyTemplateAction underTest = new ApplyTemplateAction(dbClient, permissionService, permissionDependenciesFinder);
ws = new WsActionTester(underTest);

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/DeleteTemplateActionTest.java Näytä tiedosto

@@ -47,6 +47,7 @@ import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.permission.ws.DeleteTemplateAction;
import org.sonar.server.permission.ws.PermissionDependenciesFinder;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester;
@@ -86,7 +87,7 @@ public class DeleteTemplateActionTest {
dbSession = db.getSession();
defaultTemplatePermissionFinder = mock(DefaultPermissionTemplateFinder.class);
when(defaultTemplatePermissionFinder.getDefaultTemplateUuids()).thenReturn(Collections.<String>emptySet());
PermissionDependenciesFinder finder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes);
PermissionDependenciesFinder finder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes);
ws = new WsActionTester(new DeleteTemplateAction(dbClient, userSession, finder, defaultTemplatePermissionFinder));

permissionTemplate = insertTemplateAndAssociatedPermissions(newPermissionTemplateDto().setUuid(TEMPLATE_UUID));

+ 3
- 2
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveGroupFromTemplateActionTest.java Näytä tiedosto

@@ -48,6 +48,7 @@ import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.permission.ws.PermissionDependenciesFinder;
import org.sonar.server.permission.ws.WsPermissionParameters;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;
@@ -62,8 +63,8 @@ import static org.sonar.db.user.GroupTesting.newGroupDto;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_GROUP_ID;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_GROUP_NAME;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_PERMISSION;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_TEMPLATE_UUID;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_TEMPLATE_NAME;
import static org.sonar.server.permission.ws.WsPermissionParameters.PARAM_TEMPLATE_UUID;

@Category(DbTests.class)
public class RemoveGroupFromTemplateActionTest {
@@ -90,7 +91,7 @@ public class RemoveGroupFromTemplateActionTest {
dbSession = db.getSession();
userSession.login().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);

PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes);
PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes);
ws = new WsActionTester(new RemoveGroupFromTemplateAction(dbClient, dependenciesFinder, userSession));

group = insertGroup(newGroupDto().setName(GROUP_NAME));

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java Näytä tiedosto

@@ -48,6 +48,7 @@ import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.permission.ws.PermissionDependenciesFinder;
import org.sonar.server.permission.ws.WsPermissionParameters;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;
@@ -88,7 +89,7 @@ public class RemoveUserFromTemplateActionTest {
dbSession = db.getSession();
userSession.login().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);

PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes);
PermissionDependenciesFinder dependenciesFinder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes);
ws = new WsActionTester(new RemoveUserFromTemplateAction(dbClient, dependenciesFinder, userSession));

user = insertUser(newUserDto().setLogin(USER_LOGIN));

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/SetDefaultTemplateActionTest.java Näytä tiedosto

@@ -48,6 +48,7 @@ import org.sonar.server.permission.ws.PermissionDependenciesFinder;
import org.sonar.server.platform.PersistentSettings;
import org.sonar.server.platform.ServerSettings;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.DbTests;
@@ -94,7 +95,7 @@ public class SetDefaultTemplateActionTest {

ws = new WsActionTester(new SetDefaultTemplateAction(
dbClient,
new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes),
new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes),
resourceTypes,
persistentSettings,
userSession, i18n));

+ 2
- 1
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/UpdateTemplateActionTest.java Näytä tiedosto

@@ -42,6 +42,7 @@ import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.permission.ws.PermissionDependenciesFinder;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.ws.UserGroupFinder;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester;
@@ -80,7 +81,7 @@ public class UpdateTemplateActionTest {

dbClient = db.getDbClient();
dbSession = db.getSession();
PermissionDependenciesFinder finder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), resourceTypes);
PermissionDependenciesFinder finder = new PermissionDependenciesFinder(dbClient, new ComponentFinder(dbClient), new UserGroupFinder(dbClient), resourceTypes);

ws = new WsActionTester(new UpdateTemplateAction(dbClient, userSession, system, finder));


+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/CreateActionTest.java Näytä tiedosto

@@ -67,7 +67,7 @@ public class CreateActionTest {

DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), groupDao);

tester = new WsTester(new UserGroupsWs(new CreateAction(dbClient, userSession, new GroupUpdater(dbClient))));
tester = new WsTester(new UserGroupsWs(new CreateAction(dbClient, userSession, new UserGroupUpdater(dbClient))));

session = dbClient.openSession(false);
}

+ 57
- 48
server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java Näytä tiedosto

@@ -20,7 +20,6 @@

package org.sonar.server.usergroups.ws;

import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -30,6 +29,7 @@ import org.sonar.api.config.Settings;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.permission.PermissionTemplateDao;
@@ -39,121 +39,126 @@ import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.user.RoleDao;
import org.sonar.db.user.UserGroupDao;
import org.sonar.db.user.UserGroupDto;
import org.sonar.server.db.DbClient;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsTester;
import org.sonar.test.DbTests;

import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.db.user.GroupTesting.newGroupDto;
import static org.sonar.server.usergroups.ws.UserGroupsWsParameters.PARAM_GROUP_NAME;

@Category(DbTests.class)
public class DeleteActionTest {

@Rule
public DbTester dbTester = DbTester.create(System2.INSTANCE);

public DbTester db = DbTester.create(System2.INSTANCE);
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();

private WsTester ws;

private GroupDao groupDao;

private UserGroupDao userGroupDao;

private RoleDao roleDao;

private PermissionTemplateDao permissionTemplateDao;

private DbSession session;

private DbSession dbSession;
private Long defaultGroupId;

@Before
public void setUp() {
dbTester.truncateTables();

groupDao = new GroupDao(System2.INSTANCE);
userGroupDao = new UserGroupDao();
roleDao = new RoleDao();
permissionTemplateDao = new PermissionTemplateDao(dbTester.myBatis(), System2.INSTANCE);

DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(),
groupDao, userGroupDao, roleDao, permissionTemplateDao);

session = dbClient.openSession(false);
DbClient dbClient = db.getDbClient();
groupDao = dbClient.groupDao();
userGroupDao = dbClient.userGroupDao();
roleDao = dbClient.roleDao();
permissionTemplateDao = dbClient.permissionTemplateDao();
dbSession = db.getSession();

Settings settings = new Settings().setProperty(CoreProperties.CORE_DEFAULT_GROUP, CoreProperties.CORE_DEFAULT_GROUP_DEFAULT_VALUE);
GroupDto defaultGroup = groupDao.insert(session, new GroupDto().setName(CoreProperties.CORE_DEFAULT_GROUP_DEFAULT_VALUE));
GroupDto defaultGroup = groupDao.insert(dbSession, new GroupDto().setName(CoreProperties.CORE_DEFAULT_GROUP_DEFAULT_VALUE));
defaultGroupId = defaultGroup.getId();
session.commit();
ws = new WsTester(new UserGroupsWs(new DeleteAction(dbClient, userSession, settings)));
}
@After
public void after() {
session.close();
dbSession.commit();
ws = new WsTester(new UserGroupsWs(
new DeleteAction(
dbClient,
new UserGroupFinder(dbClient),
userSession,
settings)));
}

@Test
public void delete_simple() throws Exception {
GroupDto group = groupDao.insert(session, new GroupDto().setName("to-delete"));
session.commit();
GroupDto group = groupDao.insert(dbSession, new GroupDto().setName("to-delete"));
dbSession.commit();

loginAsAdmin();
ws.newPostRequest("api/usergroups", "delete")
newRequest()
.setParam("id", group.getId().toString())
.execute().assertNoContent();
}

@Test
public void delete_with_group_name() throws Exception {
GroupDto group = groupDao.insert(dbSession, newGroupDto().setName("group_name"));
assertThat(groupDao.selectById(dbSession, group.getId())).isNotNull();
dbSession.commit();

loginAsAdmin();
newRequest()
.setParam(PARAM_GROUP_NAME, group.getName())
.execute().assertNoContent();

assertThat(groupDao.selectById(dbSession, group.getId())).isNull();
}

@Test
public void delete_with_members() throws Exception {
GroupDto group = groupDao.insert(session, new GroupDto().setName("to-delete"));
userGroupDao.insert(session, new UserGroupDto().setGroupId(group.getId()).setUserId(42L));
session.commit();
GroupDto group = groupDao.insert(dbSession, new GroupDto().setName("to-delete"));
userGroupDao.insert(dbSession, new UserGroupDto().setGroupId(group.getId()).setUserId(42L));
dbSession.commit();

loginAsAdmin();
ws.newPostRequest("api/usergroups", "delete")
newRequest()
.setParam("id", group.getId().toString())
.execute().assertNoContent();

assertThat(dbTester.select("SELECT group_id FROM groups_users")).isEmpty();
assertThat(db.select("SELECT group_id FROM groups_users")).isEmpty();
}

@Test
public void delete_with_permissions() throws Exception {
GroupDto group = groupDao.insert(session, new GroupDto().setName("to-delete"));
roleDao.insertGroupRole(session, new GroupRoleDto().setGroupId(group.getId()).setResourceId(42L).setRole(UserRole.ADMIN));
session.commit();
GroupDto group = groupDao.insert(dbSession, new GroupDto().setName("to-delete"));
roleDao.insertGroupRole(dbSession, new GroupRoleDto().setGroupId(group.getId()).setResourceId(42L).setRole(UserRole.ADMIN));
dbSession.commit();

loginAsAdmin();
ws.newPostRequest("api/usergroups", "delete")
newRequest()
.setParam("id", group.getId().toString())
.execute().assertNoContent();

assertThat(dbTester.select("SELECT group_id FROM group_roles")).isEmpty();
assertThat(db.select("SELECT group_id FROM group_roles")).isEmpty();
}

@Test
public void delete_with_permission_templates() throws Exception {
GroupDto group = groupDao.insert(session, new GroupDto().setName("to-delete"));
GroupDto group = groupDao.insert(dbSession, new GroupDto().setName("to-delete"));
permissionTemplateDao.insertGroupPermission(42L, group.getId(), UserRole.ADMIN);
session.commit();
dbSession.commit();

loginAsAdmin();
ws.newPostRequest("api/usergroups", "delete")
newRequest()
.setParam("id", group.getId().toString())
.execute().assertNoContent();

assertThat(dbTester.select("SELECT group_id FROM perm_templates_groups")).isEmpty();
assertThat(db.select("SELECT group_id FROM perm_templates_groups")).isEmpty();
}

@Test(expected = NotFoundException.class)
public void not_found() throws Exception {
loginAsAdmin();
ws.newPostRequest("api/usergroups", "delete")
newRequest()
.setParam("id", String.valueOf(defaultGroupId + 1L))
.execute();
}
@@ -161,7 +166,7 @@ public class DeleteActionTest {
@Test(expected = IllegalArgumentException.class)
public void cannot_delete_default_group() throws Exception {
loginAsAdmin();
ws.newPostRequest("api/usergroups", "delete")
newRequest()
.setParam("id", defaultGroupId.toString())
.execute();
}
@@ -169,4 +174,8 @@ public class DeleteActionTest {
private void loginAsAdmin() {
userSession.login("admin").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
}

private WsTester.TestRequest newRequest() {
return ws.newPostRequest("api/usergroups", "delete");
}
}

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java Näytä tiedosto

@@ -76,7 +76,7 @@ public class UpdateActionTest {
DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(),
groupDao, new GroupMembershipDao(dbTester.myBatis()), userGroupDao);

tester = new WsTester(new UserGroupsWs(new UpdateAction(dbClient, userSession, new GroupUpdater(dbClient))));
tester = new WsTester(new UserGroupsWs(new UpdateAction(dbClient, userSession, new UserGroupUpdater(dbClient))));

session = dbClient.openSession(false);
}

+ 35
- 0
server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UserGroupsModuleTest.java Näytä tiedosto

@@ -0,0 +1,35 @@
/*
* SonarQube, open source software quality management tool.
* Copyright (C) 2008-2014 SonarSource
* mailto:contact AT sonarsource DOT com
*
* SonarQube is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* SonarQube is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

package org.sonar.server.usergroups.ws;

import org.junit.Test;
import org.sonar.core.platform.ComponentContainer;

import static org.assertj.core.api.Assertions.assertThat;

public class UserGroupsModuleTest {
@Test
public void verify_count_of_added_components() {
ComponentContainer container = new ComponentContainer();
new UserGroupsModule().configure(container);
assertThat(container.size()).isEqualTo(12);
}
}

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UserGroupsWsTest.java Näytä tiedosto

@@ -41,7 +41,7 @@ public class UserGroupsWsTest {
public void setUp() {
WsTester tester = new WsTester(new UserGroupsWs(
new SearchAction(mock(DbClient.class)),
new CreateAction(mock(DbClient.class), mock(UserSession.class), mock(GroupUpdater.class))));
new CreateAction(mock(DbClient.class), mock(UserSession.class), mock(UserGroupUpdater.class))));
controller = tester.controller("api/usergroups");
}


Loading…
Peruuta
Tallenna