From 0155d0c25355a6008b36fd04449fc15f8ec230b2 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Thu, 16 Mar 2017 15:39:12 +0100 Subject: [PATCH] SONAR-8893 Add missing organizations param in organization search client --- .../organization/OrganizationService.java | 1 + .../client/organization/SearchWsRequest.java | 20 +++++++++++++++++++ .../organization/OrganizationServiceTest.java | 20 +++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/organization/OrganizationService.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/organization/OrganizationService.java index 441bee64831..c0395baeaba 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/organization/OrganizationService.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/organization/OrganizationService.java @@ -38,6 +38,7 @@ public class OrganizationService extends BaseService { public SearchWsResponse search(SearchWsRequest request) { GetRequest get = new GetRequest(path("search")) + .setParam("organizations", inlineMultipleParamValue(request.getOrganizations())) .setParam("p", request.getPage()) .setParam("ps", request.getPageSize()); diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/organization/SearchWsRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/organization/SearchWsRequest.java index d114625926f..92dbfb5d88e 100644 --- a/sonar-ws/src/main/java/org/sonarqube/ws/client/organization/SearchWsRequest.java +++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/organization/SearchWsRequest.java @@ -19,18 +19,23 @@ */ package org.sonarqube.ws.client.organization; +import java.util.List; import javax.annotation.CheckForNull; import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; +import static java.util.Arrays.asList; + @Immutable public class SearchWsRequest { private final Integer page; private final Integer pageSize; + private final List organizations; private SearchWsRequest(Builder builder) { this.page = builder.page; this.pageSize = builder.pageSize; + this.organizations = builder.organizations; } @CheckForNull @@ -43,9 +48,19 @@ public class SearchWsRequest { return page; } + @CheckForNull + public List getOrganizations() { + return organizations; + } + + public static Builder builder() { + return new Builder(); + } + public static final class Builder { private Integer page; private Integer pageSize; + private List organizations; public Builder setPage(@Nullable Integer page) { this.page = page; @@ -57,6 +72,11 @@ public class SearchWsRequest { return this; } + public Builder setOrganizations(String... organizations) { + this.organizations = asList(organizations); + return this; + } + public SearchWsRequest build() { return new SearchWsRequest(this); } diff --git a/sonar-ws/src/test/java/org/sonarqube/ws/client/organization/OrganizationServiceTest.java b/sonar-ws/src/test/java/org/sonarqube/ws/client/organization/OrganizationServiceTest.java index d8bb4140bdb..4703f3ff8a5 100644 --- a/sonar-ws/src/test/java/org/sonarqube/ws/client/organization/OrganizationServiceTest.java +++ b/sonar-ws/src/test/java/org/sonarqube/ws/client/organization/OrganizationServiceTest.java @@ -22,9 +22,12 @@ package org.sonarqube.ws.client.organization; import org.junit.Rule; import org.junit.Test; +import org.sonarqube.ws.Organizations; +import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.ServiceTester; import org.sonarqube.ws.client.WsConnector; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; public class OrganizationServiceTest { @@ -34,6 +37,23 @@ public class OrganizationServiceTest { private OrganizationService underTest = serviceTester.getInstanceUnderTest(); + @Test + public void search() { + underTest.search(SearchWsRequest.builder() + .setOrganizations("orga1", "orga2") + .setPage(2) + .setPageSize(10) + .build()); + GetRequest getRequest = serviceTester.getGetRequest(); + + assertThat(serviceTester.getGetParser()).isSameAs(Organizations.SearchWsResponse.parser()); + serviceTester.assertThat(getRequest) + .hasParam("organizations", "orga1,orga2") + .hasParam("p", 2) + .hasParam("ps", 10) + .andNoOtherParam(); + } + @Test public void add_member() { underTest.addMember("O1", "login-1"); -- 2.39.5