Skip to content

Commit a748dcd

Browse files
dejan-milisavljevic-sonarsourcesonartech
authored andcommitted
SONAR-26802 Add test for resetFlagFromSonarQubeUpdate
1 parent ee10351 commit a748dcd

1 file changed

Lines changed: 50 additions & 1 deletion

File tree

server/sonar-db-dao/src/it/java/org/sonar/db/issue/IssueDaoIT.java

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ class IssueDaoIT {
127127

128128
@BeforeEach
129129
void setup() {
130-
int i = db.countSql(db.getSession(), "select count(1) from rules_default_impacts");
130+
db.countSql(db.getSession(), "select count(1) from rules_default_impacts");
131131

132132
db.rules().insert(RULE.setIsExternal(true));
133133
projectData = db.components().insertPrivateProject(t -> t.setUuid(PROJECT_UUID).setKey(PROJECT_KEY));
@@ -1230,6 +1230,55 @@ void insertIssueImpacts_should_insert_all_values() {
12301230
.containsExactlyInAnyOrder(tuple(MAINTAINABILITY, MEDIUM, true), tuple(RELIABILITY, HIGH, false));
12311231
}
12321232

1233+
@Test
1234+
void resetFlagFromSonarQubeUpdate_shouldResetFlagAndUpdateTimestamp() {
1235+
RuleDto rule = db.rules().insert();
1236+
ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
1237+
ComponentDto file = db.components().insertComponent(newFileDto(project));
1238+
1239+
// Insert issues with from_sonarqube_update = true
1240+
db.issues().insert(rule, project, file,
1241+
i -> i.setKee("issue1").setFromSonarQubeUpdate(true).setUpdatedAt(1_000_000_000_000L));
1242+
db.issues().insert(rule, project, file,
1243+
i -> i.setKee("issue2").setFromSonarQubeUpdate(true).setUpdatedAt(1_000_000_000_000L));
1244+
db.issues().insert(rule, project, file,
1245+
i -> i.setKee("issue3").setFromSonarQubeUpdate(true).setUpdatedAt(1_000_000_000_000L));
1246+
1247+
// Insert issues with from_sonarqube_update = false
1248+
db.issues().insert(rule, project, file,
1249+
i -> i.setKee("issue4").setFromSonarQubeUpdate(false).setUpdatedAt(1_000_000_000_000L));
1250+
db.issues().insert(rule, project, file,
1251+
i -> i.setKee("issue5").setFromSonarQubeUpdate(false).setUpdatedAt(1_000_000_000_000L));
1252+
1253+
// Execute the method under test
1254+
int affectedRows = underTest.resetFlagFromSonarQubeUpdate(db.getSession());
1255+
db.getSession().commit();
1256+
1257+
assertThat(affectedRows).isEqualTo(3);
1258+
1259+
IssueDto updatedIssue1 = underTest.selectByKey(db.getSession(), "issue1").get();
1260+
IssueDto updatedIssue2 = underTest.selectByKey(db.getSession(), "issue2").get();
1261+
IssueDto updatedIssue3 = underTest.selectByKey(db.getSession(), "issue3").get();
1262+
1263+
assertThat(updatedIssue1.isFromSonarQubeUpdate()).isFalse();
1264+
assertThat(updatedIssue2.isFromSonarQubeUpdate()).isFalse();
1265+
assertThat(updatedIssue3.isFromSonarQubeUpdate()).isFalse();
1266+
1267+
// Verify that updated_at was changed for affected issues
1268+
assertThat(updatedIssue1.getUpdatedAt()).isGreaterThan(1_000_000_000_000L);
1269+
assertThat(updatedIssue2.getUpdatedAt()).isGreaterThan(1_000_000_000_000L);
1270+
assertThat(updatedIssue3.getUpdatedAt()).isGreaterThan(1_000_000_000_000L);
1271+
1272+
// Verify that issues with flag=false remain unchanged
1273+
IssueDto unchangedIssue4 = underTest.selectByKey(db.getSession(), "issue4").get();
1274+
IssueDto unchangedIssue5 = underTest.selectByKey(db.getSession(), "issue5").get();
1275+
1276+
assertThat(unchangedIssue4.isFromSonarQubeUpdate()).isFalse();
1277+
assertThat(unchangedIssue5.isFromSonarQubeUpdate()).isFalse();
1278+
assertThat(unchangedIssue4.getUpdatedAt()).isEqualTo(1_000_000_000_000L);
1279+
assertThat(unchangedIssue5.getUpdatedAt()).isEqualTo(1_000_000_000_000L);
1280+
}
1281+
12331282
private static IssueDto createIssueWithKey(String issueKey) {
12341283
return createIssueWithKey(issueKey, PROJECT_UUID, FILE_UUID);
12351284
}

0 commit comments

Comments
 (0)