summaryrefslogtreecommitdiffstats
path: root/sonar-db
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2016-05-11 15:16:07 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2016-05-13 10:10:16 +0200
commit9c96c2af00cc05d3bb850264b3c33d4f66e89217 (patch)
treecc393757a319e61c0c6655215468d0b6b102f0fe /sonar-db
parent27aa656e1f6031e54f004c9f91d7919f3cb79722 (diff)
downloadsonarqube-9c96c2af00cc05d3bb850264b3c33d4f66e89217.tar.gz
sonarqube-9c96c2af00cc05d3bb850264b3c33d4f66e89217.zip
SONAR-7274 Return authorized projects in api/qualitygates/search
Diffstat (limited to 'sonar-db')
-rw-r--r--sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationDao.java27
-rw-r--r--sonar-db/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.java6
-rw-r--r--sonar-db/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml2
-rw-r--r--sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java17
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");