aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2017-04-11 08:52:42 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2017-04-13 11:51:55 +0200
commitc082ed70b27c151884a2b364937b85173637675e (patch)
treeac6c07d500dc2a510a10d975708cb8f5af5c2242
parente94c7b5f322a16ecf8c278114e119d9913b6505c (diff)
downloadsonarqube-c082ed70b27c151884a2b364937b85173637675e.tar.gz
sonarqube-c082ed70b27c151884a2b364937b85173637675e.zip
Replace SQL by WS in OrganizationMembershipTest IT
-rw-r--r--it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/organization/OrganizationService.java19
-rw-r--r--sonar-ws/src/test/java/org/sonarqube/ws/client/organization/OrganizationServiceTest.java20
3 files changed, 45 insertions, 8 deletions
diff --git a/it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java b/it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java
index cc4a7b56cc2..cffdf0c55b7 100644
--- a/it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java
+++ b/it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java
@@ -22,22 +22,24 @@ package it.organization;
import com.sonar.orchestrator.Orchestrator;
import it.Category6Suite;
+import java.util.List;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.sonarqube.ws.Organizations;
import org.sonarqube.ws.client.HttpException;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.organization.CreateWsRequest;
+import org.sonarqube.ws.client.organization.SearchMembersWsRequest;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
import pageobjects.Navigation;
import pageobjects.organization.MembersPage;
import util.user.UserRule;
import static it.Category6Suite.enableOrganizationsSupport;
-import static java.lang.String.format;
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.deleteOrganizationsIfExists;
@@ -247,11 +249,11 @@ public class OrganizationMembershipTest {
}
private void verifyMembership(String login, String organizationKey, boolean isMember) {
- // TODO replace with search member WS
- int count = orchestrator.getDatabase().countSql(format("SELECT COUNT(1) FROM organization_members om " +
- "INNER JOIN users u ON u.id=om.user_id AND u.login='%s' " +
- "INNER JOIN organizations o ON o.uuid=om.organization_uuid AND o.kee='%s'", login, organizationKey));
- assertThat(count).isEqualTo(isMember ? 1 : 0);
+ List<Organizations.User> users = adminClient.organizations().searchMembers(new SearchMembersWsRequest()
+ .setQuery(login)
+ .setSelected("selected")
+ .setOrganization(organizationKey)).getUsersList();
+ assertThat(users).hasSize(isMember ? 1 : 0);
}
private static String createOrganization() {
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 c0395baeaba..1968f92caa1 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
@@ -20,6 +20,7 @@
package org.sonarqube.ws.client.organization;
import javax.annotation.Nullable;
+import org.sonarqube.ws.Organizations.SearchMembersWsResponse;
import org.sonarqube.ws.Organizations.SearchWsResponse;
import org.sonarqube.ws.client.BaseService;
import org.sonarqube.ws.client.GetRequest;
@@ -27,6 +28,9 @@ import org.sonarqube.ws.client.PostRequest;
import org.sonarqube.ws.client.WsConnector;
import static java.util.Objects.requireNonNull;
+import static org.sonar.api.server.ws.WebService.Param.PAGE;
+import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE;
+import static org.sonar.api.server.ws.WebService.Param.TEXT_QUERY;
import static org.sonarqube.ws.Organizations.CreateWsResponse;
import static org.sonarqube.ws.Organizations.UpdateWsResponse;
@@ -39,8 +43,8 @@ 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());
+ .setParam(PAGE, request.getPage())
+ .setParam(PAGE_SIZE, request.getPageSize());
return call(get, SearchWsResponse.parser());
}
@@ -74,6 +78,17 @@ public class OrganizationService extends BaseService {
call(post).failIfNotSuccessful();
}
+ public SearchMembersWsResponse searchMembers(SearchMembersWsRequest request) {
+ GetRequest get = new GetRequest(path("search_members"))
+ .setParam("organization", request.getOrganization())
+ .setParam("selected", request.getSelected())
+ .setParam(TEXT_QUERY, request.getQuery())
+ .setParam(PAGE, request.getPage())
+ .setParam(PAGE_SIZE, request.getPageSize());
+
+ return call(get, SearchMembersWsResponse.parser());
+ }
+
public void addMember(String organizationKey, String login) {
PostRequest post = new PostRequest(path("add_member"))
.setParam("organization", requireNonNull(organizationKey))
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 4703f3ff8a5..a8909f452bd 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
@@ -55,6 +55,26 @@ public class OrganizationServiceTest {
}
@Test
+ public void search_members() {
+ underTest.searchMembers(new SearchMembersWsRequest()
+ .setOrganization("orga")
+ .setSelected("selected")
+ .setQuery("john")
+ .setPage(2)
+ .setPageSize(10));
+ GetRequest getRequest = serviceTester.getGetRequest();
+
+ assertThat(serviceTester.getGetParser()).isSameAs(Organizations.SearchMembersWsResponse.parser());
+ serviceTester.assertThat(getRequest)
+ .hasParam("organization", "orga")
+ .hasParam("selected", "selected")
+ .hasParam("q", "john")
+ .hasParam("p", 2)
+ .hasParam("ps", 10)
+ .andNoOtherParam();
+ }
+
+ @Test
public void add_member() {
underTest.addMember("O1", "login-1");