diff options
author | Jacek Poreda <jacek.poreda@sonarsource.com> | 2025-01-02 16:02:56 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2025-01-09 20:03:21 +0000 |
commit | 1acc36698723c641c7f16ab9aa086327cb07f6a3 (patch) | |
tree | f05d87dd538b28dde18bffe9e7b271adb1ce0337 | |
parent | cd6e5cbb8e203abeb8fa3e2670bc70a5368c52ba (diff) | |
download | sonarqube-1acc36698723c641c7f16ab9aa086327cb07f6a3.tar.gz sonarqube-1acc36698723c641c7f16ab9aa086327cb07f6a3.zip |
SONAR-14367 Add new field to ProjectAlmSettingDto and update queries
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()) |