diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2016-05-11 15:16:07 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2016-05-13 10:10:16 +0200 |
commit | 9c96c2af00cc05d3bb850264b3c33d4f66e89217 (patch) | |
tree | cc393757a319e61c0c6655215468d0b6b102f0fe /sonar-db | |
parent | 27aa656e1f6031e54f004c9f91d7919f3cb79722 (diff) | |
download | sonarqube-9c96c2af00cc05d3bb850264b3c33d4f66e89217.tar.gz sonarqube-9c96c2af00cc05d3bb850264b3c33d4f66e89217.zip |
SONAR-7274 Return authorized projects in api/qualitygates/search
Diffstat (limited to 'sonar-db')
4 files changed, 16 insertions, 36 deletions
diff --git a/sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java b/sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java index 0d541008b5a..c984fbe315c 100644 --- a/sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java +++ b/sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java @@ -19,36 +19,15 @@ */ package org.sonar.db.qualitygate; -import com.google.common.annotations.VisibleForTesting; -import com.google.common.collect.ImmutableMap; import java.util.List; -import java.util.Map; -import org.apache.ibatis.session.RowBounds; import org.apache.ibatis.session.SqlSession; import org.sonar.db.Dao; -import org.sonar.db.MyBatis; +import org.sonar.db.DbSession; public class ProjectQgateAssociationDao implements Dao { - private final MyBatis mybatis; - - public ProjectQgateAssociationDao(MyBatis mybatis) { - this.mybatis = mybatis; - } - - public List<ProjectQgateAssociationDto> selectProjects(ProjectQgateAssociationQuery query, Long gateId, int offset, int limit) { - SqlSession session = mybatis.openSession(false); - try { - Map<String, Object> params = ImmutableMap.of("query", query, "gateId", gateId.toString()); - return mapper(session).selectProjects(params, new RowBounds(offset, limit)); - } finally { - MyBatis.closeQuietly(session); - } - } - - @VisibleForTesting - List<ProjectQgateAssociationDto> selectProjects(ProjectQgateAssociationQuery query, Long gateId) { - return selectProjects(query, gateId, 0, Integer.MAX_VALUE); + public List<ProjectQgateAssociationDto> selectProjects(DbSession dbSession, ProjectQgateAssociationQuery query) { + return mapper(dbSession).selectProjects(query); } private static ProjectQgateAssociationMapper mapper(SqlSession session) { diff --git a/sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java b/sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java index bdd5a84c125..5b9d9462d2a 100644 --- a/sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java +++ b/sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java @@ -20,12 +20,10 @@ package org.sonar.db.qualitygate; import java.util.List; -import java.util.Map; -import org.apache.ibatis.session.RowBounds; +import org.apache.ibatis.annotations.Param; public interface ProjectQgateAssociationMapper { - List<ProjectQgateAssociationDto> selectProjects(ProjectQgateAssociationQuery query); + List<ProjectQgateAssociationDto> selectProjects(@Param("query") ProjectQgateAssociationQuery query); - List<ProjectQgateAssociationDto> selectProjects(Map<String, Object> params, RowBounds rowBounds); } diff --git a/sonar-db/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml b/sonar-db/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml index bbcf7b52121..76f7654ad0b 100644 --- a/sonar-db/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml +++ b/sonar-db/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml @@ -10,7 +10,7 @@ JOIN resource_index ind ON ind.root_project_id=proj.id </if> LEFT JOIN properties prop ON prop.resource_id=proj.id AND prop.prop_key='sonar.qualitygate' AND prop.text_value LIKE - #{gateId} + #{query.gateId} <where> <choose> <when test="query.membership() == 'selected'"> diff --git a/sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java b/sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java index cc83b038bcc..fbf6e2812b0 100644 --- a/sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java @@ -23,6 +23,7 @@ import java.util.List; import org.junit.Rule; import org.junit.Test; import org.sonar.api.utils.System2; +import org.sonar.db.DbSession; import org.sonar.db.DbTester; import static org.assertj.core.api.Assertions.assertThat; @@ -33,6 +34,8 @@ public class ProjectQgateAssociationDaoTest { @Rule public DbTester dbTester = DbTester.create(System2.INSTANCE); + DbSession dbSession = dbTester.getSession(); + ProjectQgateAssociationDao dao = dbTester.getDbClient().projectQgateAssociationDao(); @Test @@ -40,7 +43,7 @@ public class ProjectQgateAssociationDaoTest { dbTester.prepareDbUnit(getClass(), "shared.xml"); ProjectQgateAssociationQuery query = ProjectQgateAssociationQuery.builder().gateId("42").build(); - List<ProjectQgateAssociationDto> result = dao.selectProjects(query, 42L); + List<ProjectQgateAssociationDto> result = dao.selectProjects(dbSession, query); assertThat(result).hasSize(5); } @@ -48,22 +51,22 @@ public class ProjectQgateAssociationDaoTest { public void select_projects_by_query() { dbTester.prepareDbUnit(getClass(), "shared.xml"); - assertThat(dao.selectProjects(ProjectQgateAssociationQuery.builder().gateId("42").membership(ProjectQgateAssociationQuery.IN).build(), 42L)).hasSize(3); - assertThat(dao.selectProjects(ProjectQgateAssociationQuery.builder().gateId("42").membership(ProjectQgateAssociationQuery.OUT).build(), 42L)).hasSize(2); + assertThat(dao.selectProjects(dbSession, ProjectQgateAssociationQuery.builder().gateId("42").membership(ProjectQgateAssociationQuery.IN).build())).hasSize(3); + assertThat(dao.selectProjects(dbSession, ProjectQgateAssociationQuery.builder().gateId("42").membership(ProjectQgateAssociationQuery.OUT).build())).hasSize(2); } @Test public void search_by_project_name() { dbTester.prepareDbUnit(getClass(), "shared.xml"); - List<ProjectQgateAssociationDto> result = dao.selectProjects(ProjectQgateAssociationQuery.builder().gateId("42").projectSearch("one").build(), 42L); + List<ProjectQgateAssociationDto> result = dao.selectProjects(dbSession, ProjectQgateAssociationQuery.builder().gateId("42").projectSearch("one").build()); assertThat(result).hasSize(1); assertThat(result.get(0).getName()).isEqualTo("Project One"); - result = dao.selectProjects(ProjectQgateAssociationQuery.builder().gateId("42").projectSearch("one").build(), 42L); + result = dao.selectProjects(dbSession, ProjectQgateAssociationQuery.builder().gateId("42").projectSearch("one").build()); assertThat(result).hasSize(1); - result = dao.selectProjects(ProjectQgateAssociationQuery.builder().gateId("42").projectSearch("project").build(), 42L); + result = dao.selectProjects(dbSession, ProjectQgateAssociationQuery.builder().gateId("42").projectSearch("project").build()); assertThat(result).hasSize(2); } @@ -71,7 +74,7 @@ public class ProjectQgateAssociationDaoTest { public void should_be_sorted_by_project_name() { dbTester.prepareDbUnit(getClass(), "shared.xml"); - List<ProjectQgateAssociationDto> result = dao.selectProjects(ProjectQgateAssociationQuery.builder().gateId("42").build(), 42L); + List<ProjectQgateAssociationDto> result = dao.selectProjects(dbSession, ProjectQgateAssociationQuery.builder().gateId("42").build()); assertThat(result).hasSize(5); assertThat(result.get(0).getName()).isEqualTo("Project Five"); assertThat(result.get(1).getName()).isEqualTo("Project Four"); |