Преглед на файлове

SONAR-12748 WS navigation/component always returns 'isFavorite' false for branches

tags/8.1.0.31237
Duarte Meneses преди 4 години
родител
ревизия
7197bceddc

+ 5
- 4
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ui/ws/ComponentAction.java Целия файл

@@ -164,7 +164,8 @@ public class ComponentAction implements NavigationWsAction {

try (JsonWriter json = response.newJsonWriter()) {
json.beginObject();
writeComponent(json, session, component, org, analysis.orElse(null));
boolean isFavourite = isFavourite(session, rootProject);
writeComponent(json, component, org, analysis.orElse(null), isFavourite);
writeAlmDetails(json, session, rootProject);
writeProfiles(json, session, component);
writeQualityGate(json, session, org, rootProject);
@@ -194,7 +195,7 @@ public class ComponentAction implements NavigationWsAction {
private void writeAlmDetails(JsonWriter json, DbSession session, ComponentDto component) {
Optional<ProjectAlmBindingDto> bindingOpt = dbClient.projectAlmBindingsDao().selectByProjectUuid(session, component.uuid());
bindingOpt.ifPresent(b -> {
String almId = String.valueOf(b.getAlm().getId());
String almId = b.getAlm().getId();
json.name("alm").beginObject()
.prop("key", almId)
.prop("url", b.getUrl())
@@ -218,13 +219,13 @@ public class ComponentAction implements NavigationWsAction {
.endObject();
}

private void writeComponent(JsonWriter json, DbSession session, ComponentDto component, OrganizationDto organizationDto, @Nullable SnapshotDto analysis) {
private void writeComponent(JsonWriter json, ComponentDto component, OrganizationDto organizationDto, @Nullable SnapshotDto analysis, boolean isFavourite) {
json.prop("key", component.getKey())
.prop("organization", organizationDto.getKey())
.prop("id", component.uuid())
.prop("name", component.name())
.prop("description", component.description())
.prop("isFavorite", isFavourite(session, component));
.prop("isFavorite", isFavourite);
String branch = component.getBranch();
if (branch != null) {
json.prop("branch", branch);

+ 25
- 0
server/sonar-webserver-webapi/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java Целия файл

@@ -152,6 +152,31 @@ public class ComponentActionTest {
executeAndVerify(project.getDbKey(), "return_component_info_with_favourite.json");
}

@Test
public void return_favourite_for_branch() {
ComponentDto project = insertOrganizationAndProject();
ComponentDto branch = componentDbTester.insertProjectBranch(project, b -> b.setKey("feature1").setUuid("xyz")); UserDto user = db.users().insertUser("obiwan");
propertyDbTester.insertProperty(new PropertyDto().setKey("favourite").setResourceId(project.getId()).setUserId(user.getId()));
userSession.logIn(user).addProjectPermission(UserRole.USER, project);
init();

String json = ws.newRequest()
.setParam("componentKey", project.getKey())
.setParam("branch", branch.getBranch())
.execute()
.getInput();

assertJson(json).isSimilarTo("{\n" +
" \"organization\": \"my-org\",\n" +
" \"key\": \"polop\",\n" +
" \"isFavorite\": true,\n" +
" \"id\": \"xyz\",\n" +
" \"branch\": \"feature1\"," +
" \"name\": \"Polop\",\n" +
" \"description\": \"test project\"\n" +
"}\n");
}

@Test
public void return_component_info_when_snapshot() {
ComponentDto project = insertOrganizationAndProject();

Loading…
Отказ
Запис