Browse Source

SONAR-12719 add resolution to response of api/hotspots/show

tags/8.2.0.32929
Sébastien Lesaint 4 years ago
parent
commit
20800515ea

+ 1
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/hotspot/ws/ShowAction.java View File

@@ -103,8 +103,7 @@ public class ShowAction implements HotspotsWsAction {
private void formatHotspot(ShowWsResponse.Builder builder, IssueDto hotspot) {
builder.setKey(hotspot.getKey());
ofNullable(hotspot.getStatus()).ifPresent(builder::setStatus);
// FIXME resolution field will be added later
// ofNullable(hotspot.getResolution()).ifPresent(builder::setResolution);
ofNullable(hotspot.getResolution()).ifPresent(builder::setResolution);
ofNullable(hotspot.getLine()).ifPresent(builder::setLine);
builder.setMessage(nullToEmpty(hotspot.getMessage()));
ofNullable(hotspot.getAssigneeUuid()).ifPresent(builder::setAssignee);

+ 34
- 1
server/sonar-webserver-webapi/src/test/java/org/sonar/server/hotspot/ws/ShowActionTest.java View File

@@ -30,9 +30,11 @@ import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.sonar.api.issue.Issue;
import org.sonar.api.rules.RuleType;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
@@ -174,6 +176,37 @@ public class ShowActionTest {
assertThat(response.getKey()).isEqualTo(hotspot.getKey());
}

@Test
@UseDataProvider("statusAndResolutionCombinations")
public void returns_status_and_resolution(String status, @Nullable String resolution) {
ComponentDto project = dbTester.components().insertPrivateProject();
userSessionRule.registerComponents(project);
userSessionRule.logIn().addProjectPermission(UserRole.USER, project);
ComponentDto file = dbTester.components().insertComponent(newFileDto(project));
RuleDefinitionDto rule = newRule(SECURITY_HOTSPOT);
IssueDto hotspot = dbTester.issues().insertIssue(newHotspot(project, file, rule).setStatus(status).setResolution(resolution));

Hotspots.ShowWsResponse response = newRequest(hotspot)
.executeProtobuf(Hotspots.ShowWsResponse.class);

assertThat(response.getStatus()).isEqualTo(status);
if (resolution == null) {
assertThat(response.hasResolution()).isFalse();
} else {
assertThat(response.getResolution()).isEqualTo(resolution);
}
}

@DataProvider
public static Object[][] statusAndResolutionCombinations() {
return new Object[][] {
{Issue.STATUS_TO_REVIEW, null},
{Issue.STATUS_REVIEWED, Issue.RESOLUTION_FIXED},
{Issue.STATUS_REVIEWED, Issue.RESOLUTION_SAFE},
{Issue.STATUS_CLOSED, Issue.RESOLUTION_REMOVED}
};
}

@Test
public void returns_hotspot_component_and_rule() {
ComponentDto project = dbTester.components().insertPublicProject();
@@ -193,7 +226,7 @@ public class ShowActionTest {
}

@Test
public void returns_no_textrange_when_locations_have_none() {
public void returns_no_textRange_when_locations_have_none() {
ComponentDto project = dbTester.components().insertPublicProject();
userSessionRule.registerComponents(project);
ComponentDto file = dbTester.components().insertComponent(newFileDto(project));

+ 1
- 2
sonar-ws/src/main/protobuf/ws-hotspots.proto View File

@@ -57,8 +57,7 @@ message ShowWsResponse {
optional Component project = 3;
optional Rule rule = 4;
optional string status = 5;
// FIXME resolution field will be added later
// optional string resolution = 6;
optional string resolution = 6;
optional int32 line = 7;
optional string message = 8;
optional string assignee = 9;

Loading…
Cancel
Save