diff options
author | Léo Geoffroy <leo.geoffroy@sonarsource.com> | 2023-08-09 14:18:17 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-08-18 20:02:48 +0000 |
commit | 6c53090d740ad446bf52e37318e3b6b58e94a76d (patch) | |
tree | e5a873a0f80a502f042b7a823e2bbbf4f0305e2d /server/sonar-db-dao/src/it/java/org/sonar/db | |
parent | 88bb95d78ab8e02a11344a4e3d482ae2e48492a6 (diff) | |
download | sonarqube-6c53090d740ad446bf52e37318e3b6b58e94a76d.tar.gz sonarqube-6c53090d740ad446bf52e37318e3b6b58e94a76d.zip |
SONAR-20021 persist impacts from report to Database
Diffstat (limited to 'server/sonar-db-dao/src/it/java/org/sonar/db')
4 files changed, 32 insertions, 4 deletions
diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueDaoIT.java index 74a267e7b07..d9f8ac85ee9 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueDaoIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueDaoIT.java @@ -37,6 +37,7 @@ import org.sonar.api.rule.RuleKey; import org.sonar.api.rules.RuleType; import org.sonar.api.utils.System2; import org.sonar.core.util.UuidFactoryFast; +import org.sonar.core.util.Uuids; import org.sonar.db.DbSession; import org.sonar.db.DbTester; import org.sonar.db.Pagination; @@ -786,6 +787,33 @@ public class IssueDaoIT { assertThat(results.stream().toList()).containsExactlyInAnyOrderElementsOf(expectedKeys); } + @Test + public void updateIfBeforeSelectedDate_whenCalledWithBeforeSelectDate_shouldUpdateImpacts() { + prepareTables(); + IssueDto issueDto = underTest.selectOrFailByKey(db.getSession(), ISSUE_KEY1) + .setSelectedAt(1_440_000_000_000L) + .replaceAllImpacts(List.of(new ImpactDto().setUuid(Uuids.createFast()).setSoftwareQuality(SoftwareQuality.RELIABILITY).setSeverity(Severity.LOW))); + + underTest.updateIfBeforeSelectedDate(db.getSession(), issueDto); + + assertThat(underTest.selectOrFailByKey(db.getSession(), ISSUE_KEY1).getImpacts()).extracting(i -> i.getSoftwareQuality(), i -> i.getSeverity()) + .containsExactly(tuple(SoftwareQuality.RELIABILITY, Severity.LOW)); + + } + + @Test + public void updateIfBeforeSelectedDate_whenCalledWithAfterSelectDate_shouldNotUpdateImpacts() { + prepareTables(); + IssueDto issueDto = underTest.selectOrFailByKey(db.getSession(), ISSUE_KEY1) + .setSelectedAt(1_400_000_000_000L) + .replaceAllImpacts(List.of(new ImpactDto().setUuid(Uuids.createFast()).setSoftwareQuality(SoftwareQuality.RELIABILITY).setSeverity(Severity.LOW))); + + underTest.updateIfBeforeSelectedDate(db.getSession(), issueDto); + + assertThat(underTest.selectOrFailByKey(db.getSession(), ISSUE_KEY1).getImpacts()).extracting(i -> i.getSoftwareQuality(), i -> i.getSeverity()) + .containsExactlyInAnyOrder(tuple(SoftwareQuality.RELIABILITY, Severity.MEDIUM), tuple(SoftwareQuality.SECURITY, Severity.LOW)); + } + private static IssueDto createIssueWithKey(String issueKey) { return createIssueWithKey(issueKey, PROJECT_UUID, FILE_UUID); } diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueMapperIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueMapperIT.java index 0572e11d34a..06a8d73a67c 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueMapperIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueMapperIT.java @@ -192,7 +192,7 @@ public class IssueMapperIT { .setCodeVariants(Set.of("variant2", "variant3")); // selected after last update -> ok - dto.setSelectedAt(1500000000000L); + dto.setSelectedAt(1_500_000_000_000L); int count = underTest.updateIfBeforeSelectedDate(dto); assertThat(count).isOne(); @@ -227,7 +227,7 @@ public class IssueMapperIT { .setCodeVariants(Set.of("variant2", "variant3")); // selected before last update -> ko - dto.setSelectedAt(1400000000000L); + dto.setSelectedAt(1_400_000_000_000L); int count = underTest.updateIfBeforeSelectedDate(dto); assertThat(count).isZero(); diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeCommandsIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeCommandsIT.java index 937dc4d348b..b89a854e009 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeCommandsIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeCommandsIT.java @@ -582,7 +582,7 @@ public class PurgeCommandsIT { IntStream.range(0, count).forEach(i -> { IssueDto issue = dbTester.issues().insertIssue(t -> t.setRule(rule).setProject(projectOrView).setComponent(projectOrView) .addImpact(new ImpactDto().setUuid(UuidFactoryFast.getInstance().create()) - .setSoftwareQuality(SoftwareQuality.MAINTAINABILITY) + .setSoftwareQuality(SoftwareQuality.SECURITY) .setSeverity(Severity.HIGH))); issueKeys.add("'" + issue.getKey() + "'"); }); diff --git a/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java b/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java index 9d0e6ccb808..5fa203103b0 100644 --- a/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java +++ b/server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java @@ -1216,7 +1216,7 @@ public class PurgeDaoIT { ComponentDto dir = db.components().insertComponent(newDirectory(mainBranch, "path")); ComponentDto file = db.components().insertComponent(newFileDto(mainBranch, dir)); - IssueDto issue1 = db.issues().insert(rule, mainBranch, file); + IssueDto issue1 = db.issues().insert(rule, mainBranch, file, issue -> issue.replaceAllImpacts(Collections.emptyList())); IssueDto orphanIssue = db.issues().insert(rule, mainBranch, file, issue -> issue.setComponentUuid("nonExisting")); IssueChangeDto orphanIssueChange = db.issues().insertChange(orphanIssue); db.issues().insertNewCodeReferenceIssue(orphanIssue); |