diff options
author | Matteo Mara <matteo.mara@sonarsource.com> | 2025-03-24 12:10:07 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2025-03-24 20:03:14 +0000 |
commit | d767fd46800a6e76721d7e5fdbd0c067c490f200 (patch) | |
tree | 858bec58dbd74087e37884709a0e82b741cffbd1 /server/sonar-webserver-webapi | |
parent | da2422cc12a07d4373c2ccfd4eb6f3e7f24e5214 (diff) | |
download | sonarqube-master.tar.gz sonarqube-master.zip |
Diffstat (limited to 'server/sonar-webserver-webapi')
2 files changed, 31 insertions, 1 deletions
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/hotspot/ws/PullHotspotsActionProtobufObjectGenerator.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/hotspot/ws/PullHotspotsActionProtobufObjectGenerator.java index f61dc86b5c4..e87271575f7 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/hotspot/ws/PullHotspotsActionProtobufObjectGenerator.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/hotspot/ws/PullHotspotsActionProtobufObjectGenerator.java @@ -43,12 +43,15 @@ public class PullHotspotsActionProtobufObjectGenerator implements ProtobufObject public Hotspots.HotspotLite generateIssueMessage(IssueDto hotspotDto, RuleDto ruleDto) { Hotspots.HotspotLite.Builder builder = Hotspots.HotspotLite.newBuilder() .setKey(hotspotDto.getKey()) - .setFilePath(hotspotDto.getFilePath()) .setStatus(hotspotDto.getStatus()) .setRuleKey(hotspotDto.getRuleKey().toString()) .setStatus(hotspotDto.getStatus()) .setVulnerabilityProbability(getVulnerabilityProbability(ruleDto)); + if (hotspotDto.getFilePath() != null) { + builder.setFilePath(hotspotDto.getFilePath()); + } + if (hotspotDto.getIssueCreationTime() != null) { builder.setCreationDate(hotspotDto.getIssueCreationTime()); } diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/hotspot/ws/PullHotspotsActionProtobufObjectGeneratorTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/hotspot/ws/PullHotspotsActionProtobufObjectGeneratorTest.java index 290be53f4ae..011496672ff 100644 --- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/hotspot/ws/PullHotspotsActionProtobufObjectGeneratorTest.java +++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/hotspot/ws/PullHotspotsActionProtobufObjectGeneratorTest.java @@ -31,6 +31,7 @@ import org.sonarqube.ws.Hotspots.HotspotLite; import org.sonarqube.ws.Hotspots.HotspotPullQueryTimestamp; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; public class PullHotspotsActionProtobufObjectGeneratorTest { @@ -81,6 +82,32 @@ public class PullHotspotsActionProtobufObjectGeneratorTest { } @Test + public void generateIssueMessage_whenFilePathIsNull_shouldMapDtoFields() { + Date creationDate = new Date(); + IssueDto issueDto = new IssueDto() + .setKee("key") + .setProjectKey("my-project-key") + .setStatus("REVIEWED") + .setResolution("FIXED") + .setRuleKey("repo", "rule") + .setRuleUuid("rule-uuid-1") + .setMessage("Look at me, I'm the issue now!") + .setAssigneeLogin("assignee-login") + .setIssueCreationDate(creationDate); + + DbIssues.Locations locations = DbIssues.Locations.newBuilder() + .setTextRange(range(2, 3)) + .build(); + issueDto.setLocations(locations); + + RuleDto ruleDto = new RuleDto() + .setSecurityStandards(Set.of("cwe:489,cwe:570,cwe:571")); + + HotspotLite result = underTest.generateIssueMessage(issueDto, ruleDto); + assertEquals("", result.getFilePath()); + } + + @Test public void generateClosedIssueMessage_shouldMapClosedHotspotFields() { HotspotLite result = underTest.generateClosedIssueMessage("uuid"); assertThat(result).extracting(HotspotLite::getKey, HotspotLite::getClosed) |