diff options
Diffstat (limited to 'sonar-db')
7 files changed, 68 insertions, 33 deletions
diff --git a/sonar-db/src/main/java/org/sonar/db/organization/DefaultTemplates.java b/sonar-db/src/main/java/org/sonar/db/organization/DefaultTemplates.java index 6a7b4ef288c..c6a0a1a619b 100644 --- a/sonar-db/src/main/java/org/sonar/db/organization/DefaultTemplates.java +++ b/sonar-db/src/main/java/org/sonar/db/organization/DefaultTemplates.java @@ -25,35 +25,39 @@ import javax.annotation.Nullable; import static java.util.Objects.requireNonNull; public class DefaultTemplates { - private String project; - private String view; + private String projectUuid; + private String viewUuid; - @CheckForNull - public String getProject() { - return project; + public String getProjectUuid() { + checkProjectNotNull(this.projectUuid); + return this.projectUuid; } - public DefaultTemplates setProject(String project) { - requireNonNull(project, "project default template can't be null"); - this.project = project; + public DefaultTemplates setProjectUuid(String projectUuid) { + checkProjectNotNull(projectUuid); + this.projectUuid = projectUuid; return this; } + private static void checkProjectNotNull(String project) { + requireNonNull(project, "defaultTemplates.project can't be null"); + } + @CheckForNull - public String getView() { - return view; + public String getViewUuid() { + return viewUuid; } - public DefaultTemplates setView(@Nullable String view) { - this.view = view; + public DefaultTemplates setViewUuid(@Nullable String viewUuid) { + this.viewUuid = viewUuid; return this; } @Override public String toString() { return "DefaultTemplates{" + - "project='" + project + '\'' + - ", view='" + view + '\'' + + "projectUuid='" + projectUuid + '\'' + + ", viewUuid='" + viewUuid + '\'' + '}'; } } diff --git a/sonar-db/src/main/java/org/sonar/db/organization/OrganizationDao.java b/sonar-db/src/main/java/org/sonar/db/organization/OrganizationDao.java index 17ee6afe7a8..04ead578809 100644 --- a/sonar-db/src/main/java/org/sonar/db/organization/OrganizationDao.java +++ b/sonar-db/src/main/java/org/sonar/db/organization/OrganizationDao.java @@ -115,6 +115,6 @@ public class OrganizationDao implements Dao { private static void checkDefaultTemplates(DefaultTemplates defaultTemplates) { requireNonNull(defaultTemplates, "defaultTemplates can't be null"); - requireNonNull(defaultTemplates.getProject(), "defaultTemplates.project can't be null"); + requireNonNull(defaultTemplates.getProjectUuid()); } } diff --git a/sonar-db/src/main/resources/org/sonar/db/organization/OrganizationMapper.xml b/sonar-db/src/main/resources/org/sonar/db/organization/OrganizationMapper.xml index 15de61bfaaa..6b39c43e7f0 100644 --- a/sonar-db/src/main/resources/org/sonar/db/organization/OrganizationMapper.xml +++ b/sonar-db/src/main/resources/org/sonar/db/organization/OrganizationMapper.xml @@ -14,8 +14,8 @@ </sql> <sql id="defaultTemplatesColumns"> - org.default_perm_template_project as "project", - org.default_perm_template_view as "view" + org.default_perm_template_project as "projectUuid", + org.default_perm_template_view as "viewUuid" </sql> <select id="selectByUuid" resultType="Organization"> @@ -139,8 +139,8 @@ <update id="updateDefaultTemplates"> update organizations set - default_perm_template_project = #{defaultTemplates.project, jdbcType=VARCHAR}, - default_perm_template_view = #{defaultTemplates.view, jdbcType=VARCHAR}, + default_perm_template_project = #{defaultTemplates.projectUuid, jdbcType=VARCHAR}, + default_perm_template_view = #{defaultTemplates.viewUuid, jdbcType=VARCHAR}, updated_at = #{now, jdbcType=BIGINT} where uuid = #{organizationUuid, jdbcType=VARCHAR} diff --git a/sonar-db/src/test/java/org/sonar/db/organization/DefaultTemplatesTest.java b/sonar-db/src/test/java/org/sonar/db/organization/DefaultTemplatesTest.java index bc1edd302be..51ed0bdf6ef 100644 --- a/sonar-db/src/test/java/org/sonar/db/organization/DefaultTemplatesTest.java +++ b/sonar-db/src/test/java/org/sonar/db/organization/DefaultTemplatesTest.java @@ -34,22 +34,30 @@ public class DefaultTemplatesTest { @Test public void setProject_throws_NPE_if_argument_is_null() { expectedException.expect(NullPointerException.class); - expectedException.expectMessage("project default template can't be null"); + expectedException.expectMessage("defaultTemplates.project can't be null"); - underTest.setProject(null); + underTest.setProjectUuid(null); + } + + @Test + public void getProject_throws_NPE_if_project_is_null() { + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("defaultTemplates.project can't be null"); + + underTest.getProjectUuid(); } @Test public void setView_accepts_null() { - underTest.setView(null); + underTest.setViewUuid(null); } @Test public void check_toString() { - assertThat(underTest.toString()).isEqualTo("DefaultTemplates{project='null', view='null'}"); + assertThat(underTest.toString()).isEqualTo("DefaultTemplates{projectUuid='null', viewUuid='null'}"); underTest - .setProject("a project") - .setView("a view"); - assertThat(underTest.toString()).isEqualTo("DefaultTemplates{project='a project', view='a view'}"); + .setProjectUuid("a project") + .setViewUuid("a view"); + assertThat(underTest.toString()).isEqualTo("DefaultTemplates{projectUuid='a project', viewUuid='a view'}"); } } diff --git a/sonar-db/src/test/java/org/sonar/db/organization/OrganizationDaoTest.java b/sonar-db/src/test/java/org/sonar/db/organization/OrganizationDaoTest.java index b4b3f2c9ae5..7f4d8b79fc0 100644 --- a/sonar-db/src/test/java/org/sonar/db/organization/OrganizationDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/organization/OrganizationDaoTest.java @@ -460,7 +460,7 @@ public class OrganizationDaoTest { @Test public void getDefaultTemplates_returns_data_when_project_default_templates_column_is_not_null() { insertOrganization(ORGANIZATION_DTO_1); - underTest.setDefaultTemplates(dbSession, ORGANIZATION_DTO_1.getUuid(), new DefaultTemplates().setProject("foo")); + underTest.setDefaultTemplates(dbSession, ORGANIZATION_DTO_1.getUuid(), new DefaultTemplates().setProjectUuid("foo")); verifyGetDefaultTemplates(ORGANIZATION_DTO_1, "foo", null); } @@ -492,7 +492,7 @@ public class OrganizationDaoTest { @Test public void getDefaultTemplates_is_case_sensitive() { insertOrganization(ORGANIZATION_DTO_1); - underTest.setDefaultTemplates(dbSession, ORGANIZATION_DTO_1.getUuid(), new DefaultTemplates().setProject("foo").setView("bar")); + underTest.setDefaultTemplates(dbSession, ORGANIZATION_DTO_1.getUuid(), new DefaultTemplates().setProjectUuid("foo").setViewUuid("bar")); assertThat(underTest.getDefaultTemplates(dbSession, ORGANIZATION_DTO_1.getUuid().toUpperCase(Locale.ENGLISH))) .isEmpty(); @@ -503,7 +503,7 @@ public class OrganizationDaoTest { expectedException.expect(NullPointerException.class); expectedException.expectMessage("uuid can't be null"); - underTest.setDefaultTemplates(dbSession, null, new DefaultTemplates().setProject("p")); + underTest.setDefaultTemplates(dbSession, null, new DefaultTemplates().setProjectUuid("p")); } @Test @@ -527,7 +527,7 @@ public class OrganizationDaoTest { expectedException.expect(NullPointerException.class); expectedException.expectMessage("defaultTemplates.project can't be null"); - underTest.setDefaultTemplates(dbSession, "uuid", new DefaultTemplates().setView("foo")); + underTest.setDefaultTemplates(dbSession, "uuid", new DefaultTemplates().setViewUuid("foo")); } @Test @@ -731,7 +731,7 @@ public class OrganizationDaoTest { } private void setDefaultTemplate(OrganizationDto organizationDto1, @Nullable String project, @Nullable String view) { - underTest.setDefaultTemplates(dbSession, organizationDto1.getUuid(), new DefaultTemplates().setProject(project).setView(view)); + underTest.setDefaultTemplates(dbSession, organizationDto1.getUuid(), new DefaultTemplates().setProjectUuid(project).setViewUuid(view)); dbSession.commit(); } @@ -792,7 +792,7 @@ public class OrganizationDaoTest { Optional<DefaultTemplates> optional = underTest.getDefaultTemplates(dbSession, organizationDto.getUuid()); assertThat(optional).isNotEmpty(); DefaultTemplates defaultTemplates = optional.get(); - assertThat(defaultTemplates.getProject()).isEqualTo(expectedProject); - assertThat(defaultTemplates.getView()).isEqualTo(expectedView); + assertThat(defaultTemplates.getProjectUuid()).isEqualTo(expectedProject); + assertThat(defaultTemplates.getViewUuid()).isEqualTo(expectedView); } } diff --git a/sonar-db/src/test/java/org/sonar/db/organization/OrganizationDbTester.java b/sonar-db/src/test/java/org/sonar/db/organization/OrganizationDbTester.java index f6e47333181..15f8c312626 100644 --- a/sonar-db/src/test/java/org/sonar/db/organization/OrganizationDbTester.java +++ b/sonar-db/src/test/java/org/sonar/db/organization/OrganizationDbTester.java @@ -19,6 +19,7 @@ */ package org.sonar.db.organization; +import javax.annotation.Nullable; import org.sonar.db.DbSession; import org.sonar.db.DbTester; @@ -53,4 +54,12 @@ public class OrganizationDbTester { dbSession.commit(); return dto; } + + public void setDefaultTemplates(OrganizationDto defaultOrganization, + String projectDefaultTemplateUuid, @Nullable String viewDefaultTemplateUuid) { + DbSession dbSession = dbTester.getSession(); + dbTester.getDbClient().organizationDao().setDefaultTemplates(dbSession, defaultOrganization.getUuid(), new DefaultTemplates().setProjectUuid(projectDefaultTemplateUuid).setViewUuid(viewDefaultTemplateUuid)); + dbSession.commit(); + } + } diff --git a/sonar-db/src/test/java/org/sonar/db/permission/template/PermissionTemplateDbTester.java b/sonar-db/src/test/java/org/sonar/db/permission/template/PermissionTemplateDbTester.java index b2677425ef9..9f1cfb3e28c 100644 --- a/sonar-db/src/test/java/org/sonar/db/permission/template/PermissionTemplateDbTester.java +++ b/sonar-db/src/test/java/org/sonar/db/permission/template/PermissionTemplateDbTester.java @@ -25,6 +25,8 @@ import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.DbTester; import org.sonar.db.organization.OrganizationDto; +import org.sonar.db.user.GroupDto; +import org.sonar.db.user.UserDto; import static org.sonar.db.permission.template.PermissionTemplateTesting.newPermissionTemplateCharacteristicDto; import static org.sonar.db.permission.template.PermissionTemplateTesting.newPermissionTemplateDto; @@ -55,11 +57,23 @@ public class PermissionTemplateDbTester { return templateInDb; } + public void addGroupToTemplate(PermissionTemplateDto permissionTemplate, GroupDto group, String permission) { + addGroupToTemplate(permissionTemplate.getId(), group.getId(), permission); + } + public void addGroupToTemplate(long templateId, @Nullable Long groupId, String permission) { dbClient.permissionTemplateDao().insertGroupPermission(dbSession, templateId, groupId, permission); db.commit(); } + public void addAnyoneToTemplate(PermissionTemplateDto permissionTemplate, String permission) { + addGroupToTemplate(permissionTemplate.getId(), null, permission); + } + + public void addUserToTemplate(PermissionTemplateDto permissionTemplate, UserDto user, String permission) { + addUserToTemplate(permissionTemplate.getId(), user.getId(), permission); + } + public void addUserToTemplate(long templateId, long userId, String permission) { dbClient.permissionTemplateDao().insertUserPermission(dbSession, templateId, userId, permission); db.commit(); |