aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao/src/it/java/org/sonar/db
diff options
context:
space:
mode:
authorLéo Geoffroy <leo.geoffroy@sonarsource.com>2023-08-09 14:18:17 +0200
committersonartech <sonartech@sonarsource.com>2023-08-18 20:02:48 +0000
commit6c53090d740ad446bf52e37318e3b6b58e94a76d (patch)
treee5a873a0f80a502f042b7a823e2bbbf4f0305e2d /server/sonar-db-dao/src/it/java/org/sonar/db
parent88bb95d78ab8e02a11344a4e3d482ae2e48492a6 (diff)
downloadsonarqube-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')
-rw-r--r--server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueDaoIT.java28
-rw-r--r--server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueMapperIT.java4
-rw-r--r--server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeCommandsIT.java2
-rw-r--r--server/sonar-db-dao/src/it/java/org/sonar/db/purge/PurgeDaoIT.java2
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);