@@ -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) { |
@@ -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; |
@@ -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); | |||
} | |||
} |
@@ -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; |
@@ -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; | |||
} | |||
} |
@@ -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; | |||
} | |||
@@ -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, |
@@ -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); | |||
} | |||
@@ -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); | |||
} | |||
@@ -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); |
@@ -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); | |||
} | |||
@@ -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); | |||
} | |||
@@ -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); | |||
@@ -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); |
@@ -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); | |||
@@ -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); | |||
@@ -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)); |
@@ -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)); |
@@ -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); |
@@ -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)); |
@@ -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)); |
@@ -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)); |
@@ -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)); |
@@ -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)); | |||
@@ -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); | |||
} |
@@ -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"); | |||
} | |||
} |
@@ -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); | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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"); | |||
} | |||