aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacek Poreda <jacek.poreda@sonarsource.com>2025-01-02 16:02:56 +0100
committersonartech <sonartech@sonarsource.com>2025-01-09 20:03:21 +0000
commit1acc36698723c641c7f16ab9aa086327cb07f6a3 (patch)
treef05d87dd538b28dde18bffe9e7b271adb1ce0337
parentcd6e5cbb8e203abeb8fa3e2670bc70a5368c52ba (diff)
downloadsonarqube-1acc36698723c641c7f16ab9aa086327cb07f6a3.tar.gz
sonarqube-1acc36698723c641c7f16ab9aa086327cb07f6a3.zip
SONAR-14367 Add new field to ProjectAlmSettingDto and update queries
-rw-r--r--server/sonar-db-dao/src/it/java/org/sonar/db/alm/setting/ProjectAlmSettingDaoIT.java36
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ProjectAlmSettingDto.java17
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/alm/setting/ProjectAlmSettingMapper.xml7
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java2
4 files changed, 56 insertions, 6 deletions
diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/alm/setting/ProjectAlmSettingDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/alm/setting/ProjectAlmSettingDaoIT.java
index 8c8d9d84b95..ac420368b97 100644
--- a/server/sonar-db-dao/src/it/java/org/sonar/db/alm/setting/ProjectAlmSettingDaoIT.java
+++ b/server/sonar-db-dao/src/it/java/org/sonar/db/alm/setting/ProjectAlmSettingDaoIT.java
@@ -48,6 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.sonar.db.almsettings.AlmSettingsTesting.newAzureProjectAlmSettingDto;
import static org.sonar.db.almsettings.AlmSettingsTesting.newBitbucketProjectAlmSettingDto;
import static org.sonar.db.almsettings.AlmSettingsTesting.newGithubProjectAlmSettingDto;
@@ -80,10 +81,11 @@ class ProjectAlmSettingDaoIT {
.extracting(ProjectAlmSettingDto::getUuid, ProjectAlmSettingDto::getAlmSettingUuid, ProjectAlmSettingDto::getProjectUuid,
ProjectAlmSettingDto::getAlmRepo, ProjectAlmSettingDto::getAlmSlug,
ProjectAlmSettingDto::getCreatedAt, ProjectAlmSettingDto::getUpdatedAt,
- ProjectAlmSettingDto::getSummaryCommentEnabled, ProjectAlmSettingDto::getMonorepo)
+ ProjectAlmSettingDto::getSummaryCommentEnabled, ProjectAlmSettingDto::getInlineAnnotationsEnabled,
+ ProjectAlmSettingDto::getMonorepo)
.containsExactly(A_UUID, githubAlmSettingDto.getUuid(), project.getUuid(),
githubProjectAlmSettingDto.getAlmRepo(), githubProjectAlmSettingDto.getAlmSlug(),
- A_DATE, A_DATE, githubProjectAlmSettingDto.getSummaryCommentEnabled(), false);
+ A_DATE, A_DATE, githubProjectAlmSettingDto.getSummaryCommentEnabled(), null, false);
assertThat(underTest.selectByProject(dbSession, anotherProject)).isNotPresent();
}
@@ -105,8 +107,8 @@ class ProjectAlmSettingDaoIT {
Set<String> slugs = new HashSet<>();
slugs.add("slug1");
assertThat(underTest.selectByAlmSettingAndSlugs(dbSession, almSettingsDto, slugs))
- .extracting(ProjectAlmSettingDto::getProjectUuid, ProjectAlmSettingDto::getSummaryCommentEnabled)
- .containsExactly(tuple(project.getUuid(), bitbucketProjectAlmSettingDto2.getSummaryCommentEnabled()));
+ .extracting(ProjectAlmSettingDto::getProjectUuid, ProjectAlmSettingDto::getSummaryCommentEnabled, ProjectAlmSettingDto::getInlineAnnotationsEnabled)
+ .containsExactly(tuple(project.getUuid(), bitbucketProjectAlmSettingDto2.getSummaryCommentEnabled(), bitbucketProjectAlmSettingDto2.getInlineAnnotationsEnabled()));
}
@Test
@@ -302,7 +304,7 @@ class ProjectAlmSettingDaoIT {
}
@Test
- void update_existing_binding() {
+ void update_existing_github_binding() {
when(uuidFactory.create()).thenReturn(A_UUID);
AlmSettingDto githubAlmSetting = db.almSettings().insertGitHubAlmSetting();
ProjectDto project = db.components().insertPrivateProject().getProjectDto();
@@ -325,6 +327,30 @@ class ProjectAlmSettingDaoIT {
}
@Test
+ void update_existing_azure_binding() {
+ when(uuidFactory.create()).thenReturn(A_UUID);
+ AlmSettingDto azureAlmSetting = db.almSettings().insertAzureAlmSetting();
+ ProjectDto project = db.components().insertPrivateProject().getProjectDto();
+ ProjectAlmSettingDto projectAlmSettingDto = db.almSettings().insertAzureProjectAlmSetting(azureAlmSetting, project);
+ AlmSettingDto anotherAzureAlmSetting = db.almSettings().insertAzureAlmSetting();
+
+ system2.setNow(A_DATE_LATER);
+ ProjectAlmSettingDto newProjectAlmSettingDto = newAzureProjectAlmSettingDto(anotherAzureAlmSetting, project)
+ .setInlineAnnotationsEnabled(false);
+ underTest.insertOrUpdate(dbSession, newProjectAlmSettingDto, azureAlmSetting.getKey(), project.getName(), project.getKey());
+
+ assertThat(underTest.selectByProject(dbSession, project).get())
+ .extracting(ProjectAlmSettingDto::getUuid, ProjectAlmSettingDto::getAlmSettingUuid, ProjectAlmSettingDto::getProjectUuid,
+ ProjectAlmSettingDto::getAlmRepo, ProjectAlmSettingDto::getAlmSlug,
+ ProjectAlmSettingDto::getCreatedAt, ProjectAlmSettingDto::getUpdatedAt,
+ ProjectAlmSettingDto::getInlineAnnotationsEnabled, ProjectAlmSettingDto::getSummaryCommentEnabled)
+ .containsExactly(projectAlmSettingDto.getUuid(), anotherAzureAlmSetting.getUuid(), project.getUuid(),
+ newProjectAlmSettingDto.getAlmRepo(), newProjectAlmSettingDto.getAlmSlug(),
+ A_DATE, A_DATE_LATER, newProjectAlmSettingDto.getInlineAnnotationsEnabled(),
+ newProjectAlmSettingDto.getSummaryCommentEnabled());
+ }
+
+ @Test
void deleteByProject() {
when(uuidFactory.create()).thenReturn(A_UUID);
AlmSettingDto githubAlmSetting = db.almSettings().insertGitHubAlmSetting();
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ProjectAlmSettingDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ProjectAlmSettingDto.java
index b10d241fa18..3a465c14360 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ProjectAlmSettingDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ProjectAlmSettingDto.java
@@ -62,6 +62,12 @@ public class ProjectAlmSettingDto {
private Boolean summaryCommentEnabled;
/**
+ * Boolean flag which enable/disable adding inline comments to files
+ * It will be null when the ALM is other than Azure DevOps
+ */
+ private Boolean inlineAnnotationsEnabled;
+
+ /**
* Boolean to know if this SonarQube project is part of a monorepo
* default value is false
*/
@@ -125,6 +131,15 @@ public class ProjectAlmSettingDto {
return this;
}
+ public Boolean getInlineAnnotationsEnabled() {
+ return inlineAnnotationsEnabled;
+ }
+
+ public ProjectAlmSettingDto setInlineAnnotationsEnabled(@Nullable Boolean inlineAnnotationsEnabled) {
+ this.inlineAnnotationsEnabled = inlineAnnotationsEnabled;
+ return this;
+ }
+
public Boolean getMonorepo() {
return monorepo;
}
@@ -149,4 +164,6 @@ public class ProjectAlmSettingDto {
void setCreatedAt(long createdAt) {
this.createdAt = createdAt;
}
+
+
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/setting/ProjectAlmSettingMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/setting/ProjectAlmSettingMapper.xml
index c212b88a1ea..9f015b2d22e 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/setting/ProjectAlmSettingMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/setting/ProjectAlmSettingMapper.xml
@@ -10,6 +10,7 @@
p.alm_repo as almRepo,
p.alm_slug as almSlug,
p.summary_comment_enabled as summaryCommentEnabled,
+ p.inline_annotations_enabled as inlineAnnotationsEnabled,
p.monorepo as monorepo,
p.created_at as createdAt,
p.updated_at as updatedAt
@@ -98,6 +99,7 @@
alm_repo,
alm_slug,
summary_comment_enabled,
+ inline_annotations_enabled,
monorepo,
created_at,
updated_at
@@ -109,6 +111,7 @@
#{dto.almRepo, jdbcType=VARCHAR},
#{dto.almSlug, jdbcType=VARCHAR},
#{dto.summaryCommentEnabled, jdbcType=BOOLEAN},
+ #{dto.inlineAnnotationsEnabled, jdbcType=BOOLEAN},
#{dto.monorepo, jdbcType=BOOLEAN},
#{now, jdbcType=BIGINT},
#{now, jdbcType=BIGINT}
@@ -125,6 +128,7 @@
alm_repo,
alm_slug,
summary_comment_enabled,
+ inline_annotations_enabled,
monorepo,
created_at,
updated_at
@@ -136,6 +140,7 @@
#{dto.almRepo, jdbcType=VARCHAR},
#{dto.almSlug, jdbcType=VARCHAR},
#{dto.summaryCommentEnabled, jdbcType=NUMERIC},
+ #{dto.inlineAnnotationsEnabled, jdbcType=NUMERIC},
#{dto.monorepo, jdbcType=NUMERIC},
#{now, jdbcType=BIGINT},
#{now, jdbcType=BIGINT}
@@ -149,6 +154,7 @@
alm_repo = #{dto.almRepo, jdbcType=VARCHAR},
alm_slug = #{dto.almSlug, jdbcType=VARCHAR},
summary_comment_enabled = #{dto.summaryCommentEnabled, jdbcType=BOOLEAN},
+ inline_annotations_enabled = #{dto.inlineAnnotationsEnabled, jdbcType=BOOLEAN},
monorepo = #{dto.monorepo, jdbcType=BOOLEAN},
updated_at = #{now, jdbcType=BIGINT}
WHERE
@@ -163,6 +169,7 @@
alm_repo = #{dto.almRepo, jdbcType=VARCHAR},
alm_slug = #{dto.almSlug, jdbcType=VARCHAR},
summary_comment_enabled = #{dto.summaryCommentEnabled, jdbcType=NUMERIC},
+ inline_annotations_enabled = #{dto.inlineAnnotationsEnabled, jdbcType=NUMERIC},
monorepo = #{dto.monorepo, jdbcType=NUMERIC},
updated_at = #{now, jdbcType=BIGINT}
WHERE
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java
index b15a23bca7d..ce98196f328 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java
@@ -101,7 +101,7 @@ public class AlmSettingsTesting {
.setMonorepo(monorepo);
}
- static ProjectAlmSettingDto newAzureProjectAlmSettingDto(AlmSettingDto azureAlmSetting, ProjectDto project) {
+ public static ProjectAlmSettingDto newAzureProjectAlmSettingDto(AlmSettingDto azureAlmSetting, ProjectDto project) {
return new ProjectAlmSettingDto()
.setAlmSettingUuid(azureAlmSetting.getUuid())
.setProjectUuid(project.getUuid())