diff options
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) |