]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-12512 Decorate PR using configuration from new ALM_SETTINGS tables
authorPierre Guillot <pierre.guillot@sonarsource.com>
Thu, 17 Oct 2019 08:25:22 +0000 (10:25 +0200)
committersonartech <sonartech@sonarsource.com>
Wed, 6 Nov 2019 09:04:27 +0000 (10:04 +0100)
server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/AlmSettingDao.java
server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/AlmSettingMapper.java
server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ProjectAlmSettingDao.java
server/sonar-db-dao/src/main/resources/org/sonar/db/alm/setting/AlmSettingMapper.xml
server/sonar-db-dao/src/test/java/org/sonar/db/alm/setting/AlmSettingDaoTest.java

index d416dcb72f7510d59e3cc55324f46f030a313514..db74385500574d69c62501bfdd2f22b8a2e62e7f 100644 (file)
@@ -57,6 +57,11 @@ public class AlmSettingDao implements Dao {
     return Optional.ofNullable(getMapper(dbSession).selectByKey(key));
   }
 
+  public List<AlmSettingDto> selectByAlm(DbSession dbSession, ALM alm) {
+    return getMapper(dbSession).selectByAlm(alm.getId());
+  }
+
+
   public List<AlmSettingDto> selectAll(DbSession dbSession) {
     return getMapper(dbSession).selectAll();
   }
index 584cd4a648ca08f11052b756f56bf3df8e03012e..7686c99b9e898ece9ddf853f911758678fbbf4b6 100644 (file)
@@ -31,6 +31,8 @@ public interface AlmSettingMapper {
   @CheckForNull
   AlmSettingDto selectByKey(@Param("key") String key);
 
+  List<AlmSettingDto> selectByAlm(String alm);
+
   List<AlmSettingDto> selectAll();
 
   void insert(@Param("dto") AlmSettingDto almSettingDto, @Param("uuid") String uuid, @Param("now") long now);
index d809f549b36971b4ee2fe8ea443de6e1b1c1ab89..6926e1cb85b29e230308f1b53dd2f808a7276c2f 100644 (file)
@@ -62,7 +62,11 @@ public class ProjectAlmSettingDao implements Dao {
   }
 
   public Optional<ProjectAlmSettingDto> selectByProject(DbSession dbSession, ComponentDto project) {
-    return Optional.ofNullable(getMapper(dbSession).selectByProjectUuid(project.uuid()));
+    return selectByProject(dbSession, project.uuid());
+  }
+
+  public Optional<ProjectAlmSettingDto> selectByProject(DbSession dbSession, String projectUuid) {
+    return Optional.ofNullable(getMapper(dbSession).selectByProjectUuid(projectUuid));
   }
 
   private static ProjectAlmSettingMapper getMapper(DbSession dbSession) {
index bf66e2983febc5a9938e89e15320e0e79dc7282f..17e8c548b52a04b050ea297403901a256a19cb0f 100644 (file)
       a.kee = #{key, jdbcType=VARCHAR}
   </select>
 
+  <select id="selectByAlm" parameterType="string" resultType="org.sonar.db.alm.setting.AlmSettingDto">
+    select <include refid="sqlColumns"/>
+    from
+      alm_settings a
+    where
+      a.alm_id = #{almId, jdbcType=VARCHAR}
+  </select>
+
   <select id="selectAll" resultType="org.sonar.db.alm.setting.AlmSettingDto">
     select <include refid="sqlColumns"/>
     from alm_settings a
index 5fae5cd4eb6c534e3026f6c702b2788d02a90ecf..d459e6a1550d33c84602f2aee90b4e604bda0315 100644 (file)
@@ -86,6 +86,21 @@ public class AlmSettingDaoTest {
     assertThat(underTest.selectByKey(dbSession, "foo")).isNotPresent();
   }
 
+  @Test
+  public void selectByAlm() {
+    when(uuidFactory.create()).thenReturn(A_UUID);
+    when(system2.now()).thenReturn(NOW);
+    AlmSettingDto gitHubAlmSetting1 = db.almSettings().insertGitHubAlmSetting();
+    AlmSettingDto gitHubAlmSetting2 = db.almSettings().insertGitHubAlmSetting();
+    AlmSettingDto azureAlmSetting2 = db.almSettings().insertAzureAlmSetting();
+
+    List<AlmSettingDto> almSettings = underTest.selectByAlm(dbSession, ALM.GITHUB);
+
+    assertThat(almSettings)
+      .extracting(AlmSettingDto::getUuid)
+      .containsExactlyInAnyOrder(gitHubAlmSetting1.getUuid(), gitHubAlmSetting2.getUuid());
+  }
+
   @Test
   public void selectAll() {
     when(uuidFactory.create()).thenReturn(A_UUID);
@@ -95,7 +110,7 @@ public class AlmSettingDaoTest {
     underTest.insert(dbSession, newGithubAlmSettingDto());
 
     List<AlmSettingDto> almSettings = underTest.selectAll(dbSession);
-    assertThat(almSettings).isNotNull();
+
     assertThat(almSettings).size().isEqualTo(2);
   }