]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8893 Add missing organizations param in organization search client
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 16 Mar 2017 14:39:12 +0000 (15:39 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 21 Mar 2017 12:05:50 +0000 (13:05 +0100)
sonar-ws/src/main/java/org/sonarqube/ws/client/organization/OrganizationService.java
sonar-ws/src/main/java/org/sonarqube/ws/client/organization/SearchWsRequest.java
sonar-ws/src/test/java/org/sonarqube/ws/client/organization/OrganizationServiceTest.java

index 441bee64831f317440c5a28807fa11349076ccdf..c0395baeabaa1cf98518ce1f7227bba144d58987 100644 (file)
@@ -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());
 
index d114625926ffdaf4465f948c9d103628bf30a554..92dbfb5d88e812672afa2dfbab0ae98c6cecc30c 100644 (file)
  */
 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<String> 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<String> getOrganizations() {
+    return organizations;
+  }
+
+  public static Builder builder() {
+    return new Builder();
+  }
+
   public static final class Builder {
     private Integer page;
     private Integer pageSize;
+    private List<String> 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);
     }
index d8bb4140bdb4e22d69af105f29eaf82f39b55168..4703f3ff8a5bcce629c0a4c36a393b5fb475653f 100644 (file)
@@ -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");