diff options
author | Daniel Schwarz <daniel.schwarz@sonarsource.com> | 2017-11-14 10:42:32 +0100 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2017-11-16 17:37:18 +0100 |
commit | bff9cf373e2ecbe66344d58c3423b873f1fb17c5 (patch) | |
tree | 1aab779cba6f12fb3ea423d80aab3d65f68ef420 /tests | |
parent | a7d7fa94bf725af62447f4d42fc8a923bba77ff9 (diff) | |
download | sonarqube-bff9cf373e2ecbe66344d58c3423b873f1fb17c5.tar.gz sonarqube-bff9cf373e2ecbe66344d58c3423b873f1fb17c5.zip |
Auto-generate sonar-ws for integration tests
Diffstat (limited to 'tests')
97 files changed, 654 insertions, 689 deletions
diff --git a/tests/plugins/ws-plugin/src/main/java/LocalCallWebService.java b/tests/plugins/ws-plugin/src/main/java/LocalCallWebService.java index 7de752bba25..d626d68d02f 100644 --- a/tests/plugins/ws-plugin/src/main/java/LocalCallWebService.java +++ b/tests/plugins/ws-plugin/src/main/java/LocalCallWebService.java @@ -22,7 +22,7 @@ import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonarqube.ws.MediaTypes; -import org.sonarqube.ws.WsCe; +import org.sonarqube.ws.Ce; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.LocalWsClientFactory; import org.sonarqube.ws.client.WsClient; @@ -50,7 +50,7 @@ public final class LocalCallWebService implements WebService { public void handle(Request request, Response response) throws Exception { WsClient client = wsClientFactory.newClient(request.localConnector()); - WsCe.TaskTypesWsResponse ceTaskTypes = client.ce().taskTypes(); + Ce.TaskTypesWsResponse ceTaskTypes = client.ce().taskTypes(); response.stream().setStatus(ceTaskTypes.getTaskTypesCount() > 0 ? 200 : 500); } } diff --git a/tests/pom.xml b/tests/pom.xml index 36edfa2bc3f..c36c4aaee20 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -43,6 +43,13 @@ <scope>test</scope> </dependency> <dependency> + <!-- required for overriding ws-client 4.5 to have complete error stacktraces + in Issue tests --> + <groupId>org.codehaus.sonar</groupId> + <artifactId>sonar-ws-client</artifactId> + <version>5.0</version> + </dependency> + <dependency> <groupId>org.sonarsource.sonarqube</groupId> <artifactId>sonar-application</artifactId> <version>${project.version}</version> @@ -68,11 +75,6 @@ <scope>provided</scope> </dependency> <dependency> - <groupId>org.codehaus.sonar</groupId> - <artifactId>sonar-ws-client</artifactId> - <version>5.0</version> - </dependency> - <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> @@ -81,10 +83,6 @@ <artifactId>assertj-core</artifactId> </dependency> <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-guava</artifactId> - </dependency> - <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> </dependency> @@ -98,19 +96,10 @@ <version>1.2.0</version> </dependency> <dependency> - <groupId>org.jsoup</groupId> - <artifactId>jsoup</artifactId> - <version>1.8.3</version> - </dependency> - <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>mockwebserver</artifactId> </dependency> <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-email</artifactId> - </dependency> - <dependency> <groupId>org.subethamail</groupId> <artifactId>subethasmtp</artifactId> </dependency> diff --git a/tests/src/test/java/org/sonarqube/tests/Category1Suite.java b/tests/src/test/java/org/sonarqube/tests/Category1Suite.java index 34afd54d11b..eca1a1038f7 100644 --- a/tests/src/test/java/org/sonarqube/tests/Category1Suite.java +++ b/tests/src/test/java/org/sonarqube/tests/Category1Suite.java @@ -24,7 +24,6 @@ import org.junit.ClassRule; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.sonarqube.tests.ce.BackgroundTasksTest; -import org.sonarqube.tests.projectAdministration.ProjectAdministrationTest; import org.sonarqube.tests.settings.DeprecatedPropertiesWsTest; import org.sonarqube.tests.settings.EmailsTest; import org.sonarqube.tests.settings.PropertySetsTest; @@ -42,7 +41,6 @@ import static util.ItUtils.xooPlugin; @RunWith(Suite.class) @Suite.SuiteClasses({ UsersPageTest.class, - ProjectAdministrationTest.class, BackgroundTasksTest.class, DeprecatedPropertiesWsTest.class, EmailsTest.class, @@ -57,18 +55,19 @@ public class Category1Suite { .addPlugin(pluginArtifact("property-sets-plugin")) .addPlugin(pluginArtifact("sonar-subcategories-plugin")) - // Used in I18nTest - .addPlugin(pluginArtifact("l10n-fr-pack")) - - // 1 second. Required for notification test. - .setServerProperty("sonar.notifications.delay", "1") - // Used in SettingsTest.global_property_change_extension_point .addPlugin(pluginArtifact("global-property-change-plugin")) // Used in SettingsTest.should_get_settings_default_value .addPlugin(pluginArtifact("server-plugin")) + + // Used in I18nTest + .addPlugin(pluginArtifact("l10n-fr-pack")) + + // 1 second. Required for notification test. + .setServerProperty("sonar.notifications.delay", "1") + .addPlugin(pluginArtifact("posttask-plugin")) // reduce memory for Elasticsearch to 128M diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java index db55ef7f23f..c0615144afd 100644 --- a/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java +++ b/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java @@ -35,16 +35,16 @@ import org.junit.After; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Byteman; import org.sonarqube.qa.util.Tester; +import org.sonarqube.tests.Byteman; +import org.sonarqube.ws.Ce; import org.sonarqube.ws.Common; import org.sonarqube.ws.Issues; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile; -import org.sonarqube.ws.WsCe; -import org.sonarqube.ws.WsProjects; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.ce.TaskWsRequest; +import org.sonarqube.ws.Qualityprofiles.CreateWsResponse.QualityProfile; +import org.sonarqube.ws.Projects; +import org.sonarqube.ws.Users.CreateWsResponse.User; +import org.sonarqube.ws.client.ce.TaskRequest; import org.sonarqube.ws.client.component.SuggestionsWsRequest; import org.sonarqube.ws.client.issue.SearchWsRequest; import util.ItUtils; @@ -52,7 +52,7 @@ import util.ItUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.tuple; import static org.sonarqube.tests.Byteman.Process.CE; -import static org.sonarqube.ws.WsCe.TaskStatus.FAILED; +import static org.sonarqube.ws.Ce.TaskStatus.FAILED; import static util.ItUtils.projectDir; public class AnalysisEsResilienceTest { @@ -86,7 +86,7 @@ public class AnalysisEsResilienceTest { public void activation_and_deactivation_of_rule_is_resilient_to_indexing_errors() throws Exception { Organization organization = tester.organizations().generate(); User orgAdministrator = tester.users().generateAdministrator(organization); - WsProjects.CreateWsResponse.Project project = tester.projects().generate(organization); + Projects.CreateWsResponse.Project project = tester.projects().provision(organization); String projectKey = project.getKey(); String fileKey = projectKey + ":src/main/xoo/sample/Sample.xoo"; String file2Key = projectKey + ":src/main/xoo/sample/Sample2.xoo"; @@ -134,7 +134,7 @@ public class AnalysisEsResilienceTest { public void purge_mechanism_must_be_resilient_at_next_analysis() throws Exception { Organization organization = tester.organizations().generate(); User orgAdministrator = tester.users().generateAdministrator(organization); - WsProjects.CreateWsResponse.Project project = tester.projects().generate(organization); + Projects.CreateWsResponse.Project project = tester.projects().provision(organization); String projectKey = project.getKey(); String fileKey = projectKey + ":src/main/xoo/sample/Sample.xoo"; @@ -158,9 +158,9 @@ public class AnalysisEsResilienceTest { String taskUuid = executeAnalysis(projectKey, organization, orgAdministrator, "analysis/resilience/resilience-purge", "2000-01-02"); // The task has failed - TaskWsRequest request = TaskWsRequest.newBuilder(taskUuid).withErrorStacktrace().build(); - WsCe.Task task = tester.wsClient().ce().task(request).getTask(); - assertThat(task.getStatus()).isEqualTo(WsCe.TaskStatus.FAILED); + TaskRequest request = new TaskRequest().setId(taskUuid).setAdditionalFields(Collections.singletonList("stacktrace")); + Ce.Task task = tester.wsClient().ce().task(request).getTask(); + assertThat(task.getStatus()).isEqualTo(Ce.TaskStatus.FAILED); assertThat(task.getErrorMessage()).contains("Unrecoverable indexation failures"); assertThat(task.getErrorStacktrace()) .contains("Caused by: java.lang.IllegalStateException: Unrecoverable indexation failures"); @@ -208,7 +208,7 @@ public class AnalysisEsResilienceTest { public void compute_engine_task_must_be_red_when_es_is_not_available() throws Exception { Organization organization = tester.organizations().generate(); User orgAdministrator = tester.users().generateAdministrator(organization); - WsProjects.CreateWsResponse.Project project = tester.projects().generate(organization); + Projects.CreateWsResponse.Project project = tester.projects().provision(organization); String projectKey = project.getKey(); String fileKey = projectKey + ":src/main/xoo/sample/Sample.xoo"; @@ -220,7 +220,7 @@ public class AnalysisEsResilienceTest { tester.elasticsearch().lockWrites("issues"); String analysisKey = executeAnalysis(projectKey, organization, orgAdministrator, "analysis/resilience/resilience-sample-v1", null); - WsCe.TaskResponse task = tester.wsClient().ce().task(analysisKey); + Ce.TaskResponse task = tester.wsClient().ce().task(new TaskRequest().setId(analysisKey)); assertThat(task.getTask().getStatus()).isEqualTo(FAILED); } diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/FavoriteTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/FavoriteTest.java index f94f6aa2833..1bb37ef7303 100644 --- a/tests/src/test/java/org/sonarqube/tests/analysis/FavoriteTest.java +++ b/tests/src/test/java/org/sonarqube/tests/analysis/FavoriteTest.java @@ -29,7 +29,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.sonarqube.ws.Favorites; import org.sonarqube.ws.Favorites.Favorite; -import org.sonarqube.ws.WsPermissions; +import org.sonarqube.ws.Permissions; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.favorite.SearchRequest; import org.sonarqube.ws.client.permission.AddProjectCreatorToTemplateWsRequest; @@ -105,7 +105,7 @@ public class FavoriteTest { } private void addProjectCreatorPermission() { - WsPermissions.SearchTemplatesWsResponse permissionTemplates = adminWsClient.permissions().searchTemplates(new SearchTemplatesWsRequest()); + Permissions.SearchTemplatesWsResponse permissionTemplates = adminWsClient.permissions().searchTemplates(new SearchTemplatesWsRequest()); assertThat(permissionTemplates.getDefaultTemplatesCount()).isEqualTo(1); adminWsClient.permissions().addProjectCreatorToTemplate(AddProjectCreatorToTemplateWsRequest.builder() .setTemplateId(permissionTemplates.getDefaultTemplates(0).getTemplateId()) @@ -114,7 +114,7 @@ public class FavoriteTest { } private void removeProjectCreatorPermission() { - WsPermissions.SearchTemplatesWsResponse permissionTemplates = adminWsClient.permissions().searchTemplates(new SearchTemplatesWsRequest()); + Permissions.SearchTemplatesWsResponse permissionTemplates = adminWsClient.permissions().searchTemplates(new SearchTemplatesWsRequest()); assertThat(permissionTemplates.getDefaultTemplatesCount()).isEqualTo(1); adminWsClient.permissions().removeProjectCreatorFromTemplate(RemoveProjectCreatorFromTemplateWsRequest.builder() .setTemplateId(permissionTemplates.getDefaultTemplates(0).getTemplateId()) diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/FileExclusionsTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/FileExclusionsTest.java index c5e11147036..980cd9cafae 100644 --- a/tests/src/test/java/org/sonarqube/tests/analysis/FileExclusionsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/analysis/FileExclusionsTest.java @@ -27,7 +27,7 @@ import java.util.Map; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; -import org.sonarqube.ws.WsComponents.Component; +import org.sonarqube.ws.Components.Component; import org.sonarqube.ws.client.component.TreeWsRequest; import util.ItUtils; diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/IssueExclusionsTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/IssueExclusionsTest.java index 615a5a2aeb6..19dc6faba4c 100644 --- a/tests/src/test/java/org/sonarqube/tests/analysis/IssueExclusionsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/analysis/IssueExclusionsTest.java @@ -22,11 +22,13 @@ package org.sonarqube.tests.analysis; import com.sonar.orchestrator.Orchestrator; import com.sonar.orchestrator.build.BuildResult; import com.sonar.orchestrator.build.SonarScanner; -import org.sonarqube.tests.Category4Suite; import java.util.Map; -import org.junit.Before; import org.junit.ClassRule; +import org.junit.Rule; import org.junit.Test; +import org.sonarqube.qa.util.Tester; +import org.sonarqube.tests.Category4Suite; +import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; import util.ItUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -40,10 +42,10 @@ public class IssueExclusionsTest { @ClassRule public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - @Before - public void resetData() { - orchestrator.resetData(); - } + @Rule + public Tester tester = new Tester(orchestrator) + // all the tests of Category4Suite must disable organizations + .disableOrganizations(); @Test public void should_not_exclude_anything() { @@ -233,9 +235,12 @@ public class IssueExclusionsTest { protected BuildResult scan(String... properties) { ItUtils.restoreProfile(orchestrator, getClass().getResource("/exclusions/IssueExclusionsTest/with-many-rules.xml")); - orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-exclusions", - "Sonar :: Integration Tests :: Multi-modules With Exclusions"); - orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-exclusions", "xoo", "with-many-rules"); + + tester.projects().provision(p -> p + .setKey("com.sonarsource.it.samples:multi-modules-exclusions") + .setName("Sonar :: Integration Tests :: Multi-modules With Exclusions")); + tester.wsClient().qualityProfiles().addProject(AddProjectRequest.builder().setProjectKey("com.sonarsource.it.samples:multi-modules-exclusions") + .setLanguage("xoo").setQualityProfile("with-many-rules").build()); SonarScanner scan = SonarScanner.create(ItUtils.projectDir(PROJECT_DIR)) .setProperty("sonar.cpd.exclusions", "**/*") diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/LinksTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/LinksTest.java index eb14836b2c1..574dc29c367 100644 --- a/tests/src/test/java/org/sonarqube/tests/analysis/LinksTest.java +++ b/tests/src/test/java/org/sonarqube/tests/analysis/LinksTest.java @@ -29,7 +29,7 @@ import java.util.Optional; import org.junit.After; import org.junit.ClassRule; import org.junit.Test; -import org.sonarqube.ws.WsProjectLinks; +import org.sonarqube.ws.ProjectLinks; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.projectlinks.SearchWsRequest; import util.ItUtils; @@ -75,7 +75,7 @@ public class LinksTest { private void verifyLinks() { WsClient wsClient = ItUtils.newWsClient(orchestrator); - List<WsProjectLinks.Link> links = wsClient.projectLinks().search(new SearchWsRequest().setProjectKey(PROJECT_KEY)).getLinksList(); + List<ProjectLinks.Link> links = wsClient.projectLinks().search(new SearchWsRequest().setProjectKey(PROJECT_KEY)).getLinksList(); verifyLink(links, "homepage", "http://www.simplesample.org_OVERRIDDEN"); verifyLink(links, "ci", "http://bamboo.ci.codehaus.org/browse/SIMPLESAMPLE"); verifyLink(links, "issue", "http://jira.codehaus.org/browse/SIMPLESAMPLE"); @@ -83,8 +83,8 @@ public class LinksTest { verifyLink(links, "scm_dev", "scm:git:git@github.com:SonarSource/simplesample.git"); } - private void verifyLink(List<WsProjectLinks.Link> links, String expectedType, String expectedUrl) { - Optional<WsProjectLinks.Link> link = links.stream() + private void verifyLink(List<ProjectLinks.Link> links, String expectedType, String expectedUrl) { + Optional<ProjectLinks.Link> link = links.stream() .filter(l -> l.getType().equals(expectedType)) .findFirst(); assertThat(link).isPresent(); diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/PermissionTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/PermissionTest.java index 79663eec478..d0f4eefd4a4 100644 --- a/tests/src/test/java/org/sonarqube/tests/analysis/PermissionTest.java +++ b/tests/src/test/java/org/sonarqube/tests/analysis/PermissionTest.java @@ -29,7 +29,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.ws.WsUserTokens; +import org.sonarqube.ws.UserTokens; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.permission.AddUserWsRequest; import org.sonarqube.ws.client.usertoken.GenerateWsRequest; @@ -79,7 +79,7 @@ public class PermissionTest { createUserWithProvisioningAndScanPermissions(); String tokenName = "For test"; - WsUserTokens.GenerateWsResponse generateWsResponse = userTokensWsClient.generate(new GenerateWsRequest() + UserTokens.GenerateWsResponse generateWsResponse = userTokensWsClient.generate(new GenerateWsRequest() .setLogin(A_LOGIN) .setName(tokenName)); SonarScanner sampleProject = SonarScanner.create(projectDir("shared/xoo-sample")); diff --git a/tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java b/tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java index cee2d04936e..12006e700ce 100644 --- a/tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java +++ b/tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java @@ -32,6 +32,7 @@ import static util.ItUtils.xooPlugin; ExecuteAnalysisPermissionTest.class, IssuePermissionTest.class, PermissionSearchTest.class, + PermissionTemplatePageTest.class, ProvisioningPermissionTest.class, QualityProfileAdminPermissionTest.class, SystemPasscodeTest.class diff --git a/tests/src/test/java/org/sonarqube/tests/authorization/PermissionSearchTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionSearchTest.java index 703544e337f..f14d2264b71 100644 --- a/tests/src/test/java/org/sonarqube/tests/authorization/PermissionSearchTest.java +++ b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionSearchTest.java @@ -26,9 +26,9 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsPermissions; -import org.sonarqube.ws.WsPermissions.Permission; -import org.sonarqube.ws.WsPermissions.SearchTemplatesWsResponse; +import org.sonarqube.ws.Permissions; +import org.sonarqube.ws.Permissions.Permission; +import org.sonarqube.ws.Permissions.SearchTemplatesWsResponse; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.permission.AddGroupToTemplateWsRequest; import org.sonarqube.ws.client.permission.AddGroupWsRequest; @@ -87,17 +87,17 @@ public class PermissionSearchTest { .setPermission("admin") .setGroupName(GROUP_NAME)); - WsPermissions.WsSearchGlobalPermissionsResponse searchGlobalPermissionsWsResponse = tester.wsClient().permissions().searchGlobalPermissions(); + Permissions.WsSearchGlobalPermissionsResponse searchGlobalPermissionsWsResponse = tester.wsClient().permissions().searchGlobalPermissions(); assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getKey()).isEqualTo("admin"); assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getUsersCount()).isEqualTo(1); // by default, a group has the global admin permission assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getGroupsCount()).isEqualTo(2); - WsPermissions.UsersWsResponse users = tester.wsClient().permissions() + Permissions.UsersWsResponse users = tester.wsClient().permissions() .users(new UsersWsRequest().setPermission("admin")); assertThat(users.getUsersList()).extracting("login").contains(LOGIN); - WsPermissions.WsGroupsResponse groupsResponse = tester.wsClient().permissions() + Permissions.WsGroupsResponse groupsResponse = tester.wsClient().permissions() .groups(new GroupsWsRequest() .setPermission("admin")); assertThat(groupsResponse.getGroupsList()).extracting("name").contains(GROUP_NAME); @@ -105,7 +105,7 @@ public class PermissionSearchTest { @Test public void template_permission_web_services() { - WsPermissions.CreateTemplateWsResponse createTemplateWsResponse = tester.wsClient().permissions().createTemplate( + Permissions.CreateTemplateWsResponse createTemplateWsResponse = tester.wsClient().permissions().createTemplate( new CreateTemplateWsRequest() .setName("my-new-template") .setDescription("template-used-in-tests")); diff --git a/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplatePageTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplatePageTest.java new file mode 100644 index 00000000000..8ef4d43e9f9 --- /dev/null +++ b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplatePageTest.java @@ -0,0 +1,69 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonarqube.tests.authorization; + +import com.sonar.orchestrator.Orchestrator; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.sonarqube.qa.util.Tester; +import org.sonarqube.qa.util.pageobjects.ProjectsManagementPage; +import org.sonarqube.ws.Permissions; +import org.sonarqube.ws.client.permission.AddUserToTemplateWsRequest; +import org.sonarqube.ws.client.permission.CreateTemplateWsRequest; +import org.sonarqube.ws.client.permission.UsersWsRequest; + +import static org.assertj.core.api.Assertions.assertThat; + +public class PermissionTemplatePageTest { + + @ClassRule + public static Orchestrator orchestrator = AuthorizationSuite.ORCHESTRATOR; + + @Rule + public Tester tester = new Tester(orchestrator) + // all the tests of AuthorizationSuite must disable organizations + .disableOrganizations(); + + @Test + public void bulk_apply_permission_template() { + String project = tester.projects().provision().getKey(); + String userLogin = tester.users().generateMemberOfDefaultOrganization().getLogin(); + String adminLogin = tester.users().generateAdministratorOnDefaultOrganization().getLogin(); + + tester.wsClient().permissions().createTemplate(new CreateTemplateWsRequest().setName("foo-template")); + tester.wsClient().permissions().addUserToTemplate( + new AddUserToTemplateWsRequest() + .setPermission("admin") + .setTemplateName("foo-template") + .setLogin(userLogin)); + + ProjectsManagementPage page = tester.openBrowser().logIn().submitCredentials(adminLogin).openProjectsManagement(); + page.shouldHaveProject(project); + page.bulkApplyPermissionTemplate("foo-template"); + Permissions.UsersWsResponse usersResponse = tester.wsClient().permissions().users(new UsersWsRequest() + .setProjectKey(project) + .setPermission("admin") + ); + assertThat(usersResponse.getUsersCount()).isEqualTo(1); + assertThat(usersResponse.getUsers(0).getLogin()).isEqualTo(userLogin); + } + +} diff --git a/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplateTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplateTest.java index 66b925d4fc4..a0d4d4c7860 100644 --- a/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplateTest.java @@ -32,10 +32,10 @@ import org.junit.rules.Timeout; import org.sonarqube.tests.Category6Suite; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsPermissions; -import org.sonarqube.ws.WsPermissions.CreateTemplateWsResponse; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsUsers.CreateWsResponse; +import org.sonarqube.ws.Permissions; +import org.sonarqube.ws.Permissions.CreateTemplateWsResponse; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Users.CreateWsResponse; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.component.SearchProjectsRequest; import org.sonarqube.ws.client.permission.AddUserToTemplateWsRequest; @@ -89,7 +89,7 @@ public class PermissionTemplateTest { Organization organization = tester.organizations().generate(); CreateWsResponse.User user = tester.users().generateMember(organization); CreateWsResponse.User anotherUser = tester.users().generateMember(organization); - WsPermissions.PermissionTemplate template = createTemplate(organization).getPermissionTemplate(); + Permissions.PermissionTemplate template = createTemplate(organization).getPermissionTemplate(); tester.wsClient().permissions().addUserToTemplate(new AddUserToTemplateWsRequest() .setOrganization(organization.getKey()) .setTemplateId(template.getId()) @@ -179,7 +179,7 @@ public class PermissionTemplateTest { } private Project createPrivateProject(Organization organization) { - return tester.projects().generate(organization, p -> p.setVisibility("private")); + return tester.projects().provision(organization, p -> p.setVisibility("private")); } private void assertThatUserHasPermission(CreateWsResponse.User user, Organization organization, Project project) { @@ -203,8 +203,8 @@ public class PermissionTemplateTest { .setOrganization(organization.getKey()) .setProjectKey(project.getKey()) .setPermission("user"); - WsPermissions.UsersWsResponse response = tester.wsClient().permissions().users(request); - Optional<WsPermissions.User> found = response.getUsersList().stream() + Permissions.UsersWsResponse response = tester.wsClient().permissions().users(request); + Optional<Permissions.User> found = response.getUsersList().stream() .filter(u -> user.getLogin().equals(u.getLogin())) .findFirst(); return found.isPresent(); diff --git a/tests/src/test/java/org/sonarqube/tests/authorization/ProvisioningPermissionTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/ProvisioningPermissionTest.java index 27c5b610d6e..3a9da8f55a0 100644 --- a/tests/src/test/java/org/sonarqube/tests/authorization/ProvisioningPermissionTest.java +++ b/tests/src/test/java/org/sonarqube/tests/authorization/ProvisioningPermissionTest.java @@ -26,7 +26,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; import org.sonarqube.ws.client.permission.AddGroupWsRequest; import org.sonarqube.ws.client.permission.AddUserWsRequest; import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java b/tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java index ab19828ace4..601e98ceb16 100644 --- a/tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java @@ -33,7 +33,7 @@ import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.qa.util.LogsTailer; import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.ce.ActivityStatusWsRequest; +import org.sonarqube.ws.client.ce.ActivityStatusRequest; import util.ItUtils; import static com.google.common.base.Preconditions.checkState; @@ -142,7 +142,7 @@ public class CeShutdownTest { } int countInProgressTasks() { - return adminWsClient.ce().activityStatus(ActivityStatusWsRequest.newBuilder().build()).getInProgress(); + return adminWsClient.ce().activityStatus(new ActivityStatusRequest()).getInProgress(); } boolean hasTaskFinishedSuccessfully() throws Exception { diff --git a/tests/src/test/java/org/sonarqube/tests/ce/CeWorkersTest.java b/tests/src/test/java/org/sonarqube/tests/ce/CeWorkersTest.java index 64d0625e192..25090a55def 100644 --- a/tests/src/test/java/org/sonarqube/tests/ce/CeWorkersTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ce/CeWorkersTest.java @@ -45,10 +45,11 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import org.sonarqube.ws.WsCe; +import org.sonarqube.ws.Ce; +import org.sonarqube.ws.Ce; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.ce.ActivityWsRequest; +import org.sonarqube.ws.client.ce.ActivityRequest; import util.ItUtils; import static com.google.common.collect.ImmutableSet.copyOf; @@ -129,7 +130,7 @@ public class CeWorkersTest { waitForEmptyQueue(); - assertThat(adminWsClient.ce().activity(new ActivityWsRequest() + assertThat(adminWsClient.ce().activity(new ActivityRequest() .setType("OOM") .setStatus(ImmutableList.of("FAILED"))) .getTasksCount()) @@ -139,7 +140,7 @@ public class CeWorkersTest { waitForEmptyQueue(); - assertThat(adminWsClient.ce().activity(new ActivityWsRequest() + assertThat(adminWsClient.ce().activity(new ActivityRequest() .setType("OK") .setStatus(ImmutableList.of("SUCCESS"))) .getTasksCount()) @@ -149,7 +150,7 @@ public class CeWorkersTest { waitForEmptyQueue(); - assertThat(adminWsClient.ce().activity(new ActivityWsRequest() + assertThat(adminWsClient.ce().activity(new ActivityRequest() .setType("ISE") .setStatus(ImmutableList.of("FAILED"))) .getTasksCount()) @@ -159,7 +160,7 @@ public class CeWorkersTest { waitForEmptyQueue(); - assertThat(adminWsClient.ce().activity(new ActivityWsRequest() + assertThat(adminWsClient.ce().activity(new ActivityRequest() .setType("OK") .setStatus(ImmutableList.of("SUCCESS"))) .getTasksCount()) @@ -174,11 +175,11 @@ public class CeWorkersTest { @Test public void ce_worker_is_resilient_to_OOM_and_RuntimeException_when_starting_or_stopping_analysis_report_container() throws IOException { - int initSuccessReportTaskCount = adminWsClient.ce().activity(new ActivityWsRequest() + int initSuccessReportTaskCount = adminWsClient.ce().activity(new ActivityRequest() .setType("REPORT") .setStatus(ImmutableList.of("SUCCESS"))) .getTasksCount(); - int initFailedReportTaskCount = adminWsClient.ce().activity(new ActivityWsRequest() + int initFailedReportTaskCount = adminWsClient.ce().activity(new ActivityRequest() .setType("REPORT") .setStatus(ImmutableList.of("FAILED"))) .getTasksCount(); @@ -219,14 +220,14 @@ public class CeWorkersTest { orchestrator.executeBuild(sonarRunner, true); // failure while starting components does fail the tasks - assertThat(adminWsClient.ce().activity(new ActivityWsRequest() + assertThat(adminWsClient.ce().activity(new ActivityRequest() .setType("REPORT") .setStatus(ImmutableList.of("FAILED"))) .getTasksCount()) .isEqualTo(initFailedReportTaskCount + 2); // failure while stopping components does not fail the tasks - assertThat(adminWsClient.ce().activity(new ActivityWsRequest() + assertThat(adminWsClient.ce().activity(new ActivityRequest() .setType("REPORT") .setStatus(ImmutableList.of("SUCCESS"))) .getTasksCount()) @@ -283,7 +284,7 @@ public class CeWorkersTest { private void verifyAnalysesRunInParallel(MappedByteBuffer mappedByteBuffer, int workerCount) { assertThat(adminWsClient.ce().workerCount()) - .extracting(WsCe.WorkerCountResponse::getValue, WsCe.WorkerCountResponse::getCanSetWorkerCount) + .extracting(Ce.WorkerCountResponse::getValue, Ce.WorkerCountResponse::getCanSetWorkerCount) .containsOnly(workerCount, true); blockAnyAnalysisWithFakeGovernancePlugin(mappedByteBuffer); @@ -296,18 +297,18 @@ public class CeWorkersTest { orchestrator.executeBuild(sonarRunner, false); } - List<WsCe.Task> tasksList = waitForWsCallStatus( + List<Ce.Task> tasksList = waitForWsCallStatus( this::getTasksAllTasks, (tasks) -> verifyInProgressTaskCount(tasks, workerCount)); assertThat(tasksList.stream() .filter(CeWorkersTest::pending) - .map(WsCe.Task::getComponentKey) + .map(Ce.Task::getComponentKey) .collect(toSet())) .isEqualTo(copyOf(projectKeys.subList(workerCount, projectKeys.size()))); assertThat(tasksList.stream() .filter(CeWorkersTest::inProgress) - .map(WsCe.Task::getComponentKey) + .map(Ce.Task::getComponentKey) .collect(toSet())) .isEqualTo(copyOf(projectKeys.subList(0, workerCount))); @@ -336,20 +337,20 @@ public class CeWorkersTest { } } - private static boolean verifyInProgressTaskCount(List<WsCe.Task> tasksList, int workerCount) { + private static boolean verifyInProgressTaskCount(List<Ce.Task> tasksList, int workerCount) { return tasksList.stream().filter(CeWorkersTest::inProgress).count() >= workerCount; } - private static boolean pending(WsCe.Task task) { - return WsCe.TaskStatus.PENDING == task.getStatus(); + private static boolean pending(Ce.Task task) { + return Ce.TaskStatus.PENDING == task.getStatus(); } - private static boolean inProgress(WsCe.Task task) { - return WsCe.TaskStatus.IN_PROGRESS == task.getStatus(); + private static boolean inProgress(Ce.Task task) { + return Ce.TaskStatus.IN_PROGRESS == task.getStatus(); } - private List<WsCe.Task> getTasksAllTasks(WsClient wsClient) { - return wsClient.ce().activity(new ActivityWsRequest() + private List<Ce.Task> getTasksAllTasks(WsClient wsClient) { + return wsClient.ce().activity(new ActivityRequest() .setStatus(ImmutableList.of(STATUS_PENDING, STATUS_IN_PROGRESS))) .getTasksList(); } @@ -386,7 +387,7 @@ public class CeWorkersTest { int tasksCount; do { Thread.sleep(delay); - tasksCount = adminWsClient.ce().activity(new ActivityWsRequest() + tasksCount = adminWsClient.ce().activity(new ActivityRequest() .setStatus(ImmutableList.of("PENDING", "IN_PROGRESS"))) .getTasksCount(); i++; diff --git a/tests/src/test/java/org/sonarqube/tests/ce/CeWsTest.java b/tests/src/test/java/org/sonarqube/tests/ce/CeWsTest.java index e6faf6ec58c..aeeac87352e 100644 --- a/tests/src/test/java/org/sonarqube/tests/ce/CeWsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ce/CeWsTest.java @@ -22,13 +22,15 @@ package org.sonarqube.tests.ce; import com.sonar.orchestrator.Orchestrator; import com.sonar.orchestrator.build.BuildResult; import com.sonar.orchestrator.build.SonarScanner; -import org.sonarqube.tests.Category4Suite; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; -import org.sonarqube.ws.WsCe; +import org.sonarqube.tests.Category4Suite; +import org.sonarqube.ws.Ce; +import org.sonarqube.ws.Ce; import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.ce.ActivityWsRequest; +import org.sonarqube.ws.client.ce.ActivityRequest; +import org.sonarqube.ws.client.ce.TaskRequest; import util.ItUtils; import static com.google.common.collect.Lists.newArrayList; @@ -52,25 +54,25 @@ public class CeWsTest { @Test public void activity() { - WsCe.ActivityResponse response = wsClient.ce().activity(new ActivityWsRequest() + Ce.ActivityResponse response = wsClient.ce().activity(new ActivityRequest() .setStatus(newArrayList("SUCCESS")) .setType("REPORT") - .setOnlyCurrents(true) - .setPage(1) - .setPageSize(100)); + .setOnlyCurrents(String.valueOf(true)) + .setP(String.valueOf(1)) + .setPs(String.valueOf(100))); assertThat(response).isNotNull(); assertThat(response.getTasksCount()).isGreaterThan(0); - WsCe.Task firstTask = response.getTasks(0); + Ce.Task firstTask = response.getTasks(0); assertThat(firstTask.getId()).isNotEmpty(); } @Test public void task() { - WsCe.TaskResponse taskResponse = wsClient.ce().task(taskUuid); + Ce.TaskResponse taskResponse = wsClient.ce().task(new TaskRequest().setId(taskUuid)); assertThat(taskResponse.hasTask()).isTrue(); - WsCe.Task task = taskResponse.getTask(); + Ce.Task task = taskResponse.getTask(); assertThat(task.getId()).isEqualTo(taskUuid); assertThat(task.hasErrorMessage()).isFalse(); assertThat(task.hasHasScannerContext()).isTrue(); @@ -79,7 +81,7 @@ public class CeWsTest { @Test public void task_types() { - WsCe.TaskTypesWsResponse response = wsClient.ce().taskTypes(); + Ce.TaskTypesWsResponse response = wsClient.ce().taskTypes(); assertThat(response).isNotNull(); assertThat(response.getTaskTypesCount()).isGreaterThan(0); diff --git a/tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java b/tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java index 411c753b9bd..ed6f9c9f82f 100644 --- a/tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java @@ -44,8 +44,8 @@ import org.junit.Test; import org.sonarqube.tests.Category6Suite; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsProjects; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Projects; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.permission.AddUserWsRequest; @@ -102,12 +102,12 @@ public class ReportFailureNotificationTest { @Test public void send_notification_on_report_processing_failures_to_global_and_project_subscribers() throws Exception { Organizations.Organization organization = tester.organizations().getDefaultOrganization(); - WsUsers.CreateWsResponse.User user1 = tester.users().generateMember(organization, t -> t.setPassword("user1").setEmail("user1@bar.com")); - WsUsers.CreateWsResponse.User user2 = tester.users().generateMember(organization, t -> t.setPassword("user2").setEmail("user2@bar.com")); - WsUsers.CreateWsResponse.User user3 = tester.users().generateMember(organization, t -> t.setPassword("user3").setEmail("user3@bar.com")); - WsProjects.CreateWsResponse.Project project1 = tester.projects().generate(organization, t -> t.setName("Project1")); - WsProjects.CreateWsResponse.Project project2 = tester.projects().generate(organization, t -> t.setName("Project2")); - WsProjects.CreateWsResponse.Project project3 = tester.projects().generate(organization, t -> t.setName("Project3")); + Users.CreateWsResponse.User user1 = tester.users().generateMember(organization, t -> t.setPassword("user1").setEmail("user1@bar.com")); + Users.CreateWsResponse.User user2 = tester.users().generateMember(organization, t -> t.setPassword("user2").setEmail("user2@bar.com")); + Users.CreateWsResponse.User user3 = tester.users().generateMember(organization, t -> t.setPassword("user3").setEmail("user3@bar.com")); + Projects.CreateWsResponse.Project project1 = tester.projects().provision(organization, t -> t.setName("Project1")); + Projects.CreateWsResponse.Project project2 = tester.projects().provision(organization, t -> t.setName("Project2")); + Projects.CreateWsResponse.Project project3 = tester.projects().provision(organization, t -> t.setName("Project3")); // user 1 is admin of project 1 and will subscribe to global notifications tester.wsClient().permissions().addUser(new AddUserWsRequest() .setLogin(user1.getLogin()) @@ -177,7 +177,7 @@ public class ReportFailureNotificationTest { assertThat(waitForEmails()).isEmpty(); } - private static void assertSubjectAndContent(WsProjects.CreateWsResponse.Project project, List<MimeMessage> messages) { + private static void assertSubjectAndContent(Projects.CreateWsResponse.Project project, List<MimeMessage> messages) { assertThat(messages.stream().map(toSubject()).collect(Collectors.toSet())) .containsOnly("[SONARQUBE] " + project.getName() + ": Background task in failure"); Set<String> content = messages.stream().map(toContent()).collect(Collectors.toSet()); @@ -221,7 +221,7 @@ public class ReportFailureNotificationTest { }; } - private void subscribeToReportFailures(WsUsers.CreateWsResponse.User user1, String password, @Nullable WsProjects.CreateWsResponse.Project project) { + private void subscribeToReportFailures(Users.CreateWsResponse.User user1, String password, @Nullable Projects.CreateWsResponse.Project project) { WsClient wsClient = newUserWsClient(orchestrator, user1.getLogin(), password); PostRequest request = new PostRequest("api/notifications/add") .setParam("type", "CeReportTaskFailure") @@ -233,7 +233,7 @@ public class ReportFailureNotificationTest { .failIfNotSuccessful(); } - private void unsubscribeFromReportFailures(WsUsers.CreateWsResponse.User user1, String password, @Nullable WsProjects.CreateWsResponse.Project project) { + private void unsubscribeFromReportFailures(Users.CreateWsResponse.User user1, String password, @Nullable Projects.CreateWsResponse.Project project) { WsClient wsClient = newUserWsClient(orchestrator, user1.getLogin(), password); PostRequest request = new PostRequest("api/notifications/remove") .setParam("type", "CeReportTaskFailure") @@ -245,7 +245,7 @@ public class ReportFailureNotificationTest { .failIfNotSuccessful(); } - private void executeAnalysis(WsProjects.CreateWsResponse.Project project) { + private void executeAnalysis(Projects.CreateWsResponse.Project project) { SonarScanner sonarScanner = SonarScanner.create(projectDir("shared/xoo-sample"), "sonar.projectKey", project.getKey(), "sonar.projectName", project.getName()); diff --git a/tests/src/test/java/org/sonarqube/tests/component/BranchTest.java b/tests/src/test/java/org/sonarqube/tests/component/BranchTest.java index feb667dce65..3d0b3c8ab02 100644 --- a/tests/src/test/java/org/sonarqube/tests/component/BranchTest.java +++ b/tests/src/test/java/org/sonarqube/tests/component/BranchTest.java @@ -27,7 +27,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Common; -import org.sonarqube.ws.WsBranches; +import org.sonarqube.ws.ProjectBranches; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; import util.ItUtils; @@ -47,10 +47,10 @@ public class BranchTest { public void list_branches_contains_main_branch() { runProjectAnalysis(orchestrator, "shared/xoo-sample"); - WsBranches.ListWsResponse result = tester.wsClient().projectBranches().list("sample"); + ProjectBranches.ListWsResponse result = tester.wsClient().projectBranches().list("sample"); assertThat(result.getBranchesList()) - .extracting(WsBranches.Branch::getName, WsBranches.Branch::getType, WsBranches.Branch::getIsMain) + .extracting(ProjectBranches.Branch::getName, ProjectBranches.Branch::getType, ProjectBranches.Branch::getIsMain) .containsExactlyInAnyOrder(Tuple.tuple("master", Common.BranchType.LONG, true)); } diff --git a/tests/src/test/java/org/sonarqube/tests/component/CodePageTest.java b/tests/src/test/java/org/sonarqube/tests/component/CodePageTest.java index 1f1b33f5ae6..ef121b74fc6 100644 --- a/tests/src/test/java/org/sonarqube/tests/component/CodePageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/component/CodePageTest.java @@ -25,7 +25,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; import static util.ItUtils.projectDir; @@ -39,7 +39,7 @@ public class CodePageTest { @Test public void code_page() { - Project project = tester.projects().generate(null); + Project project = tester.projects().provision(); executeAnalysis(project); tester.openBrowser().openCode(project.getKey()) @@ -64,7 +64,7 @@ public class CodePageTest { @Test public void expand_root_dir() { - Project project = tester.projects().generate(null); + Project project = tester.projects().provision(); executeAnalysis(project, "shared/xoo-sample-with-root-dir"); tester.openBrowser().openCode(project.getKey()) diff --git a/tests/src/test/java/org/sonarqube/tests/component/ComponentsWsTest.java b/tests/src/test/java/org/sonarqube/tests/component/ComponentsWsTest.java index 2e9ccdd7819..81a621d0e05 100644 --- a/tests/src/test/java/org/sonarqube/tests/component/ComponentsWsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/component/ComponentsWsTest.java @@ -26,7 +26,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsComponents; +import org.sonarqube.ws.Components; import org.sonarqube.ws.client.component.SearchWsRequest; import org.sonarqube.ws.client.component.ShowWsRequest; @@ -53,7 +53,7 @@ public class ComponentsWsTest { @Test public void show() { - WsComponents.ShowWsResponse response = tester.wsClient().components().show(new ShowWsRequest().setKey(FILE_KEY)); + Components.ShowWsResponse response = tester.wsClient().components().show(new ShowWsRequest().setKey(FILE_KEY)); assertThat(response).isNotNull(); assertThat(response.getComponent().getKey()).isEqualTo(FILE_KEY); @@ -62,7 +62,7 @@ public class ComponentsWsTest { @Test public void search() { - WsComponents.SearchWsResponse response = tester.wsClient().components().search(new SearchWsRequest() + Components.SearchWsResponse response = tester.wsClient().components().search(new SearchWsRequest() .setQualifiers(singletonList("FIL"))); assertThat(response).isNotNull(); diff --git a/tests/src/test/java/org/sonarqube/tests/duplication/NewDuplicationsTest.java b/tests/src/test/java/org/sonarqube/tests/duplication/NewDuplicationsTest.java index 76b6a277a55..9e8d41bf9a1 100644 --- a/tests/src/test/java/org/sonarqube/tests/duplication/NewDuplicationsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/duplication/NewDuplicationsTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsMeasures; +import org.sonarqube.ws.Measures; import static java.lang.Double.parseDouble; import static org.assertj.core.api.Assertions.assertThat; @@ -57,7 +57,7 @@ public class NewDuplicationsTest { @Test public void new_duplications_on_project() throws Exception { - Map<String, WsMeasures.Measure> measures = getMeasures("new-duplications"); + Map<String, Measures.Measure> measures = getMeasures("new-duplications"); assertThat(parseDouble(measures.get("new_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(83d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_duplicated_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(71d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_duplicated_lines_density").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(85.5d, DEFAULT_OFFSET); @@ -66,7 +66,7 @@ public class NewDuplicationsTest { @Test public void new_duplications_on_directory() throws Exception { - Map<String, WsMeasures.Measure> measures = getMeasures("new-duplications:src/main/xoo/duplicated_lines_with_other_dir1"); + Map<String, Measures.Measure> measures = getMeasures("new-duplications:src/main/xoo/duplicated_lines_with_other_dir1"); assertThat(parseDouble(measures.get("new_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(24d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_duplicated_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(24d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_duplicated_lines_density").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(100d, DEFAULT_OFFSET); @@ -75,14 +75,14 @@ public class NewDuplicationsTest { @Test public void new_duplications_on_file() throws Exception { - Map<String, WsMeasures.Measure> measures = getMeasures("new-duplications:src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo"); + Map<String, Measures.Measure> measures = getMeasures("new-duplications:src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo"); assertThat(parseDouble(measures.get("new_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(41d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_duplicated_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(29d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_duplicated_lines_density").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(70.7d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_duplicated_blocks").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(2d, DEFAULT_OFFSET); } - private static Map<String, WsMeasures.Measure> getMeasures(String key) { + private static Map<String, Measures.Measure> getMeasures(String key) { return getMeasuresWithVariationsByMetricKey(orchestrator, key, "new_lines", "new_duplicated_lines", "new_duplicated_lines_density", "new_duplicated_blocks"); } } diff --git a/tests/src/test/java/org/sonarqube/tests/issue/AutoAssignTest.java b/tests/src/test/java/org/sonarqube/tests/issue/AutoAssignTest.java index d3b76382b4f..89d0628ca73 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/AutoAssignTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/AutoAssignTest.java @@ -30,7 +30,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonar.wsclient.issue.Issue; import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.user.CreateRequest; @@ -191,7 +191,7 @@ public class AutoAssignTest extends AbstractIssueTest { private static void deleteAllUsers() { WsClient wsClient = newAdminWsClient(ORCHESTRATOR); - WsUsers.SearchWsResponse searchResponse = wsClient.users().search(SearchRequest.builder().build()); + Users.SearchWsResponse searchResponse = wsClient.users().search(SearchRequest.builder().build()); searchResponse.getUsersList().forEach(user -> { wsClient.wsConnector().call(new PostRequest("api/users/deactivate").setParam("login", user.getLogin())); }); diff --git a/tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java b/tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java index fbeeb637d60..b5bcef07954 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java @@ -44,10 +44,10 @@ import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Issues.Issue; import org.sonarqube.ws.Issues.SearchWsResponse; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Qualityprofiles; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Users; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.issue.AssignRequest; @@ -289,8 +289,8 @@ public class IssueNotificationsTest { private void createSampleProject(String visibility) { // Create project - QualityProfiles.CreateWsResponse.QualityProfile profile = tester.qProfiles().createXooProfile(organization); - Project project = tester.projects().generate(organization, p -> p.setKey(PROJECT_KEY) + Qualityprofiles.CreateWsResponse.QualityProfile profile = tester.qProfiles().createXooProfile(organization); + Project project = tester.projects().provision(organization, p -> p.setKey(PROJECT_KEY) .setName("Sample") .setVisibility(visibility)); tester.qProfiles() @@ -387,7 +387,7 @@ public class IssueNotificationsTest { }).collect(Collectors.toList()); } - private void addNotificationsTo(WsUsers.CreateWsResponse.User user) { + private void addNotificationsTo(Users.CreateWsResponse.User user) { // Add notifications to the test user WsClient wsClient = tester.as(user.getLogin()).wsClient(); wsClient.wsConnector().call(new PostRequest("api/notifications/add") diff --git a/tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java b/tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java index c44fcafaf73..e802dc945ac 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java @@ -31,7 +31,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.issue.SearchWsRequest; import org.sonarqube.ws.client.permission.AddUserWsRequest; import org.sonarqube.ws.client.project.CreateRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/issue/NewIssuesMeasureTest.java b/tests/src/test/java/org/sonarqube/tests/issue/NewIssuesMeasureTest.java index 7b6c4c79f9f..d9df5202424 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/NewIssuesMeasureTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/NewIssuesMeasureTest.java @@ -25,8 +25,8 @@ import org.junit.AfterClass; import org.junit.Before; import org.junit.Test; import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.WsMeasures.Measure; +import org.sonarqube.ws.Measures; +import org.sonarqube.ws.Measures.Measure; import util.ItUtils; import static java.lang.Integer.parseInt; @@ -111,7 +111,7 @@ public class NewIssuesMeasureTest extends AbstractIssueTest { assertThat(ORCHESTRATOR.getServer().wsClient().issueClient().find(IssueQuery.create()).list()).isNotEmpty(); Map<String, Measure> measures = getMeasuresWithVariationsByMetricKey(ORCHESTRATOR, "sample", "new_violations", "violations", "ncloc"); - assertThat(measures.get("new_violations").getPeriods().getPeriodsValueList()).extracting(WsMeasures.PeriodValue::getValue).containsOnly("17"); + assertThat(measures.get("new_violations").getPeriods().getPeriodsValueList()).extracting(Measures.PeriodValue::getValue).containsOnly("17"); Measure violations = measures.get("violations"); assertThat(parseInt(violations.getValue())).isEqualTo(43); diff --git a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java index 8ca101b9fee..db359df1056 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java @@ -32,7 +32,7 @@ import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Issues; import org.sonarqube.ws.Issues.Issue; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.issue.AssignRequest; import org.sonarqube.ws.client.issue.BulkChangeRequest; import org.sonarqube.ws.client.issue.SearchWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java index 13e7c26f8c3..c7feefc3a58 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java @@ -29,7 +29,7 @@ import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category6Suite; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import util.issue.IssueRule; import static util.ItUtils.restoreProfile; @@ -48,8 +48,8 @@ public class OrganizationIssuesPageTest { private Organizations.Organization org1; private Organizations.Organization org2; - private WsUsers.CreateWsResponse.User user1; - private WsUsers.CreateWsResponse.User user2; + private Users.CreateWsResponse.User user1; + private Users.CreateWsResponse.User user2; @Before public void setUp() throws Exception { @@ -81,7 +81,7 @@ public class OrganizationIssuesPageTest { } private String provisionProject(Organizations.Organization organization) { - return tester.projects().generate(organization).getKey(); + return tester.projects().provision(organization).getKey(); } private void analyseProject(String projectKey, String organization) { diff --git a/tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java b/tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java index d1acdb65188..66245b7259e 100644 --- a/tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java +++ b/tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java @@ -26,8 +26,8 @@ import org.junit.Test; import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Issues; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.WsMeasures; +import org.sonarqube.ws.Components; +import org.sonarqube.ws.Measures; import org.sonarqube.ws.client.component.TreeWsRequest; import org.sonarqube.ws.client.issue.IssuesService; import org.sonarqube.ws.client.issue.SearchWsRequest; @@ -75,7 +75,7 @@ public class LiteTest { @Test public void call_components_ws() { // files in project - WsComponents.TreeWsResponse tree = tester.wsClient().components().tree(new TreeWsRequest() + Components.TreeWsResponse tree = tester.wsClient().components().tree(new TreeWsRequest() .setBaseComponentKey(PROJECT_KEY) .setQualifiers(singletonList("FIL"))); assertThat(tree.getComponentsCount()).isEqualTo(4); @@ -89,13 +89,13 @@ public class LiteTest { public void call_measures_ws() { // project measures MeasuresService measuresService = tester.wsClient().measures(); - WsMeasures.ComponentWsResponse component = measuresService.component(new ComponentWsRequest() + Measures.ComponentWsResponse component = measuresService.component(new ComponentWsRequest() .setComponentKey(PROJECT_KEY) .setMetricKeys(asList("lines", "ncloc", "files"))); assertThat(component.getComponent().getMeasuresCount()).isEqualTo(3); // file measures - WsMeasures.ComponentTreeWsResponse tree = measuresService.componentTree(new ComponentTreeWsRequest() + Measures.ComponentTreeWsResponse tree = measuresService.componentTree(new ComponentTreeWsRequest() .setBaseComponentKey(PROJECT_KEY) .setQualifiers(singletonList("FIL")) .setMetricKeys(asList("lines", "ncloc"))); diff --git a/tests/src/test/java/org/sonarqube/tests/measure/MeasuresWsTest.java b/tests/src/test/java/org/sonarqube/tests/measure/MeasuresWsTest.java index e7718f11b36..e83ab8f5c8a 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/MeasuresWsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/MeasuresWsTest.java @@ -27,9 +27,9 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.WsMeasures.ComponentTreeWsResponse; -import org.sonarqube.ws.WsMeasures.ComponentWsResponse; +import org.sonarqube.ws.Measures; +import org.sonarqube.ws.Measures.ComponentTreeWsResponse; +import org.sonarqube.ws.Measures.ComponentWsResponse; import org.sonarqube.ws.client.measure.ComponentTreeWsRequest; import org.sonarqube.ws.client.measure.ComponentWsRequest; @@ -67,7 +67,7 @@ public class MeasuresWsTest { assertThat(response).isNotNull(); assertThat(response.getBaseComponent().getKey()).isEqualTo("sample"); assertThat(response.getMetrics().getMetricsList()).extracting("key").containsOnly("ncloc"); - List<WsMeasures.Component> components = response.getComponentsList(); + List<Measures.Component> components = response.getComponentsList(); assertThat(components).hasSize(2).extracting("key").containsOnly(DIR_KEY, FILE_KEY); assertThat(components.get(0).getMeasuresList().get(0).getValue()).isEqualTo("13"); } @@ -142,7 +142,7 @@ public class MeasuresWsTest { .setMetricKeys(singletonList("ncloc")) .setAdditionalFields(newArrayList("metrics", "periods"))); - WsMeasures.Component component = response.getComponent(); + Measures.Component component = response.getComponent(); assertThat(component.getKey()).isEqualTo("sample"); assertThat(component.getMeasuresList()).isNotEmpty(); assertThat(response.getMetrics().getMetricsList()).extracting("key").containsOnly("ncloc"); diff --git a/tests/src/test/java/org/sonarqube/tests/measure/SincePreviousVersionHistoryTest.java b/tests/src/test/java/org/sonarqube/tests/measure/SincePreviousVersionHistoryTest.java index dede45c53ae..b73d878d87f 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/SincePreviousVersionHistoryTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/SincePreviousVersionHistoryTest.java @@ -33,8 +33,8 @@ import org.sonarqube.qa.util.Tester; import static java.lang.Integer.parseInt; import static org.assertj.core.api.Assertions.assertThat; -import static org.sonarqube.ws.WsMeasures.Measure; -import static org.sonarqube.ws.WsMeasures.PeriodValue; +import static org.sonarqube.ws.Measures.Measure; +import static org.sonarqube.ws.Measures.PeriodValue; import static util.ItUtils.getLeakPeriodValue; import static util.ItUtils.getMeasureWithVariation; import static util.ItUtils.projectDir; diff --git a/tests/src/test/java/org/sonarqube/tests/measure/SinceXDaysHistoryTest.java b/tests/src/test/java/org/sonarqube/tests/measure/SinceXDaysHistoryTest.java index c030f301e0b..93869338c12 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/SinceXDaysHistoryTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/SinceXDaysHistoryTest.java @@ -30,7 +30,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsMeasures; +import org.sonarqube.ws.Measures; import util.ItUtils; import static java.lang.Integer.parseInt; @@ -87,7 +87,7 @@ public class SinceXDaysHistoryTest { } private void checkMeasure(String metric, int variation) { - WsMeasures.Measure measure = getMeasureWithVariation(orchestrator, PROJECT, metric); + Measures.Measure measure = getMeasureWithVariation(orchestrator, PROJECT, metric); assertThat(measure.getPeriods().getPeriodsValueList()).extracting(periodValue -> parseInt(periodValue.getValue())).containsOnly(variation); } diff --git a/tests/src/test/java/org/sonarqube/tests/measure/TimeMachineTest.java b/tests/src/test/java/org/sonarqube/tests/measure/TimeMachineTest.java index 34b9f0dbc18..41ed941920c 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/TimeMachineTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/TimeMachineTest.java @@ -29,9 +29,9 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsMeasures.Measure; -import org.sonarqube.ws.WsMeasures.SearchHistoryResponse; -import org.sonarqube.ws.WsMeasures.SearchHistoryResponse.HistoryValue; +import org.sonarqube.ws.Measures.Measure; +import org.sonarqube.ws.Measures.SearchHistoryResponse; +import org.sonarqube.ws.Measures.SearchHistoryResponse.HistoryValue; import org.sonarqube.ws.client.measure.SearchHistoryRequest; import util.ItUtils; import util.ItUtils.ComponentNavigation; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java b/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java index 911305356e2..33c6de854b8 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java @@ -30,9 +30,10 @@ import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; +import org.sonarqube.ws.client.ce.TaskRequest; import org.sonarqube.ws.client.organization.UpdateProjectVisibilityWsRequest; import org.sonarqube.ws.client.project.CreateRequest; import org.sonarqube.ws.client.project.UpdateVisibilityRequest; @@ -40,7 +41,7 @@ import util.ItUtils; import static java.lang.String.format; import static org.assertj.core.api.Assertions.assertThat; -import static org.sonarqube.ws.WsCe.TaskResponse; +import static org.sonarqube.ws.Ce.TaskResponse; import static util.ItUtils.expectHttpError; import static util.ItUtils.newProjectKey; import static util.ItUtils.projectDir; @@ -76,7 +77,7 @@ public class BillingTest { String taskUuid = executeAnalysis(newProjectKey()); - TaskResponse taskResponse = tester.wsClient().ce().task(taskUuid); + TaskResponse taskResponse = tester.wsClient().ce().task(new TaskRequest().setId(taskUuid)); assertThat(taskResponse.getTask().hasErrorMessage()).isFalse(); } @@ -86,7 +87,7 @@ public class BillingTest { String taskUuid = executeAnalysis(newProjectKey()); - TaskResponse taskResponse = tester.wsClient().ce().task(taskUuid); + TaskResponse taskResponse = tester.wsClient().ce().task(new TaskRequest().setId(taskUuid)); assertThat(taskResponse.getTask().hasErrorMessage()).isTrue(); assertThat(taskResponse.getTask().getErrorMessage()).contains(format("Organization %s cannot perform analysis", organization.getKey())); } @@ -211,7 +212,7 @@ public class BillingTest { } private String createPublicProject() { - return tester.projects().generate(organization).getKey(); + return tester.projects().provision(organization).getKey(); } private String executeAnalysis(String projectKey) { diff --git a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java index 7968fe4d50a..2b738c24afd 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java @@ -29,7 +29,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.HttpException; import org.sonarqube.ws.client.permission.AddUserWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java index 36064dd20f3..e909fd2d810 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java @@ -29,7 +29,7 @@ import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.organization.MembersPage; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; public class OrganizationMembershipUiTest { diff --git a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java index 158516a3ff9..fbf6725f48f 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java @@ -27,16 +27,15 @@ import org.junit.After; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.sonarqube.qa.util.OrganizationTester; import org.sonarqube.qa.util.Tester; +import org.sonarqube.ws.Components; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles; +import org.sonarqube.ws.Qualityprofiles; import org.sonarqube.ws.Rules; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.WsUserGroups.Group; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.UserGroups.Group; +import org.sonarqube.ws.Users; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.component.ComponentsService; import org.sonarqube.ws.client.organization.CreateWsRequest; import org.sonarqube.ws.client.organization.OrganizationService; @@ -53,28 +52,25 @@ import static util.ItUtils.expectForbiddenError; import static util.ItUtils.expectNotFoundError; import static util.ItUtils.expectUnauthorizedError; import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; public class OrganizationTest { private static final String SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS = "sonar.organizations.anyoneCanCreate"; private static final String DEFAULT_ORGANIZATION_KEY = "default-organization"; private static final String NAME = "Foo Company"; - // private static final String KEY = "foo-company"; private static final String DESCRIPTION = "the description of Foo company"; private static final String URL = "https://www.foo.fr"; private static final String AVATAR_URL = "https://www.foo.fr/corporate_logo.png"; @ClassRule public static Orchestrator orchestrator = OrganizationSuite.ORCHESTRATOR; + @Rule public Tester tester = new Tester(orchestrator); - @Rule - public ExpectedException expectedException = ExpectedException.none(); @After public void tearDown() { - setServerProperty(orchestrator, SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, null); + tester.settings().resetSettings(SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS); } @Test @@ -272,22 +268,22 @@ public class OrganizationTest { Group group = tester.groups().generate(organization); tester.groups().addMemberToGroups(organization, user.getLogin(), group.getName()); - List<WsUsers.GroupsWsResponse.Group> memberOfGroups = tester.groups().getGroupsOfUser(organization, user.getLogin()); + List<Users.GroupsWsResponse.Group> memberOfGroups = tester.groups().getGroupsOfUser(organization, user.getLogin()); - assertThat(memberOfGroups).extracting(WsUsers.GroupsWsResponse.Group::getName) + assertThat(memberOfGroups).extracting(Users.GroupsWsResponse.Group::getName) .containsExactlyInAnyOrder(group.getName(), "Members"); } @Test public void anonymous_cannot_create_organizations_even_if_anyone_is_allowed_to() { - setServerProperty(orchestrator, SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, "true"); + tester.settings().setGlobalSettings(SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, "true"); expectUnauthorizedError(() -> tester.asAnonymous().organizations().generate()); } @Test public void logged_in_user_can_create_organizations_if_anyone_is_allowed_to() { - setServerProperty(orchestrator, SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, "true"); + tester.settings().setGlobalSettings(SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, "true"); User user = tester.users().generate(); Organization organization = tester.as(user.getLogin()).organizations().generate(); @@ -302,7 +298,7 @@ public class OrganizationTest { .hasSize(1); } - private WsComponents.SearchWsResponse searchSampleProject(String organizationKey, ComponentsService componentsService) { + private Components.SearchWsResponse searchSampleProject(String organizationKey, ComponentsService componentsService) { return componentsService .search(new org.sonarqube.ws.client.component.SearchWsRequest() .setOrganization(organizationKey) @@ -316,7 +312,7 @@ public class OrganizationTest { } private void verifyOrganization(Organization createdOrganization, String name, String description, String url, - String avatarUrl) { + String avatarUrl) { SearchWsRequest request = new SearchWsRequest.Builder().setOrganizations(createdOrganization.getKey()).build(); List<Organization> result = tester.organizations().service().search(request).getOrganizationsList(); assertThat(result).hasSize(1); @@ -343,7 +339,7 @@ public class OrganizationTest { private void assertThatBuiltInQualityProfilesExist(Organization org) { org.sonarqube.ws.client.qualityprofile.SearchWsRequest profilesRequest = new org.sonarqube.ws.client.qualityprofile.SearchWsRequest() .setOrganizationKey(org.getKey()); - QualityProfiles.SearchWsResponse response = tester.wsClient().qualityProfiles().search(profilesRequest); + Qualityprofiles.SearchWsResponse response = tester.wsClient().qualityProfiles().search(profilesRequest); assertThat(response.getProfilesCount()).isGreaterThan(0); response.getProfilesList().forEach(p -> { diff --git a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationWebExtensionsTest.java b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationWebExtensionsTest.java index 6387a8ee001..f0722be9f33 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationWebExtensionsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationWebExtensionsTest.java @@ -27,7 +27,7 @@ import org.junit.Test; import org.openqa.selenium.By; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import static com.codeborne.selenide.Condition.text; import static com.codeborne.selenide.Selenide.$; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java b/tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java index 5c421aaf580..a31f889a890 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java @@ -22,18 +22,16 @@ package org.sonarqube.tests.organization; import com.sonar.orchestrator.Orchestrator; import java.util.List; -import org.junit.After; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.organization.SearchWsRequest; import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.setServerProperty; public class PersonalOrganizationTest { @@ -47,21 +45,16 @@ public class PersonalOrganizationTest { @Before public void setUp() { - setServerProperty(orchestrator, SETTING_CREATE_PERSONAL_ORG, "true"); - } - - @After - public void tearDown() { - setServerProperty(orchestrator, SETTING_CREATE_PERSONAL_ORG, null); + tester.settings().setGlobalSettings(SETTING_CREATE_PERSONAL_ORG, "true"); } @Test public void personal_organizations_are_created_for_new_users() { - WsUsers.CreateWsResponse.User user = tester.users().generate(); + Users.CreateWsResponse.User user = tester.users().generate(); List<Organizations.Organization> existing = tester.wsClient().organizations().search(SearchWsRequest.builder().build()).getOrganizationsList(); assertThat(existing) - .filteredOn(o -> o.getGuarded()) + .filteredOn(Organizations.Organization::getGuarded) .filteredOn(o -> o.getKey().equals(user.getLogin())) .hasSize(1) .matches(l -> l.get(0).getName().equals(user.getName())); diff --git a/tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java b/tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java index 2a7d0d3f8bc..18451b12339 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java @@ -26,8 +26,8 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.TesterSession; -import org.sonarqube.ws.WsRoot; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Root; +import org.sonarqube.ws.Users; import util.user.UserRule; import static org.assertj.core.api.Assertions.assertThat; @@ -45,17 +45,17 @@ public class RootUserTest { @Test public void system_administrator_is_flagged_as_root_when_he_enables_organization_support() { assertThat(tester.wsClient().roots().search().getRootsList()) - .extracting(WsRoot.Root::getLogin) + .extracting(Root.RootContent::getLogin) .containsExactly(UserRule.ADMIN_LOGIN); } @Test public void a_root_can_flag_other_user_as_root() { - WsUsers.CreateWsResponse.User user = tester.users().generate(); + Users.CreateWsResponse.User user = tester.users().generate(); tester.wsClient().roots().setRoot(user.getLogin()); assertThat(tester.wsClient().roots().search().getRootsList()) - .extracting(WsRoot.Root::getLogin) + .extracting(Root.RootContent::getLogin) .containsExactlyInAnyOrder(UserRule.ADMIN_LOGIN, user.getLogin()); } @@ -66,8 +66,8 @@ public class RootUserTest { @Test public void root_can_be_set_and_unset_via_web_services() { - WsUsers.CreateWsResponse.User user1 = tester.users().generate(); - WsUsers.CreateWsResponse.User user2 = tester.users().generate(); + Users.CreateWsResponse.User user1 = tester.users().generate(); + Users.CreateWsResponse.User user2 = tester.users().generate(); TesterSession user1Session = tester.as(user1.getLogin()); TesterSession user2Session = tester.as(user2.getLogin()); diff --git a/tests/src/test/java/org/sonarqube/tests/performance/AbstractPerfTest.java b/tests/src/test/java/org/sonarqube/tests/performance/AbstractPerfTest.java index 67f05db0964..7d3bc262e16 100644 --- a/tests/src/test/java/org/sonarqube/tests/performance/AbstractPerfTest.java +++ b/tests/src/test/java/org/sonarqube/tests/performance/AbstractPerfTest.java @@ -27,9 +27,7 @@ import java.io.IOException; import java.util.Properties; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -import org.hamcrest.CustomMatcher; import org.junit.Rule; -import org.junit.rules.ErrorCollector; import org.junit.rules.TestName; import static org.assertj.core.api.Assertions.assertThat; @@ -46,34 +44,11 @@ public abstract class AbstractPerfTest { assertThat(Math.abs(variation)).as(String.format("Expected %d ms, got %d ms", expectedDuration, duration)).isLessThan(ACCEPTED_DURATION_VARIATION_IN_PERCENTS); } - protected void assertDurationAround(ErrorCollector collector, long duration, long expectedDuration) { - double variation = 100.0 * (0.0 + duration - expectedDuration) / expectedDuration; - System.out.printf("Test %s : executed in %d ms (%.2f %% from target)\n", testName.getMethodName(), duration, variation); - collector.checkThat(String.format("Expected %d ms, got %d ms", expectedDuration, duration), Math.abs(variation), new CustomMatcher<Double>("a value less than " - + ACCEPTED_DURATION_VARIATION_IN_PERCENTS) { - @Override - public boolean matches(Object item) { - return ((item instanceof Double) && ((Double) item).compareTo(ACCEPTED_DURATION_VARIATION_IN_PERCENTS) < 0); - } - }); - } - protected void assertDurationLessThan(long duration, long maxDuration) { System.out.printf("Test %s : %d ms (max allowed is %d)\n", testName.getMethodName(), duration, maxDuration); assertThat(duration).as(String.format("Expected less than %d ms, got %d ms", maxDuration, duration)).isLessThanOrEqualTo(maxDuration); } - protected void assertDurationLessThan(ErrorCollector collector, long duration, final long maxDuration) { - System.out.printf("Test %s : %d ms (max allowed is %d)\n", testName.getMethodName(), duration, maxDuration); - collector.checkThat(String.format("Expected less than %d ms, got %d ms", maxDuration, duration), duration, new CustomMatcher<Long>("a value less than " - + maxDuration) { - @Override - public boolean matches(Object item) { - return ((item instanceof Long) && ((Long) item).compareTo(maxDuration) < 0); - } - }); - } - protected Properties readProfiling(File baseDir, String moduleKey) throws IOException { File profilingFile = new File(baseDir, ".sonar/profiling/" + moduleKey + "-profiler.properties"); Properties props = new Properties(); diff --git a/tests/src/test/java/org/sonarqube/tests/performance/PerfRule.java b/tests/src/test/java/org/sonarqube/tests/performance/PerfRule.java index 7b12d79bd38..1887d1aaba9 100644 --- a/tests/src/test/java/org/sonarqube/tests/performance/PerfRule.java +++ b/tests/src/test/java/org/sonarqube/tests/performance/PerfRule.java @@ -20,22 +20,20 @@ package org.sonarqube.tests.performance; import com.google.common.base.Joiner; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import org.hamcrest.CustomMatcher; import org.junit.rules.ErrorCollector; import org.junit.runner.Description; import org.junit.runners.model.Statement; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - public abstract class PerfRule extends ErrorCollector { private final int runCount; - private final List<List<Long>> recordedResults = new ArrayList<List<Long>>(); + private final List<List<Long>> recordedResults = new ArrayList<>(); private int currentRun; - private String testName; public PerfRule(int runCount) { this.runCount = runCount; @@ -43,12 +41,11 @@ public abstract class PerfRule extends ErrorCollector { @Override public Statement apply(final Statement base, Description description) { - this.testName = description.getMethodName(); return new Statement() { @Override public void evaluate() throws Throwable { for (currentRun = 1; currentRun <= runCount; currentRun++) { - recordedResults.add(new ArrayList<Long>()); + recordedResults.add(new ArrayList<>()); beforeEachRun(); base.evaluate(); } @@ -66,6 +63,7 @@ public abstract class PerfRule extends ErrorCollector { long meanDuration = computeAverageDurationOfCurrentStep(); double variation = 100.0 * (0.0 + meanDuration - expectedDuration) / expectedDuration; checkThat(String.format("Expected %d ms in average, got %d ms [%s]", expectedDuration, meanDuration, Joiner.on(",").join(getAllResultsOfCurrentStep())), Math.abs(variation), + new CustomMatcher<Double>( "a value less than " + AbstractPerfTest.ACCEPTED_DURATION_VARIATION_IN_PERCENTS) { @@ -101,21 +99,6 @@ public abstract class PerfRule extends ErrorCollector { return recordedResults.get(currentRun - 1); } - public void assertDurationLessThan(long duration, final long maxDuration) { - currentResults().add(duration); - if (isLastRun()) { - long meanDuration = computeAverageDurationOfCurrentStep(); - checkThat(String.format("Expected less than %d ms in average, got %d ms [%s]", maxDuration, meanDuration, Joiner.on(",").join(getAllResultsOfCurrentStep())), meanDuration, - new CustomMatcher<Long>("a value less than " - + maxDuration) { - @Override - public boolean matches(Object item) { - return ((item instanceof Long) && ((Long) item).compareTo(maxDuration) < 0); - } - }); - } - } - private boolean isLastRun() { return currentRun == runCount; } diff --git a/tests/src/test/java/org/sonarqube/tests/performance/scanner/DuplicationTest.java b/tests/src/test/java/org/sonarqube/tests/performance/scanner/DuplicationTest.java index 4729fb331d8..6d18fec7152 100644 --- a/tests/src/test/java/org/sonarqube/tests/performance/scanner/DuplicationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/performance/scanner/DuplicationTest.java @@ -33,7 +33,7 @@ import org.junit.Test; import org.junit.rules.ErrorCollector; import org.junit.rules.TemporaryFolder; import org.sonarqube.tests.performance.AbstractPerfTest; -import org.sonarqube.ws.WsMeasures; +import org.sonarqube.ws.Measures; import org.sonarqube.ws.client.HttpConnector; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.WsClientFactories; @@ -85,7 +85,7 @@ public class DuplicationTest extends AbstractPerfTest { .setMetricKeys(asList("duplicated_lines", "duplicated_blocks", "duplicated_files", "duplicated_lines_density"))) .getComponent().getMeasuresList() .stream() - .collect(Collectors.toMap(WsMeasures.Measure::getMetric, measure -> parseDouble(measure.getValue()))); + .collect(Collectors.toMap(Measures.Measure::getMetric, measure -> parseDouble(measure.getValue()))); } private WsClient newWsClient() { diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionPageTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionPageTest.java index a040b04d25d..770e83b8192 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionPageTest.java @@ -25,7 +25,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; import org.sonarqube.ws.client.component.SearchProjectsRequest; import static com.codeborne.selenide.Condition.text; @@ -53,9 +53,9 @@ public class ProjectBulkDeletionPageTest { */ @Test public void bulk_deletion_on_selected_projects() throws Exception { - Project project1 = tester.projects().generate(null, t -> t.setName("Foo")); - Project project2 = tester.projects().generate(null, t -> t.setName("Bar")); - Project project3 = tester.projects().generate(null, t -> t.setName("FooQux")); + Project project1 = tester.projects().provision(p -> p.setName("Foo")); + Project project2 = tester.projects().provision(p -> p.setName("Bar")); + Project project3 = tester.projects().provision(p -> p.setName("FooQux")); tester.openBrowser().logIn().submitCredentials(sysAdminLogin).open("/organizations/default-organization/projects_management"); $("#projects-management-page").shouldHave(text(project1.getName())).shouldHave(text(project2.getName())).shouldHave(text(project3.getName())); diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionTest.java index 559589ffc58..7036f46a69d 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionTest.java @@ -28,8 +28,8 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsProjects.CreateWsResponse; -import org.sonarqube.ws.WsProjects.SearchWsResponse.Component; +import org.sonarqube.ws.Projects.CreateWsResponse; +import org.sonarqube.ws.Projects.SearchWsResponse.Component; import org.sonarqube.ws.client.project.SearchWsRequest; import static org.assertj.core.api.Assertions.assertThat; @@ -46,9 +46,9 @@ public class ProjectBulkDeletionTest { @Test public void delete_projects() { Organizations.Organization organization = tester.organizations().generate(); - CreateWsResponse.Project firstProvisionedProject = tester.projects().generate(organization, p -> p.setKey("first-provisioned-project")); - CreateWsResponse.Project secondProvisionedProject = tester.projects().generate(organization, p -> p.setKey("second-provisioned-project")); - CreateWsResponse.Project analyzedProject = tester.projects().generate(organization); + CreateWsResponse.Project firstProvisionedProject = tester.projects().provision(organization, p -> p.setKey("first-provisioned-project")); + CreateWsResponse.Project secondProvisionedProject = tester.projects().provision(organization, p -> p.setKey("second-provisioned-project")); + CreateWsResponse.Project analyzedProject = tester.projects().provision(organization); analyzeProject(analyzedProject.getKey(), organization.getKey()); @@ -66,7 +66,7 @@ public class ProjectBulkDeletionTest { @Test public void delete_more_than_50_projects_at_the_same_time() { Organizations.Organization organization = tester.organizations().generate(); - IntStream.range(0, 60).forEach(i -> tester.projects().generate(organization)); + IntStream.range(0, 60).forEach(i -> tester.projects().provision(organization)); SearchWsRequest request = SearchWsRequest.builder().setOrganization(organization.getKey()).build(); assertThat(tester.wsClient().projects().search(request).getPaging().getTotal()).isEqualTo(60); diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectDeletionTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectDeletionTest.java index abd50a848cd..6495e142727 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectDeletionTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectDeletionTest.java @@ -33,10 +33,10 @@ import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.WsProjects; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Components; +import org.sonarqube.ws.Projects; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.WsResponse; @@ -78,7 +78,7 @@ public class ProjectDeletionTest { ItUtils.expectUnauthorizedError(() -> executeDeleteRequest(tester.asAnonymous().wsClient(), projectKey)); // fail if insufficient privilege - WsUsers.CreateWsResponse.User user = tester.users().generate(); + Users.CreateWsResponse.User user = tester.users().generate(); ItUtils.expectForbiddenError(() -> executeDeleteRequest(tester.as(user.getLogin()).wsClient(), projectKey)); // succeed to delete if administrator @@ -193,7 +193,7 @@ public class ProjectDeletionTest { * Projects administration page - uses database */ private boolean isInProjectsSearch(Organizations.Organization organization, String name) { - WsProjects.SearchWsResponse response = tester.wsClient().projects().search( + Projects.SearchWsResponse response = tester.wsClient().projects().search( SearchWsRequest.builder().setOrganization(organization.getKey()).setQuery(name).setQualifiers(singletonList("TRK")).build()); return response.getComponentsCount() > 0; } @@ -202,7 +202,7 @@ public class ProjectDeletionTest { * Projects page - api/components/search_projects - uses ES + DB */ private boolean isInComponentSearchProjects(String name) { - WsComponents.SearchProjectsWsResponse response = tester.wsClient().components().searchProjects( + Components.SearchProjectsWsResponse response = tester.wsClient().components().searchProjects( SearchProjectsRequest.builder().setFilter("query=\"" + name + "\"").build()); return response.getComponentsCount() > 0; } diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectFilterTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectFilterTest.java index 69913864a08..95f4a73fdbc 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectFilterTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectFilterTest.java @@ -32,8 +32,8 @@ import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Common; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsComponents.Component; -import org.sonarqube.ws.WsComponents.SearchProjectsWsResponse; +import org.sonarqube.ws.Components.Component; +import org.sonarqube.ws.Components.SearchProjectsWsResponse; import org.sonarqube.ws.client.component.SearchProjectsRequest; import org.sonarqube.ws.client.project.CreateRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectKeyUpdateTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectKeyUpdateTest.java index 8a2c14f3806..b560d54c68f 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectKeyUpdateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectKeyUpdateTest.java @@ -34,9 +34,9 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.qa.util.Tester; +import org.sonarqube.ws.Components; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.WsProjects; +import org.sonarqube.ws.Projects; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; import org.sonarqube.ws.client.component.SearchProjectsRequest; @@ -71,7 +71,7 @@ public class ProjectKeyUpdateTest { public void update_key() { analyzeXooSample(); String newProjectKey = "another_project_key"; - WsComponents.Component project = tester.wsClient().components().show(new ShowWsRequest().setKey(PROJECT_KEY)).getComponent(); + Components.Component project = tester.wsClient().components().show(new ShowWsRequest().setKey(PROJECT_KEY)).getComponent(); assertThat(project.getKey()).isEqualTo(PROJECT_KEY); tester.wsClient().projects().updateKey(UpdateKeyWsRequest.builder() @@ -86,10 +86,10 @@ public class ProjectKeyUpdateTest { public void bulk_update_key() { analyzeXooSample(); String newProjectKey = "another_project_key"; - WsComponents.Component project = tester.wsClient().components().show(new ShowWsRequest().setKey(PROJECT_KEY)).getComponent(); + Components.Component project = tester.wsClient().components().show(new ShowWsRequest().setKey(PROJECT_KEY)).getComponent(); assertThat(project.getKey()).isEqualTo(PROJECT_KEY); - WsProjects.BulkUpdateKeyWsResponse result = tester.wsClient().projects().bulkUpdateKey(BulkUpdateKeyWsRequest.builder() + Projects.BulkUpdateKeyWsResponse result = tester.wsClient().projects().bulkUpdateKey(BulkUpdateKeyWsRequest.builder() .setKey(PROJECT_KEY) .setFrom(PROJECT_KEY) .setTo(newProjectKey) @@ -98,14 +98,14 @@ public class ProjectKeyUpdateTest { assertThat(tester.wsClient().components().show(new ShowWsRequest().setId(project.getId())).getComponent().getKey()).isEqualTo(newProjectKey); assertThat(result.getKeysCount()).isEqualTo(1); assertThat(result.getKeys(0)) - .extracting(WsProjects.BulkUpdateKeyWsResponse.Key::getKey, WsProjects.BulkUpdateKeyWsResponse.Key::getNewKey, WsProjects.BulkUpdateKeyWsResponse.Key::getDuplicate) + .extracting(Projects.BulkUpdateKeyWsResponse.Key::getKey, Projects.BulkUpdateKeyWsResponse.Key::getNewKey, Projects.BulkUpdateKeyWsResponse.Key::getDuplicate) .containsOnlyOnce(PROJECT_KEY, newProjectKey, false); } @Test public void update_key_of_provisioned_project() { Organizations.Organization organization = tester.organizations().generate(); - WsProjects.CreateWsResponse.Project project = createProject(organization, "one", "Foo"); + Projects.CreateWsResponse.Project project = createProject(organization, "one", "Foo"); updateKey(project, "two"); @@ -120,7 +120,7 @@ public class ProjectKeyUpdateTest { @Test public void recover_indexing_errors_when_updating_key_of_provisioned_project() throws Exception { Organizations.Organization organization = tester.organizations().generate(); - WsProjects.CreateWsResponse.Project project = createProject(organization, "one", "Foo"); + Projects.CreateWsResponse.Project project = createProject(organization, "one", "Foo"); lockWritesOnProjectIndices(); @@ -228,7 +228,7 @@ public class ProjectKeyUpdateTest { tester.elasticsearch().unlockWrites("projectmeasures"); } - private void updateKey(WsProjects.CreateWsResponse.Project project, String newKey) { + private void updateKey(Projects.CreateWsResponse.Project project, String newKey) { tester.wsClient().projects().updateKey(UpdateKeyWsRequest.builder().setKey(project.getKey()).setNewKey(newKey).build()); } @@ -236,7 +236,7 @@ public class ProjectKeyUpdateTest { tester.wsClient().projects().updateKey(UpdateKeyWsRequest.builder().setKey(initialKey).setNewKey(newKey).build()); } - private WsProjects.CreateWsResponse.Project createProject(Organizations.Organization organization, String key, String name) { + private Projects.CreateWsResponse.Project createProject(Organizations.Organization organization, String key, String name) { CreateRequest createRequest = CreateRequest.builder().setKey(key).setName(name).setOrganization(organization.getKey()).build(); return tester.wsClient().projects().create(createRequest).getProject(); } @@ -254,7 +254,7 @@ public class ProjectKeyUpdateTest { */ @CheckForNull private String keyInComponentSearchProjects(String name) { - WsComponents.SearchProjectsWsResponse response = tester.wsClient().components().searchProjects( + Components.SearchProjectsWsResponse response = tester.wsClient().components().searchProjects( SearchProjectsRequest.builder().setFilter("query=\"" + name + "\"").build()); if (response.getComponentsCount() > 0) { return response.getComponents(0).getKey(); diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectLinksTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectLinksTest.java index 4efc15da144..b980b287381 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectLinksTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectLinksTest.java @@ -32,7 +32,7 @@ import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.ProjectLinkItem; import org.sonarqube.qa.util.pageobjects.ProjectLinksPage; -import org.sonarqube.ws.WsProjectLinks.CreateWsResponse; +import org.sonarqube.ws.ProjectLinks.CreateWsResponse; import org.sonarqube.ws.client.projectlinks.CreateWsRequest; import org.sonarqube.ws.client.projectlinks.DeleteWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectProvisioningTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectProvisioningTest.java index 9f9b1a8b7a4..de8a6b65abc 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectProvisioningTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectProvisioningTest.java @@ -30,9 +30,9 @@ import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.WsProjects; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; +import org.sonarqube.ws.Components; +import org.sonarqube.ws.Projects; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; import org.sonarqube.ws.client.component.SearchProjectsRequest; @@ -100,7 +100,7 @@ public class ProjectProvisioningTest { * Projects administration page - uses database */ private boolean isInProjectsSearch(Organizations.Organization organization, String name) { - WsProjects.SearchWsResponse response = tester.wsClient().projects().search( + Projects.SearchWsResponse response = tester.wsClient().projects().search( SearchWsRequest.builder().setOrganization(organization.getKey()).setQuery(name).setQualifiers(singletonList("TRK")).build()); return response.getComponentsCount() > 0; } @@ -109,7 +109,7 @@ public class ProjectProvisioningTest { * Projects page - api/components/search_projects - uses ES + DB */ private boolean isInComponentSearchProjects(String name) { - WsComponents.SearchProjectsWsResponse response = tester.wsClient().components().searchProjects( + Components.SearchProjectsWsResponse response = tester.wsClient().components().searchProjects( SearchProjectsRequest.builder().setFilter("query=\"" + name + "\"").build()); return response.getComponentsCount() > 0; } diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectSearchTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectSearchTest.java index 69cc1a69cfd..65da3c02981 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectSearchTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectSearchTest.java @@ -28,9 +28,9 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsProjects.CreateWsResponse; -import org.sonarqube.ws.WsProjects.SearchWsResponse; -import org.sonarqube.ws.WsProjects.SearchWsResponse.Component; +import org.sonarqube.ws.Projects.CreateWsResponse; +import org.sonarqube.ws.Projects.SearchWsResponse; +import org.sonarqube.ws.Projects.SearchWsResponse.Component; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.project.SearchWsRequest; @@ -50,8 +50,8 @@ public class ProjectSearchTest { @Test public void search_old_projects() { Organizations.Organization organization = tester.organizations().generate(); - CreateWsResponse.Project oldProject = tester.projects().generate(organization); - CreateWsResponse.Project recentProject = tester.projects().generate(organization); + CreateWsResponse.Project oldProject = tester.projects().provision(organization); + CreateWsResponse.Project recentProject = tester.projects().provision(organization); Date now = new Date(); Date oneYearAgo = DateUtils.addDays(now, -365); Date moreThanOneYearAgo = DateUtils.addDays(now, -366); @@ -70,9 +70,9 @@ public class ProjectSearchTest { @Test public void search_on_key_query_partial_match_case_insensitive() { Organizations.Organization organization = tester.organizations().generate(); - CreateWsResponse.Project lowerCaseProject = tester.projects().generate(organization, p -> p.setKey("project-key")); - CreateWsResponse.Project upperCaseProject = tester.projects().generate(organization, p -> p.setKey("PROJECT-KEY")); - CreateWsResponse.Project anotherProject = tester.projects().generate(organization, p -> p.setKey("another-project")); + CreateWsResponse.Project lowerCaseProject = tester.projects().provision(organization, p -> p.setKey("project-key")); + CreateWsResponse.Project upperCaseProject = tester.projects().provision(organization, p -> p.setKey("PROJECT-KEY")); + CreateWsResponse.Project anotherProject = tester.projects().provision(organization, p -> p.setKey("another-project")); analyzeProject(lowerCaseProject.getKey(), organization.getKey()); analyzeProject(upperCaseProject.getKey(), organization.getKey()); @@ -92,9 +92,9 @@ public class ProjectSearchTest { @Test public void search_provisioned_projects() { Organizations.Organization organization = tester.organizations().generate(); - CreateWsResponse.Project firstProvisionedProject = tester.projects().generate(organization); - CreateWsResponse.Project secondProvisionedProject = tester.projects().generate(organization); - CreateWsResponse.Project analyzedProject = tester.projects().generate(organization); + CreateWsResponse.Project firstProvisionedProject = tester.projects().provision(organization); + CreateWsResponse.Project secondProvisionedProject = tester.projects().provision(organization); + CreateWsResponse.Project analyzedProject = tester.projects().provision(organization); analyzeProject(analyzedProject.getKey(), organization.getKey()); diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectAdministrationTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectSettingsTest.java index 2e2c5a4551d..b6550028eb5 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectAdministrationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectSettingsTest.java @@ -17,65 +17,48 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests.projectAdministration; +package org.sonarqube.tests.project; import com.sonar.orchestrator.Orchestrator; import com.sonar.orchestrator.build.SonarScanner; import java.io.UnsupportedEncodingException; -import java.sql.SQLException; -import javax.annotation.Nullable; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.openqa.selenium.By; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; -import org.sonarqube.qa.util.pageobjects.ProjectsManagementPage; import org.sonarqube.qa.util.pageobjects.settings.SettingsPage; -import org.sonarqube.tests.Category1Suite; -import org.sonarqube.ws.WsPermissions; -import org.sonarqube.ws.client.permission.AddUserToTemplateWsRequest; -import org.sonarqube.ws.client.permission.CreateTemplateWsRequest; -import org.sonarqube.ws.client.permission.UsersWsRequest; import static com.codeborne.selenide.Selenide.$; -import static org.assertj.core.api.Assertions.assertThat; import static util.ItUtils.projectDir; -/** - * TODO to be split and moved to project package - */ -public class ProjectAdministrationTest { +public class ProjectSettingsTest { @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public ExpectedException expectedException = ExpectedException.none(); + public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR; @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - - private Navigation nav = Navigation.create(orchestrator); + public Tester tester = new Tester(orchestrator); private String adminUser; @Before - public void deleteAnalysisData() throws SQLException { - orchestrator.resetData(); - adminUser = tester.users().generateAdministrator().getLogin(); + public void setUp() { + adminUser = tester.users().generateAdministratorOnDefaultOrganization().getLogin(); } @Test - public void display_project_settings() throws UnsupportedEncodingException { - scanSample(null, null); + public void display_project_settings() { + analyzeSample(); - SettingsPage page = nav.logIn().submitCredentials(adminUser).openSettings("sample") + SettingsPage page = tester.openBrowser() + .logIn() + .submitCredentials(adminUser) + .openSettings("sample") .assertMenuContains("Analysis Scope") .assertMenuContains("Category 1") - .assertMenuContains("DEV") .assertMenuContains("project-only") .assertMenuContains("Xoo") .assertSettingDisplayed("sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay"); @@ -91,15 +74,25 @@ public class ProjectAdministrationTest { .assertStringSettingValue("sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay", "48"); } + /** + * Values set on project level must not appear on global level + */ @Test - public void display_correct_global_setting () throws UnsupportedEncodingException { - scanSample(null, null); - SettingsPage page = nav.logIn().submitCredentials(adminUser).openSettings("sample") + public void display_correct_global_setting() { + analyzeSample(); + Navigation nav = tester.openBrowser(); + SettingsPage page = nav.logIn() + .submitCredentials(adminUser) + .openSettings("sample") .openCategory("Analysis Scope") .assertSettingDisplayed("sonar.coverage.exclusions") .setStringValue("sonar.coverage.exclusions", "foo") .assertStringSettingValue("sonar.coverage.exclusions", "foo"); + nav.logOut(); + // login as root + tester.wsClient().users().skipOnboardingTutorial(); + nav.logIn().submitCredentials("admin", "admin"); $(".global-navbar-menu ").$(By.linkText("Administration")).click(); page .openCategory("Analysis Scope") @@ -111,42 +104,15 @@ public class ProjectAdministrationTest { public void display_module_settings() throws UnsupportedEncodingException { orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - nav.logIn().submitCredentials(adminUser) + tester.openBrowser().logIn().submitCredentials(adminUser) .openSettings("com.sonarsource.it.samples:multi-modules-sample:module_a") .assertMenuContains("Analysis Scope") .assertSettingDisplayed("sonar.coverage.exclusions"); } - @Test - public void bulk_apply_permission_template() { - String project = tester.projects().generate(null).getKey(); - String user = tester.users().generate().getLogin(); - tester.wsClient().permissions().createTemplate(new CreateTemplateWsRequest().setName("foo-template")); - tester.wsClient().permissions().addUserToTemplate( - new AddUserToTemplateWsRequest() - .setPermission("admin") - .setTemplateName("foo-template") - .setLogin(user)); - ProjectsManagementPage page = nav.logIn().submitCredentials(adminUser).openProjectsManagement(); - page.shouldHaveProject(project); - page.bulkApplyPermissionTemplate("foo-template"); - WsPermissions.UsersWsResponse usersResponse = tester.wsClient().permissions().users(new UsersWsRequest() - .setProjectKey(project) - .setPermission("admin") - ); - assertThat(usersResponse.getUsersCount()).isEqualTo(1); - assertThat(usersResponse.getUsers(0).getLogin()).isEqualTo(user); - } - - private void scanSample(@Nullable String date, @Nullable String profile) { + private void analyzeSample() { SonarScanner scan = SonarScanner.create(projectDir("shared/xoo-sample")) .setProperty("sonar.cpd.exclusions", "**/*"); - if (date != null) { - scan.setProperty("sonar.projectDate", date); - } - if (profile != null) { - scan.setProfile(profile); - } orchestrator.executeBuild(scan); } } diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectSuite.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectSuite.java index 65121e03c67..711ace6dd4e 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectSuite.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectSuite.java @@ -26,6 +26,7 @@ import org.junit.ClassRule; import org.junit.runner.RunWith; import org.junit.runners.Suite; +import static util.ItUtils.pluginArtifact; import static util.ItUtils.xooPlugin; @RunWith(Suite.class) @@ -42,10 +43,11 @@ import static util.ItUtils.xooPlugin; ProjectsPageTest.class, ProjectProvisioningTest.class, ProjectSearchTest.class, + ProjectSettingsTest.class, ProjectVisibilityPageTest.class }) public class ProjectSuite { - public static final int SEARCH_HTTP_PORT = NetworkUtils.getNextAvailablePort(InetAddress.getLoopbackAddress()); + static final int SEARCH_HTTP_PORT = NetworkUtils.getNextAvailablePort(InetAddress.getLoopbackAddress()); @ClassRule public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv() @@ -59,6 +61,9 @@ public class ProjectSuite { .addPlugin(xooPlugin()) + // for ProjectSettingsTest + .addPlugin(pluginArtifact("sonar-subcategories-plugin")) + .build(); } diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectVisibilityPageTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectVisibilityPageTest.java index 0c2c745f9f6..92699c3332c 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectVisibilityPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectVisibilityPageTest.java @@ -27,7 +27,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.ProjectsManagementPage; -import org.sonarqube.ws.WsComponents; +import org.sonarqube.ws.Components; import org.sonarqube.ws.client.component.SearchProjectsRequest; import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; import org.sonarqube.ws.client.project.UpdateVisibilityRequest; @@ -84,7 +84,7 @@ public class ProjectVisibilityPageTest { .createProject("foo", "foo", visibility) .shouldHaveProjectsCount(1); - WsComponents.SearchProjectsWsResponse response = newAdminWsClient(orchestrator).components().searchProjects( + Components.SearchProjectsWsResponse response = newAdminWsClient(orchestrator).components().searchProjects( SearchProjectsRequest.builder().build()); assertThat(response.getComponentsCount()).isEqualTo(1); assertThat(response.getComponents(0).getKey()).isEqualTo("foo"); diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectsPageTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectsPageTest.java index d0008cc0bd6..a18787080f5 100644 --- a/tests/src/test/java/org/sonarqube/tests/project/ProjectsPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/project/ProjectsPageTest.java @@ -29,7 +29,7 @@ import org.junit.rules.RuleChain; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.qa.util.pageobjects.projects.ProjectsPage; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; @@ -104,7 +104,7 @@ public class ProjectsPageTest { page.shouldHaveTotal(2).shouldDisplayAllProjectsWidthSort("-analysis_date"); // all projects by default for logged in user - WsUsers.CreateWsResponse.User administrator = tester.users().generateAdministratorOnDefaultOrganization(); + Users.CreateWsResponse.User administrator = tester.users().generateAdministratorOnDefaultOrganization(); page = nav.logIn().submitCredentials(administrator.getLogin()).openProjects(); page.shouldHaveTotal(2).shouldDisplayAllProjects(); @@ -156,7 +156,7 @@ public class ProjectsPageTest { @Test public void should_switch_between_perspectives() { - WsUsers.CreateWsResponse.User administrator = tester.users().generateAdministratorOnDefaultOrganization(); + Users.CreateWsResponse.User administrator = tester.users().generateAdministratorOnDefaultOrganization(); ProjectsPage page = tester.openBrowser() .logIn().submitCredentials(administrator.getLogin()) .openProjects(); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateForSmallChangesetsTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateForSmallChangesetsTest.java index d67581b28b7..e4f9bf3fd27 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateForSmallChangesetsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateForSmallChangesetsTest.java @@ -33,16 +33,16 @@ import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.MediaTypes; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsCe; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsQualityGates; -import org.sonarqube.ws.WsQualityGates.CreateWsResponse; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Ce; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Qualitygates; +import org.sonarqube.ws.Qualitygates.CreateWsResponse; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.qualitygate.CreateConditionRequest; -import org.sonarqube.ws.client.qualitygate.ProjectStatusWsRequest; -import org.sonarqube.ws.client.qualitygate.UpdateConditionRequest; +import org.sonarqube.ws.client.qualitygates.CreateConditionRequest; +import org.sonarqube.ws.client.qualitygates.ProjectStatusRequest; +import org.sonarqube.ws.client.qualitygates.UpdateConditionRequest; import static org.assertj.core.api.Assertions.assertThat; import static util.ItUtils.getMeasure; @@ -59,21 +59,20 @@ public class OrganizationQualityGateForSmallChangesetsTest { @Test public void do_not_fail_quality_gate_with_poor_LEAK_coverage_and_a_max_of_19_lines_of_NEW_code() throws Exception { Organizations.Organization organization = tester.organizations().generate(); - Project project = tester.projects().generate(organization); + Project project = tester.projects().provision(organization); CreateWsResponse qualityGate = tester.qGates().generate(); tester.qGates().associateProject(qualityGate, project); - WsQualityGates.CreateConditionWsResponse condition = tester.wsClient().qualityGates().createCondition(CreateConditionRequest.builder() - .setQualityGateId(qualityGate.getId()) - .setMetricKey("new_coverage") - .setOperator("LT") + Qualitygates.CreateConditionWsResponse condition = tester.wsClient().qualityGates().createCondition(new CreateConditionRequest() + .setGateId(String.valueOf(qualityGate.getId())) + .setMetric("new_coverage") + .setOp("LT") .setWarning("90") .setError("80") - .setPeriod(1) - .build()); + .setPeriod("1")); tester.settings().setProjectSetting(project.getKey(), "sonar.leak.period", "previous_version"); String password = "password1"; - WsUsers.CreateWsResponse.User user = tester.users().generateAdministrator(organization, u -> u.setPassword(password)); + Users.CreateWsResponse.User user = tester.users().generateAdministrator(organization, u -> u.setPassword(password)); // no leak => use usual behaviour SonarScanner analysis = SonarScanner @@ -106,14 +105,13 @@ public class OrganizationQualityGateForSmallChangesetsTest { assertIgnoredConditions("qualitygate/small-changesets/v2-1019-lines", true); // small leak => if coverage is OK anyways, we do not have to ignore anything - tester.wsClient().qualityGates().updateCondition(UpdateConditionRequest.builder() - .setConditionId(condition.getId()) - .setMetricKey("new_coverage") - .setOperator("LT") + tester.wsClient().qualityGates().updateCondition(new UpdateConditionRequest() + .setId(String.valueOf(condition.getId())) + .setMetric("new_coverage") + .setOp("LT") .setWarning("10") .setError("20") - .setPeriod(1) - .build()); + .setPeriod("1")); SonarScanner analysis3 = SonarScanner .create(projectDir("qualitygate/small-changesets/v2-1019-lines")) .setProperty("sonar.projectKey", project.getKey()) @@ -129,14 +127,13 @@ public class OrganizationQualityGateForSmallChangesetsTest { assertIgnoredConditions("qualitygate/small-changesets/v2-1019-lines", false); // big leak => use usual behaviour - tester.wsClient().qualityGates().updateCondition(UpdateConditionRequest.builder() - .setConditionId(condition.getId()) - .setMetricKey("new_coverage") - .setOperator("LT") + tester.wsClient().qualityGates().updateCondition(new UpdateConditionRequest() + .setId(String.valueOf(condition.getId())) + .setMetric("new_coverage") + .setOp("LT") .setWarning(null) .setError("70") - .setPeriod(1) - .build()); + .setPeriod("1")); SonarScanner analysis4 = SonarScanner .create(projectDir("qualitygate/small-changesets/v2-1020-lines")) .setProperty("sonar.projectKey", project.getKey()) @@ -155,7 +152,7 @@ public class OrganizationQualityGateForSmallChangesetsTest { private void assertIgnoredConditions(String projectDir, boolean expected) throws IOException { String analysisId = getAnalysisId(getTaskIdInLocalReport(projectDir(projectDir))); boolean ignoredConditions = tester.wsClient().qualityGates() - .projectStatus(new ProjectStatusWsRequest().setAnalysisId(analysisId)) + .projectStatus(new ProjectStatusRequest().setAnalysisId(analysisId)) .getProjectStatus() .getIgnoredConditions(); assertThat(ignoredConditions).isEqualTo(expected); @@ -167,7 +164,7 @@ public class OrganizationQualityGateForSmallChangesetsTest { .call(new GetRequest("api/ce/task") .setParam("id", taskId) .setMediaType(MediaTypes.PROTOBUF)); - WsCe.TaskResponse activityWsResponse = WsCe.TaskResponse.parseFrom(activity.contentStream()); + Ce.TaskResponse activityWsResponse = Ce.TaskResponse.parseFrom(activity.contentStream()); return activityWsResponse.getTask().getAnalysisId(); } diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateTest.java index be243e050bd..2deaa41a397 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateTest.java @@ -27,12 +27,12 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsQualityGates.CreateWsResponse; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Qualitygates.CreateWsResponse; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.qualitygate.CreateConditionRequest; +import org.sonarqube.ws.client.qualitygates.CreateConditionRequest; import util.ItUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -49,20 +49,19 @@ public class OrganizationQualityGateTest { @Test public void always_display_current_quality_gate_in_effect() throws Exception { Organization organization = tester.organizations().generate(); - Project project = tester.projects().generate(organization); + Project project = tester.projects().provision(organization); CreateWsResponse qualityGate = tester.qGates().generate(); tester.qGates().associateProject(qualityGate, project); - tester.wsClient().qualityGates().createCondition(CreateConditionRequest.builder() - .setQualityGateId(qualityGate.getId()) - .setMetricKey("new_coverage") - .setOperator("LT") + tester.wsClient().qualityGates().createCondition(new CreateConditionRequest() + .setGateId(String.valueOf(qualityGate.getId())) + .setMetric("new_coverage") + .setOp("LT") .setWarning("90") .setError("80") - .setPeriod(1) - .build()); + .setPeriod("1")); tester.settings().setProjectSetting(project.getKey(), "sonar.leak.period", "previous_version"); String password = "password1"; - WsUsers.CreateWsResponse.User user = tester.users().generateAdministrator(organization, u -> u.setPassword(password)); + Users.CreateWsResponse.User user = tester.users().generateAdministrator(organization, u -> u.setPassword(password)); WsResponse response = tester.wsClient().wsConnector().call(new GetRequest("api/navigation/component").setParam("componentKey", project.getKey())); Map currentQualityGate = (Map) ItUtils.jsonToMap(response.content()).get("qualityGate"); @@ -83,14 +82,13 @@ public class OrganizationQualityGateTest { CreateWsResponse qualityGate2 = tester.qGates().generate(); tester.qGates().associateProject(qualityGate2, project); - tester.wsClient().qualityGates().createCondition(CreateConditionRequest.builder() - .setQualityGateId(qualityGate2.getId()) - .setMetricKey("new_coverage") - .setOperator("LT") + tester.wsClient().qualityGates().createCondition(new CreateConditionRequest() + .setGateId(String.valueOf(qualityGate2.getId())) + .setMetric("new_coverage") + .setOp("LT") .setWarning("90") .setError("80") - .setPeriod(1) - .build()); + .setPeriod("1")); WsResponse response3 = tester.wsClient().wsConnector().call(new GetRequest("api/navigation/component").setParam("componentKey", project.getKey())); Map currentQualityGate3 = (Map) ItUtils.jsonToMap(response3.content()).get("qualityGate"); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java index 9bb518dca20..507410d6b6b 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java @@ -31,7 +31,7 @@ import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.ProjectDashboardPage; import org.sonarqube.qa.util.pageobjects.QualityGatePage; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import util.issue.IssueRule; import static com.codeborne.selenide.Selenide.$; @@ -50,8 +50,8 @@ public class OrganizationQualityGateUiTest { public IssueRule issueRule = IssueRule.from(orchestrator); private Organizations.Organization organization; - private WsUsers.CreateWsResponse.User user; - private WsUsers.CreateWsResponse.User gateAdmin; + private Users.CreateWsResponse.User user; + private Users.CreateWsResponse.User gateAdmin; @Before public void setUp() throws Exception { @@ -98,7 +98,7 @@ public class OrganizationQualityGateUiTest { @Test public void quality_gate_link_on_project_dashboard_should_have_organization_context() { - String project = tester.projects().generate(organization).getKey(); + String project = tester.projects().provision(organization).getKey(); runProjectAnalysis(orchestrator, "shared/xoo-multi-modules-sample", "sonar.projectKey", project, "sonar.organization", organization.getKey(), diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/ProjectQualityGatePageTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/ProjectQualityGatePageTest.java index d47377fd3c4..474038f74cc 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/ProjectQualityGatePageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/ProjectQualityGatePageTest.java @@ -36,7 +36,7 @@ import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.qa.util.pageobjects.ProjectQualityGatePage; import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.qualitygate.SelectWsRequest; +import org.sonarqube.ws.client.qualitygates.SelectRequest; public class ProjectQualityGatePageTest { @@ -153,7 +153,7 @@ public class ProjectQualityGatePageTest { } private void associateWithQualityGate(QualityGate qualityGate) { - tester.wsClient().qualityGates().associateProject(new SelectWsRequest().setProjectKey("sample").setGateId(qualityGate.id())); + tester.wsClient().qualityGates().select(new SelectRequest().setProjectKey("sample").setGateId(String.valueOf(qualityGate.id()))); } private QualityGateClient qualityGateClient() { diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java index 84b31c58e83..e2a64b36ddf 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java @@ -29,15 +29,15 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsQualityGates; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Qualitygates; import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.qualitygate.CreateConditionRequest; +import org.sonarqube.ws.client.qualitygates.CreateConditionRequest; import org.subethamail.wiser.Wiser; import org.subethamail.wiser.WiserMessage; import static org.assertj.core.api.Assertions.assertThat; -import static org.sonarqube.ws.WsMeasures.Measure; +import static org.sonarqube.ws.Measures.Measure; import static util.ItUtils.getMeasure; import static util.ItUtils.projectDir; @@ -86,10 +86,10 @@ public class QualityGateNotificationTest { .failIfNotSuccessful(); // Create quality gate with conditions on variations - WsQualityGates.CreateWsResponse simple = tester.qGates().generate(); + Qualitygates.CreateWsResponse simple = tester.qGates().generate(); tester.qGates().service() - .createCondition(CreateConditionRequest.builder().setQualityGateId(simple.getId()).setMetricKey("ncloc").setPeriod(1).setOperator("EQ").setWarning("0").build()); - Project project = tester.projects().generate(null); + .createCondition(new CreateConditionRequest().setGateId(String.valueOf(simple.getId())).setMetric("ncloc").setPeriod("1").setOp("EQ").setWarning("0")); + Project project = tester.projects().provision(); tester.qGates().associateProject(simple, project); SonarScanner analysis = SonarScanner.create(projectDir("qualitygate/xoo-sample")).setProperty("sonar.projectKey", project.getKey()); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java index da87a001fe3..5da686950bf 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java @@ -24,10 +24,10 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsQualityGates; -import org.sonarqube.ws.client.qualitygate.CreateConditionRequest; +import org.sonarqube.ws.Measures; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Qualitygates; +import org.sonarqube.ws.client.qualitygates.CreateConditionRequest; import util.ItUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -46,15 +46,14 @@ public class QualityGateOnRatingMeasuresTest { @Test public void generate_warning_qgate_on_rating_metric() throws Exception { - Project project = tester.projects().generate(null); - WsQualityGates.CreateWsResponse qualityGate = tester.qGates().generate(); + Project project = tester.projects().provision(); + Qualitygates.CreateWsResponse qualityGate = tester.qGates().generate(); tester.qGates().associateProject(qualityGate, project); - tester.qGates().service().createCondition(CreateConditionRequest.builder() - .setQualityGateId(qualityGate.getId()) - .setMetricKey("security_rating") - .setOperator("GT") - .setWarning("3") - .build()); + tester.qGates().service().createCondition(new CreateConditionRequest() + .setGateId(String.valueOf(qualityGate.getId())) + .setMetric("security_rating") + .setOp("GT") + .setWarning("3")); ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityGate/QualityGateOnRatingMeasuresTest/with-many-rules.xml")); orchestrator.getServer().associateProjectToQualityProfile(project.getKey(), "xoo", "with-many-rules"); @@ -65,17 +64,16 @@ public class QualityGateOnRatingMeasuresTest { @Test public void generate_error_qgate_on_rating_metric_on_leak_period() throws Exception { - Project project = tester.projects().generate(null); - WsQualityGates.CreateWsResponse qualityGate = tester.qGates().generate(); + Project project = tester.projects().provision(); + Qualitygates.CreateWsResponse qualityGate = tester.qGates().generate(); tester.qGates().associateProject(qualityGate, project); tester.settings().setGlobalSetting("sonar.leak.period", "previous_version"); - tester.wsClient().qualityGates().createCondition(CreateConditionRequest.builder() - .setQualityGateId(qualityGate.getId()) - .setMetricKey("new_security_rating") - .setOperator("GT") + tester.wsClient().qualityGates().createCondition(new CreateConditionRequest() + .setGateId(String.valueOf(qualityGate.getId())) + .setMetric("new_security_rating") + .setOp("GT") .setError("3") - .setPeriod(1) - .build()); + .setPeriod("1")); // Run first analysis with empty quality gate -> quality gate is green orchestrator.getServer().associateProjectToQualityProfile(project.getKey(), "xoo", "empty"); @@ -89,7 +87,7 @@ public class QualityGateOnRatingMeasuresTest { assertThat(getGateStatusMeasure(project).getValue()).isEqualTo("ERROR"); } - private WsMeasures.Measure getGateStatusMeasure(Project project) { + private Measures.Measure getGateStatusMeasure(Project project) { return getMeasure(orchestrator, project.getKey(), "alert_status"); } diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java index a88574e4866..f4c931997ed 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java @@ -44,23 +44,24 @@ import org.sonar.wsclient.qualitygate.QualityGate; import org.sonar.wsclient.qualitygate.QualityGateClient; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.TesterSession; +import org.sonarqube.ws.Ce; import org.sonarqube.ws.MediaTypes; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsCe; -import org.sonarqube.ws.WsMeasures.Measure; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsQualityGates; -import org.sonarqube.ws.WsQualityGates.ProjectStatusWsResponse; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Measures.Measure; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Qualitygates; +import org.sonarqube.ws.Qualitygates.ProjectStatusWsResponse; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsResponse; import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.qualitygate.CreateConditionRequest; -import org.sonarqube.ws.client.qualitygate.ProjectStatusWsRequest; -import org.sonarqube.ws.client.qualitygate.QualityGatesService; -import org.sonarqube.ws.client.qualitygate.SelectWsRequest; -import org.sonarqube.ws.client.qualitygate.UpdateConditionRequest; +import org.sonarqube.ws.client.qualitygates.CreateConditionRequest; +import org.sonarqube.ws.client.qualitygates.CreateRequest; +import org.sonarqube.ws.client.qualitygates.ProjectStatusRequest; +import org.sonarqube.ws.client.qualitygates.QualitygatesService; +import org.sonarqube.ws.client.qualitygates.SelectRequest; +import org.sonarqube.ws.client.qualitygates.UpdateConditionRequest; import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; @@ -246,7 +247,7 @@ public class QualityGateTest { String taskId = getTaskIdInLocalReport(projectDir("qualitygate/xoo-sample")); String analysisId = getAnalysisId(taskId); - ProjectStatusWsResponse projectStatusWsResponse = tester.wsClient().qualityGates().projectStatus(new ProjectStatusWsRequest().setAnalysisId(analysisId)); + ProjectStatusWsResponse projectStatusWsResponse = tester.wsClient().qualityGates().projectStatus(new ProjectStatusRequest().setAnalysisId(analysisId)); ProjectStatusWsResponse.ProjectStatus projectStatus = projectStatusWsResponse.getProjectStatus(); assertThat(projectStatus.getStatus()).isEqualTo(ProjectStatusWsResponse.Status.ERROR); assertThat(projectStatus.getConditionsCount()).isEqualTo(1); @@ -261,7 +262,7 @@ public class QualityGateTest { @Test public void does_not_fail_when_condition_is_on_removed_metric() throws Exception { // create project - Project project = tester.projects().generate(null); + Project project = tester.projects().provision(); String projectKey = project.getKey(); // create custom metric @@ -269,7 +270,7 @@ public class QualityGateTest { createCustomIntMetric(customMetricKey); try { // create quality gate - WsQualityGates.CreateWsResponse simple = tester.wsClient().qualityGates().create("OnCustomMetric"); + Qualitygates.CreateWsResponse simple = tester.wsClient().qualityGates().create(new CreateRequest().setName("OnCustomMetric")); Long qualityGateId = simple.getId(); qgClient().createCondition(NewCondition.create(qualityGateId).metricKey(customMetricKey).operator("GT").warningThreshold("40")); @@ -277,7 +278,7 @@ public class QualityGateTest { deleteCustomMetric(customMetricKey); // run analysis - tester.wsClient().qualityGates().associateProject(new SelectWsRequest().setProjectKey(projectKey).setGateId(qualityGateId)); + tester.wsClient().qualityGates().select(new SelectRequest().setProjectKey(projectKey).setGateId(String.valueOf(qualityGateId))); BuildResult buildResult = executeAnalysis(projectKey); // verify quality gate @@ -292,16 +293,16 @@ public class QualityGateTest { public void administrate_quality_gate_with_gateadmin_permission() { // user is quality gate admin of default organization Organization organization = tester.organizations().getDefaultOrganization(); - WsUsers.CreateWsResponse.User user = tester.users().generateMember(organization); + Users.CreateWsResponse.User user = tester.users().generateMember(organization); tester.wsClient().permissions().addUser(new AddUserWsRequest().setLogin(user.getLogin()).setPermission("gateadmin").setOrganization(organization.getKey())); TesterSession qGateAdminTester = tester.as(user.getLogin()); - QualityGatesService qGateService = qGateAdminTester.qGates().service(); + QualitygatesService qGateService = qGateAdminTester.qGates().service(); // perform administration operations - WsQualityGates.CreateWsResponse qualityGate = qGateAdminTester.qGates().generate(); - WsQualityGates.CreateConditionWsResponse condition = qGateService.createCondition(CreateConditionRequest.builder() - .setQualityGateId(qualityGate.getId()).setMetricKey("coverage").setOperator("LT").setError("90").build()); - qGateService.updateCondition(UpdateConditionRequest.builder() - .setConditionId(condition.getId()).setMetricKey("coverage").setOperator("LT").setError("90").setWarning("80").build()); + Qualitygates.CreateWsResponse qualityGate = qGateAdminTester.qGates().generate(); + Qualitygates.CreateConditionWsResponse condition = qGateService.createCondition(new CreateConditionRequest() + .setGateId(String.valueOf(qualityGate.getId())).setMetric("coverage").setOp("LT").setError("90")); + qGateService.updateCondition(new UpdateConditionRequest() + .setId(String.valueOf(condition.getId())).setMetric("coverage").setOp("LT").setError("90").setWarning("80")); qGateAdminTester.wsClient().wsConnector().call(new PostRequest("api/qualitygates/set_as_default").setParam("id", qualityGate.getId())); qGateAdminTester.wsClient().wsConnector().call(new PostRequest("api/qualitygates/delete_condition").setParam("id", condition.getId())); qGateAdminTester.wsClient().wsConnector().call(new PostRequest("api/qualitygates/unset_default").setParam("id", qualityGate.getId())); @@ -330,7 +331,7 @@ public class QualityGateTest { .call(new GetRequest("api/ce/task") .setParam("id", taskId) .setMediaType(MediaTypes.PROTOBUF)); - WsCe.TaskResponse activityWsResponse = WsCe.TaskResponse.parseFrom(activity.contentStream()); + Ce.TaskResponse activityWsResponse = Ce.TaskResponse.parseFrom(activity.contentStream()); return activityWsResponse.getTask().getAnalysisId(); } diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java index 9c9dc04617c..9d7a4b52765 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java @@ -34,10 +34,10 @@ import org.openqa.selenium.By; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.qa.util.pageobjects.ProjectActivityPage; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.WsQualityGates; -import org.sonarqube.ws.client.qualitygate.CreateConditionRequest; -import org.sonarqube.ws.client.qualitygate.UpdateConditionRequest; +import org.sonarqube.ws.Projects.CreateWsResponse.Project; +import org.sonarqube.ws.Qualitygates; +import org.sonarqube.ws.client.qualitygates.CreateConditionRequest; +import org.sonarqube.ws.client.qualitygates.UpdateConditionRequest; import static com.codeborne.selenide.Selenide.$; import static org.apache.commons.lang.time.DateUtils.addDays; @@ -65,19 +65,19 @@ public class QualityGateUiTest { */ @Test public void display_alerts_correctly_in_history_page() { - Project project = tester.projects().generate(null); - WsQualityGates.CreateWsResponse qGate = tester.qGates().generate(); + Project project = tester.projects().provision(); + Qualitygates.CreateWsResponse qGate = tester.qGates().generate(); tester.qGates().associateProject(qGate, project); String firstAnalysisDate = DateFormatUtils.ISO_DATE_FORMAT.format(addDays(new Date(), -2)); String secondAnalysisDate = DateFormatUtils.ISO_DATE_FORMAT.format(addDays(new Date(), -1)); // with this configuration, project should have an Orange alert - WsQualityGates.CreateConditionWsResponse lowThresholds = tester.qGates().service() - .createCondition(CreateConditionRequest.builder().setQualityGateId(qGate.getId()).setMetricKey("lines").setOperator("GT").setWarning("5").setError("50").build()); + Qualitygates.CreateConditionWsResponse lowThresholds = tester.qGates().service() + .createCondition(new CreateConditionRequest().setGateId(String.valueOf(qGate.getId())).setMetric("lines").setOp("GT").setWarning("5").setError("50")); scanSampleWithDate(project, firstAnalysisDate); // with this configuration, project should have a Green alert - tester.qGates().service().updateCondition(UpdateConditionRequest.builder().setConditionId(lowThresholds.getId()).setMetricKey("lines").setOperator("GT").setWarning("5000").setError("5000").build()); + tester.qGates().service().updateCondition(new UpdateConditionRequest().setId(String.valueOf(lowThresholds.getId())).setMetric("lines").setOp("GT").setWarning("5000").setError("5000")); scanSampleWithDate(project, secondAnalysisDate); Navigation nav = Navigation.create(orchestrator); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityModel/ReliabilityMeasureTest.java b/tests/src/test/java/org/sonarqube/tests/qualityModel/ReliabilityMeasureTest.java index 349acb7aa46..436e13aa976 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityModel/ReliabilityMeasureTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityModel/ReliabilityMeasureTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsMeasures; +import org.sonarqube.ws.Measures; import util.ItUtils; import static java.lang.Double.parseDouble; @@ -83,7 +83,7 @@ public class ReliabilityMeasureTest { } private void assertMeasures(String componentKey, int expectedBugs, int expectedReliabilityRemediationEffort, int expectedReliabilityRating) { - Map<String, WsMeasures.Measure> measures = getMeasuresByMetricKey(orchestrator, componentKey, METRICS); + Map<String, Measures.Measure> measures = getMeasuresByMetricKey(orchestrator, componentKey, METRICS); assertThat(parseDouble(measures.get(BUGS_METRIC).getValue())).isEqualTo(expectedBugs); assertThat(parseDouble(measures.get(RELIABILITY_REMEDIATION_EFFORT_METRIC).getValue())).isEqualTo(expectedReliabilityRemediationEffort); assertThat(parseDouble(measures.get(RELIABILITY_RATING_METRIC).getValue())).isEqualTo(expectedReliabilityRating); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityModel/SecurityMeasureTest.java b/tests/src/test/java/org/sonarqube/tests/qualityModel/SecurityMeasureTest.java index f8c2d6cd367..c3feea005fd 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityModel/SecurityMeasureTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityModel/SecurityMeasureTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsMeasures; +import org.sonarqube.ws.Measures; import util.ItUtils; import static java.lang.Double.parseDouble; @@ -83,7 +83,7 @@ public class SecurityMeasureTest { } private void assertMeasures(String componentKey, int expectedVulnerabilities, int expectedReliabilityRemediationEffort, int expectedReliabilityRating) { - Map<String, WsMeasures.Measure> measures = getMeasuresByMetricKey(orchestrator, componentKey, METRICS); + Map<String, Measures.Measure> measures = getMeasuresByMetricKey(orchestrator, componentKey, METRICS); assertThat(parseDouble(measures.get(VULNERABILITIES_METRIC).getValue())).isEqualTo(expectedVulnerabilities); assertThat(parseDouble(measures.get(SECURITY_REMEDIATION_EFFORT_METRIC).getValue())).isEqualTo(expectedReliabilityRemediationEffort); assertThat(parseDouble(measures.get(SECURITY_RATING_METRIC).getValue())).isEqualTo(expectedReliabilityRating); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java index 0f71864996a..efd0562727b 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java @@ -32,7 +32,7 @@ import org.junit.rules.Timeout; import org.sonarqube.tests.Byteman; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.QualityProfiles; +import org.sonarqube.ws.Qualityprofiles; import org.sonarqube.ws.client.rule.SearchWsRequest; import util.ItUtils; @@ -78,7 +78,7 @@ public class ActiveRuleEsResilienceTest { @Test public void activation_and_deactivation_of_rule_is_resilient_to_indexing_errors() throws Exception { Organizations.Organization organization = tester.organizations().generate(); - QualityProfiles.CreateWsResponse.QualityProfile profile = tester.qProfiles().createXooProfile(organization); + Qualityprofiles.CreateWsResponse.QualityProfile profile = tester.qProfiles().createXooProfile(organization); // step 1. activation tester.qProfiles().activateRule(profile.getKey(), RULE_ONE_BUG_PER_LINE); @@ -99,7 +99,7 @@ public class ActiveRuleEsResilienceTest { assertThat(searchActiveRules(profile)).isEqualTo(0); } - private long searchActiveRules(QualityProfiles.CreateWsResponse.QualityProfile profile) { + private long searchActiveRules(Qualityprofiles.CreateWsResponse.QualityProfile profile) { SearchWsRequest request = new SearchWsRequest().setActivation(true).setQProfile(profile.getKey()); return tester.wsClient().rules().search(request).getRulesCount(); } diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesNotificationTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesNotificationTest.java index ffd7d24bac2..3922d96b29c 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesNotificationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesNotificationTest.java @@ -28,7 +28,7 @@ import javax.mail.internet.MimeMessage; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.permission.AddGroupWsRequest; @@ -75,7 +75,7 @@ public class BuiltInQualityProfilesNotificationTest { .build(); orchestrator.start(); userRule = UserRule.from(orchestrator); - WsUsers.CreateWsResponse.User profileAdmin1 = userRule.generate(); + Users.CreateWsResponse.User profileAdmin1 = userRule.generate(); WsClient wsClient = ItUtils.newAdminWsClient(orchestrator); wsClient.permissions().addUser(new AddUserWsRequest().setLogin(profileAdmin1.getLogin()).setPermission("profileadmin")); @@ -98,17 +98,17 @@ public class BuiltInQualityProfilesNotificationTest { userRule = UserRule.from(orchestrator); // Create a quality profile administrator (user having direct permission) - WsUsers.CreateWsResponse.User profileAdmin1 = userRule.generate(); + Users.CreateWsResponse.User profileAdmin1 = userRule.generate(); WsClient wsClient = ItUtils.newAdminWsClient(orchestrator); wsClient.permissions().addUser(new AddUserWsRequest().setLogin(profileAdmin1.getLogin()).setPermission("profileadmin")); // Create a quality profile administrator (user having permission from a group) - WsUsers.CreateWsResponse.User profileAdmin2 = userRule.generate(); + Users.CreateWsResponse.User profileAdmin2 = userRule.generate(); String groupName = randomAlphanumeric(20); wsClient.wsConnector().call(new PostRequest("api/user_groups/create").setParam("name", groupName)).failIfNotSuccessful(); wsClient.permissions().addGroup(new AddGroupWsRequest().setPermission("profileadmin").setGroupName(groupName)); wsClient.wsConnector().call(new PostRequest("api/user_groups/add_user").setParam("name", groupName).setParam("login", profileAdmin2.getLogin())).failIfNotSuccessful(); // Create a user not being quality profile administrator - WsUsers.CreateWsResponse.User noProfileAdmin = userRule.generate(); + Users.CreateWsResponse.User noProfileAdmin = userRule.generate(); // Create a child profile on the built-in profile => The notification should not take into account updates of this profile wsClient.qualityProfiles().create(CreateRequest.builder().setLanguage("foo").setName("child").build()); @@ -154,7 +154,7 @@ public class BuiltInQualityProfilesNotificationTest { .build(); orchestrator.start(); userRule = UserRule.from(orchestrator); - WsUsers.CreateWsResponse.User profileAdmin1 = userRule.generate(); + Users.CreateWsResponse.User profileAdmin1 = userRule.generate(); WsClient wsClient = ItUtils.newAdminWsClient(orchestrator); wsClient.permissions().addUser(new AddUserWsRequest().setLogin(profileAdmin1.getLogin()).setPermission("profileadmin")); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java index 7b255b78940..2ace14e222a 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java @@ -28,11 +28,11 @@ import org.sonarqube.tests.Category6Suite; import org.sonarqube.qa.util.TesterSession; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse; -import org.sonarqube.ws.QualityProfiles.SearchWsResponse; -import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Qualityprofiles; +import org.sonarqube.ws.Qualityprofiles.CreateWsResponse; +import org.sonarqube.ws.Qualityprofiles.SearchWsResponse; +import org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.qualityprofile.ChangeParentRequest; import org.sonarqube.ws.client.qualityprofile.CopyRequest; import org.sonarqube.ws.client.qualityprofile.QualityProfilesService; @@ -112,7 +112,7 @@ public class BuiltInQualityProfilesTest { QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); TesterSession adminSession = tester.as(administrator.getLogin()); - QualityProfiles.CopyWsResponse copyResponse = adminSession.qProfiles().service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); + Qualityprofiles.CopyWsResponse copyResponse = adminSession.qProfiles().service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); assertThat(copyResponse.getIsDefault()).isFalse(); assertThat(copyResponse.getKey()).isNotEmpty().isNotEqualTo(builtInProfile.getKey()); @@ -134,7 +134,7 @@ public class BuiltInQualityProfilesTest { QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); TesterSession adminSession = tester.as(administrator.getLogin()); - QualityProfiles.CopyWsResponse copyResponse = adminSession.qProfiles().service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); + Qualityprofiles.CopyWsResponse copyResponse = adminSession.qProfiles().service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); adminSession.qProfiles().service().changeParent( ChangeParentRequest.builder().setParentKey(builtInProfile.getKey()).setProfileKey(copyResponse.getKey()).build()); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java index 84974475261..fe00a8d4472 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java @@ -32,9 +32,9 @@ import org.sonarqube.qa.util.QProfileTester; import org.sonarqube.qa.util.TesterSession; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Qualityprofiles; +import org.sonarqube.ws.Qualityprofiles.CreateWsResponse.QualityProfile; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; @@ -125,8 +125,8 @@ public class CustomQualityProfilesTest { QualityProfile parentProfile = adminSession.createXooProfile(org); // Copied profile - QualityProfiles.SearchWsResponse.QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); - QualityProfiles.CopyWsResponse copyResponse = adminSession.service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); + Qualityprofiles.SearchWsResponse.QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); + Qualityprofiles.CopyWsResponse copyResponse = adminSession.service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); // Inherited profile from custom QualityProfile inheritedProfile1 = adminSession.service().create( @@ -230,7 +230,7 @@ public class CustomQualityProfilesTest { adminSession.qProfiles().service().changeParent( ChangeParentRequest.builder().setParentKey(parentProfile.getKey()).setProfileKey(inheritedProfile.getKey()).build()); - QualityProfiles.SearchWsResponse.QualityProfile inheritedQualityPropfile = getProfile(org, p -> p.getKey().equals(inheritedProfile.getKey())); + Qualityprofiles.SearchWsResponse.QualityProfile inheritedQualityPropfile = getProfile(org, p -> p.getKey().equals(inheritedProfile.getKey())); assertThat(inheritedQualityPropfile.getParentKey()).isEqualTo(parentProfile.getKey()); assertThat(inheritedQualityPropfile.getParentName()).isEqualTo(parentProfile.getName()); @@ -262,7 +262,7 @@ public class CustomQualityProfilesTest { .setProjectKey(projectKey) .setProjectName(projectName)); - QualityProfiles.SearchWsResponse.QualityProfile defaultProfile = getProfile(org, p -> "xoo".equals(p.getLanguage()) && + Qualityprofiles.SearchWsResponse.QualityProfile defaultProfile = getProfile(org, p -> "xoo".equals(p.getLanguage()) && p.getIsDefault()); assertThatQualityProfileIsUsedFor(projectKey, defaultProfile.getKey()); @@ -318,7 +318,7 @@ public class CustomQualityProfilesTest { assertThat(((Map) ((List) components.get("qualityProfiles")).get(0)).get("key")).isEqualTo(qualityProfileKey); } - private QualityProfiles.SearchWsResponse.QualityProfile getProfile(Organization organization, Predicate<QualityProfiles.SearchWsResponse.QualityProfile> filter) { + private Qualityprofiles.SearchWsResponse.QualityProfile getProfile(Organization organization, Predicate<Qualityprofiles.SearchWsResponse.QualityProfile> filter) { return tester.qProfiles().service().search(new SearchWsRequest() .setOrganizationKey(organization.getKey())).getProfilesList() .stream() diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java index cf156acee16..48470073a6b 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java @@ -32,8 +32,8 @@ import org.sonarqube.qa.util.pageobjects.QualityProfilePage; import org.sonarqube.qa.util.pageobjects.RulesPage; import org.sonarqube.tests.Category6Suite; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Qualityprofiles; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; import org.sonarqube.ws.client.qualityprofile.ChangeParentRequest; @@ -151,7 +151,7 @@ public class OrganizationQualityProfilesUiTest { @Test public void testSonarWayComparison() { - QualityProfiles.CreateWsResponse.QualityProfile xooProfile = tester.qProfiles().createXooProfile(organization); + Qualityprofiles.CreateWsResponse.QualityProfile xooProfile = tester.qProfiles().createXooProfile(organization); tester.qProfiles().activateRule(xooProfile, "xoo:OneBugIssuePerLine"); tester.qProfiles().activateRule(xooProfile, "xoo:OneIssuePerLine"); Navigation nav = tester.openBrowser(); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java index 142fd1d2dff..b6e884eaa77 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java @@ -28,12 +28,12 @@ import org.sonarqube.tests.Category6Suite; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Common; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse; -import org.sonarqube.ws.QualityProfiles.SearchGroupsResponse; -import org.sonarqube.ws.QualityProfiles.SearchUsersResponse; -import org.sonarqube.ws.QualityProfiles.SearchWsResponse; -import org.sonarqube.ws.WsUserGroups; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Qualityprofiles.CreateWsResponse; +import org.sonarqube.ws.Qualityprofiles.SearchGroupsResponse; +import org.sonarqube.ws.Qualityprofiles.SearchUsersResponse; +import org.sonarqube.ws.Qualityprofiles.SearchWsResponse; +import org.sonarqube.ws.UserGroups; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.permission.AddUserWsRequest; import org.sonarqube.ws.client.qualityprofile.AddGroupRequest; @@ -47,7 +47,7 @@ import org.sonarqube.ws.client.qualityprofile.ShowRequest; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.tuple; -import static org.sonarqube.ws.QualityProfiles.SearchGroupsResponse.Group; +import static org.sonarqube.ws.Qualityprofiles.SearchGroupsResponse.Group; public class QualityProfilesEditTest { private static final String RULE_ONE_BUG_PER_LINE = "xoo:OneBugIssuePerLine"; @@ -132,9 +132,9 @@ public class QualityProfilesEditTest { @Test public void search_groups_allowed_to_edit_a_profile() { Organization organization = tester.organizations().generate(); - WsUserGroups.Group group1 = tester.groups().generate(organization); - WsUserGroups.Group group2 = tester.groups().generate(organization); - WsUserGroups.Group group3 = tester.groups().generate(organization); + UserGroups.Group group1 = tester.groups().generate(organization); + UserGroups.Group group2 = tester.groups().generate(organization); + UserGroups.Group group3 = tester.groups().generate(organization); CreateWsResponse.QualityProfile xooProfile = tester.qProfiles().createXooProfile(organization); addGroupPermission(organization, group1, xooProfile); addGroupPermission(organization, group2, xooProfile); @@ -156,8 +156,8 @@ public class QualityProfilesEditTest { @Test public void add_and_remove_group() { Organization organization = tester.organizations().generate(); - WsUserGroups.Group group1 = tester.groups().generate(organization); - WsUserGroups.Group group2 = tester.groups().generate(organization); + UserGroups.Group group1 = tester.groups().generate(organization); + UserGroups.Group group2 = tester.groups().generate(organization); CreateWsResponse.QualityProfile xooProfile = tester.qProfiles().createXooProfile(organization); // No group added @@ -205,7 +205,7 @@ public class QualityProfilesEditTest { CreateWsResponse.QualityProfile xooProfile1 = tester.qProfiles().createXooProfile(organization); addUserPermission(organization, user, xooProfile1); CreateWsResponse.QualityProfile xooProfile2 = tester.qProfiles().createXooProfile(organization); - WsUserGroups.Group group = tester.groups().generate(organization); + UserGroups.Group group = tester.groups().generate(organization); tester.groups().addMemberToGroups(organization, user.getLogin(), group.getName()); addGroupPermission(organization, group, xooProfile2); CreateWsResponse.QualityProfile xooProfile3 = tester.qProfiles().createXooProfile(organization); @@ -243,7 +243,7 @@ public class QualityProfilesEditTest { CreateWsResponse.QualityProfile xooProfile = tester.qProfiles().createXooProfile(org); User individualEditor = tester.users().generateMember(org); addUserPermission(org, individualEditor, xooProfile); - WsUserGroups.Group group = tester.groups().generate(org); + UserGroups.Group group = tester.groups().generate(org); addGroupPermission(org, group, xooProfile); User groupEditor = tester.users().generateMember(org); tester.groups().addMemberToGroups(org, groupEditor.getLogin(), group.getName()); @@ -275,7 +275,7 @@ public class QualityProfilesEditTest { .build()); } - private void addGroupPermission(Organization organization, WsUserGroups.Group group, CreateWsResponse.QualityProfile qProfile) { + private void addGroupPermission(Organization organization, UserGroups.Group group, CreateWsResponse.QualityProfile qProfile) { tester.qProfiles().service().addGroup(AddGroupRequest.builder() .setOrganization(organization.getKey()) .setQualityProfile(qProfile.getName()) diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java index 4e121520117..21b319f6f78 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java @@ -30,11 +30,11 @@ import org.skyscreamer.jsonassert.JSONCompareMode; import org.sonarqube.tests.Category6Suite; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse; -import org.sonarqube.ws.QualityProfiles.SearchWsResponse; -import org.sonarqube.ws.QualityProfiles.ShowResponse; -import org.sonarqube.ws.QualityProfiles.ShowResponse.CompareToSonarWay; -import org.sonarqube.ws.QualityProfiles.ShowResponse.QualityProfile; +import org.sonarqube.ws.Qualityprofiles.CreateWsResponse; +import org.sonarqube.ws.Qualityprofiles.SearchWsResponse; +import org.sonarqube.ws.Qualityprofiles.ShowResponse; +import org.sonarqube.ws.Qualityprofiles.ShowResponse.CompareToSonarWay; +import org.sonarqube.ws.Qualityprofiles.ShowResponse.QualityProfile; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsResponse; diff --git a/tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java b/tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java index 77aca9652f4..33469fb6577 100644 --- a/tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java @@ -28,8 +28,8 @@ import org.junit.Test; import org.sonarqube.tests.Category6Suite; import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse; -import org.sonarqube.ws.QualityProfiles.SearchWsResponse; +import org.sonarqube.ws.Qualityprofiles.CreateWsResponse; +import org.sonarqube.ws.Qualityprofiles.SearchWsResponse; import org.sonarqube.ws.Rules; import org.sonarqube.ws.client.rule.SearchWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/serverSystem/RestartTest.java b/tests/src/test/java/org/sonarqube/tests/serverSystem/RestartTest.java index 33e61642c79..e1219ae9ee6 100644 --- a/tests/src/test/java/org/sonarqube/tests/serverSystem/RestartTest.java +++ b/tests/src/test/java/org/sonarqube/tests/serverSystem/RestartTest.java @@ -29,7 +29,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.ExpectedException; import org.junit.rules.TestRule; import org.junit.rules.Timeout; -import org.sonarqube.ws.WsSystem; +import org.sonarqube.ws.System; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.permission.AddUserWsRequest; @@ -75,7 +75,7 @@ public class RestartTest { createSystemAdministrator("big", "boss"); ItUtils.newUserWsClient(orchestrator, "big", "boss").system().restart(); - assertThat(newAdminWsClient(orchestrator).system().status().getStatus()).isEqualTo(WsSystem.Status.RESTARTING); + assertThat(newAdminWsClient(orchestrator).system().status().getStatus()).isEqualTo(System.Status.RESTARTING); // we just wait five seconds, for a lack of a better approach to waiting for the restart process to start in SQ Thread.sleep(5000); diff --git a/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemRestartingOrchestrator.java b/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemRestartingOrchestrator.java index cd4e2c1ac78..ac641140873 100644 --- a/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemRestartingOrchestrator.java +++ b/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemRestartingOrchestrator.java @@ -27,7 +27,7 @@ import org.junit.After; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.sonarqube.ws.WsSystem; +import org.sonarqube.ws.System; import util.ItUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -77,7 +77,7 @@ public class ServerSystemRestartingOrchestrator { .build(); orchestrator.start(); - assertThat(newAdminWsClient(orchestrator).system().status().getStatus()).isEqualTo(WsSystem.Status.UP); + assertThat(newAdminWsClient(orchestrator).system().status().getStatus()).isEqualTo(System.Status.UP); } // SONAR-4748 diff --git a/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java b/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java index 2e70f4e5c18..22d69666e24 100644 --- a/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java +++ b/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java @@ -32,7 +32,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category4Suite; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsSystem; +import org.sonarqube.ws.System; import util.ItUtils; import util.selenium.Selenese; @@ -58,7 +58,7 @@ public class ServerSystemTest { @Test public void get_sonarqube_version() { - WsSystem.StatusResponse response = tester.wsClient().system().status(); + System.StatusResponse response = tester.wsClient().system().status(); String version = response.getVersion(); if (!startsWithAny(version, new String[]{"6.", "7.", "8."})) { diff --git a/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java b/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java index 62985921e4a..5edd77875a1 100644 --- a/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java @@ -36,7 +36,7 @@ import org.junit.rules.TemporaryFolder; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.qa.util.Elasticsearch; -import org.sonarqube.ws.WsSystem; +import org.sonarqube.ws.System; import org.sonarqube.ws.client.WsClient; import static com.google.common.base.Preconditions.checkState; @@ -64,17 +64,17 @@ public class SystemStateTest { commander.start(lock); commander.waitFor(() -> commander.webLogsContain("ServerStartupLock - Waiting for file to be deleted")); - commander.verifyStatus(WsSystem.Status.STARTING); - commander.verifyHealth(WsSystem.Health.RED, "SonarQube webserver is not up"); + commander.verifyStatus(System.Status.STARTING); + commander.verifyHealth(System.Health.RED, "SonarQube webserver is not up"); lock.unlockWeb(); // status is UP as soon as web server is up, whatever the status of Compute Engine - commander.waitFor(() -> WsSystem.Status.UP == commander.status().orElse(null)); - commander.verifyHealth(WsSystem.Health.RED, "Compute Engine is not operational"); + commander.waitFor(() -> System.Status.UP == commander.status().orElse(null)); + commander.verifyHealth(System.Health.RED, "Compute Engine is not operational"); lock.unlockCe(); - commander.waitForHealth(WsSystem.Health.GREEN); - commander.verifyStatus(WsSystem.Status.UP); + commander.waitForHealth(System.Health.GREEN); + commander.verifyStatus(System.Status.UP); } } @@ -82,16 +82,16 @@ public class SystemStateTest { public void test_status_and_health_when_ES_becomes_yellow() throws Exception { try (Commander commander = new Commander()) { commander.start(); - commander.waitForHealth(WsSystem.Health.GREEN); + commander.waitForHealth(System.Health.GREEN); commander.makeElasticsearchYellow(); - commander.waitForHealth(WsSystem.Health.YELLOW, "Elasticsearch status is YELLOW"); - commander.verifyStatus(WsSystem.Status.UP); + commander.waitForHealth(System.Health.YELLOW, "Elasticsearch status is YELLOW"); + commander.verifyStatus(System.Status.UP); commander.makeElasticsearchGreen(); - commander.waitForHealth(WsSystem.Health.GREEN); + commander.waitForHealth(System.Health.GREEN); // status does not change after being UP - commander.verifyStatus(WsSystem.Status.UP); + commander.verifyStatus(System.Status.UP); } } @@ -166,7 +166,7 @@ public class SystemStateTest { } } - Optional<WsSystem.Status> status() { + Optional<System.Status> status() { if (orchestrator.getServer() != null) { WsClient wsClient = newWsClient(orchestrator); try { @@ -178,16 +178,16 @@ public class SystemStateTest { return Optional.empty(); } - void verifyStatus(WsSystem.Status expectedStatus) { + void verifyStatus(System.Status expectedStatus) { assertThat(status()).hasValue(expectedStatus); } - Optional<WsSystem.Health> health() { - Optional<WsSystem.HealthResponse> response = healthResponse(); - return response.map(WsSystem.HealthResponse::getHealth); + Optional<System.Health> health() { + Optional<System.HealthResponse> response = healthResponse(); + return response.map(System.HealthResponse::getHealth); } - Optional<WsSystem.HealthResponse> healthResponse() { + Optional<System.HealthResponse> healthResponse() { if (orchestrator.getServer() != null) { WsClient wsClient = newSystemUserWsClient(orchestrator, systemPassCode); try { @@ -199,18 +199,18 @@ public class SystemStateTest { return Optional.empty(); } - void waitForHealth(WsSystem.Health expectedHealth, String... expectedMessages) { + void waitForHealth(System.Health expectedHealth, String... expectedMessages) { waitFor(() -> expectedHealth == health().orElse(null)); verifyHealth(expectedHealth, expectedMessages); } - void verifyHealth(WsSystem.Health expectedHealth, String... expectedMessages) { - WsSystem.HealthResponse response = healthResponse().get(); + void verifyHealth(System.Health expectedHealth, String... expectedMessages) { + System.HealthResponse response = healthResponse().get(); assertThat(response.getHealth()) .describedAs("Expected status %s in response %s", expectedHealth, response) .isEqualTo(expectedHealth); assertThat(response.getCausesList()) - .extracting(WsSystem.Cause::getMessage) + .extracting(System.Cause::getMessage) .describedAs("Expected causes %s in response %s", Arrays.asList(expectedMessages), response) .containsExactlyInAnyOrder(expectedMessages); } diff --git a/tests/src/test/java/org/sonarqube/tests/settings/DeprecatedPropertiesWsTest.java b/tests/src/test/java/org/sonarqube/tests/settings/DeprecatedPropertiesWsTest.java index 4a0bd037333..0448d8bac88 100644 --- a/tests/src/test/java/org/sonarqube/tests/settings/DeprecatedPropertiesWsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/settings/DeprecatedPropertiesWsTest.java @@ -22,6 +22,7 @@ package org.sonarqube.tests.settings; import com.google.common.base.Throwables; import com.google.gson.Gson; import com.sonar.orchestrator.Orchestrator; +import org.junit.rules.RuleChain; import org.sonarqube.tests.Category1Suite; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -69,8 +70,10 @@ public class DeprecatedPropertiesWsTest { @ClassRule public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; + private static UserRule userRule = UserRule.from(orchestrator); + @ClassRule - public static UserRule userRule = UserRule.from(orchestrator); + public static RuleChain ruleChain = RuleChain.outerRule(orchestrator).around(userRule); static WsClient adminWsClient; static WsClient userWsClient; diff --git a/tests/src/test/java/org/sonarqube/tests/settings/SettingsTest.java b/tests/src/test/java/org/sonarqube/tests/settings/SettingsTest.java index de7d213db2b..df5b3fe02d7 100644 --- a/tests/src/test/java/org/sonarqube/tests/settings/SettingsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/settings/SettingsTest.java @@ -21,6 +21,7 @@ package org.sonarqube.tests.settings; import com.google.common.collect.ImmutableMap; import com.sonar.orchestrator.Orchestrator; +import org.junit.rules.RuleChain; import org.sonarqube.tests.Category1Suite; import java.io.IOException; import java.util.List; @@ -62,8 +63,10 @@ public class SettingsTest { @ClassRule public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; + private static UserRule userRule = UserRule.from(orchestrator); + @ClassRule - public static UserRule userRule = UserRule.from(orchestrator); + public static RuleChain ruleChain = RuleChain.outerRule(orchestrator).around(userRule); private static WsClient adminWsClient; private static SettingsService anonymousSettingsService; diff --git a/tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java b/tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java index 1e95f664ec3..8032a439d3b 100644 --- a/tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java @@ -35,7 +35,7 @@ import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.qa.util.LogsTailer; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.user.SearchRequest; import static org.assertj.core.api.Assertions.assertThat; @@ -65,7 +65,7 @@ public class StartupIndexationTest { sonarQube.resume(); sonarQubeIsUpWatcher.waitForLog(20, TimeUnit.SECONDS); SearchRequest searchRequest = SearchRequest.builder().setQuery("admin").build(); - WsUsers.SearchWsResponse searchWsResponse = sonarQube.tester.wsClient().users().search(searchRequest); + Users.SearchWsResponse searchWsResponse = sonarQube.tester.wsClient().users().search(searchRequest); assertThat(searchWsResponse.getUsersCount()).isEqualTo(1); assertThat(searchWsResponse.getUsers(0).getName()).isEqualTo("Administrator"); } diff --git a/tests/src/test/java/org/sonarqube/tests/test/NewCoverageTest.java b/tests/src/test/java/org/sonarqube/tests/test/NewCoverageTest.java index 670d5440479..3c77acc0581 100644 --- a/tests/src/test/java/org/sonarqube/tests/test/NewCoverageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/test/NewCoverageTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsMeasures; +import org.sonarqube.ws.Measures; import static java.lang.Double.parseDouble; import static org.assertj.core.api.Assertions.assertThat; @@ -54,7 +54,7 @@ public class NewCoverageTest { orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-new-coverage-v2")) .setProperty("sonar.scm.disabled", "false")); - Map<String, WsMeasures.Measure> measures = getMeasuresWithVariationsByMetricKey(orchestrator, PROJECT_KEY, ALL_NEW_COVERAGE_METRICS); + Map<String, Measures.Measure> measures = getMeasuresWithVariationsByMetricKey(orchestrator, PROJECT_KEY, ALL_NEW_COVERAGE_METRICS); assertThat(parseDouble(measures.get("new_coverage").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(66.6d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_line_coverage").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(100d, DEFAULT_OFFSET); assertThat(parseDouble(measures.get("new_branch_coverage").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(42.8, DEFAULT_OFFSET); diff --git a/tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java b/tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java index 4a8bbfe31da..8e6f6cba821 100644 --- a/tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java @@ -26,8 +26,8 @@ import org.junit.Rule; import org.junit.Test; import org.openqa.selenium.By; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsProjects; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Projects; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.project.CreateRequest; import util.ItUtils; import util.selenium.Selenese; @@ -78,7 +78,7 @@ public class UiExtensionsTest { @Test public void test_project_page() { - WsProjects.CreateWsResponse.Project project = createSampleProject(); + Projects.CreateWsResponse.Project project = createSampleProject(); tester.openBrowser().open("/dashboard?id=" + project.getKey()); @@ -91,7 +91,7 @@ public class UiExtensionsTest { @Test public void test_project_administration_page() { - WsProjects.CreateWsResponse.Project project = createSampleProject(); + Projects.CreateWsResponse.Project project = createSampleProject(); User administrator = tester.users().generateAdministrator(); tester.openBrowser() @@ -105,7 +105,7 @@ public class UiExtensionsTest { $("body").shouldHave(text("uiextensionsplugin/project_admin_page")); } - private WsProjects.CreateWsResponse.Project createSampleProject() { + private Projects.CreateWsResponse.Project createSampleProject() { String projectKey = ItUtils.newProjectKey(); return tester.wsClient().projects().create(CreateRequest.builder() .setKey(projectKey) diff --git a/tests/src/test/java/org/sonarqube/tests/upgrade/UpgradeTest.java b/tests/src/test/java/org/sonarqube/tests/upgrade/UpgradeTest.java index d7562caa960..76f2e28431c 100644 --- a/tests/src/test/java/org/sonarqube/tests/upgrade/UpgradeTest.java +++ b/tests/src/test/java/org/sonarqube/tests/upgrade/UpgradeTest.java @@ -36,7 +36,7 @@ import org.apache.commons.io.IOUtils; import org.junit.After; import org.junit.Test; import org.sonarqube.qa.util.SelenideConfig; -import org.sonarqube.ws.WsMeasures.Measure; +import org.sonarqube.ws.Measures.Measure; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.HttpConnector; import org.sonarqube.ws.client.WsClient; diff --git a/tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java b/tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java index bcd7384dfae..db5b754b000 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java @@ -20,15 +20,16 @@ package org.sonarqube.tests.user; import com.google.common.base.Joiner; -import com.google.common.base.Optional; import com.sonar.orchestrator.Orchestrator; import java.io.File; +import java.util.Optional; import org.apache.commons.io.FileUtils; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; +import org.junit.rules.RuleChain; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; import org.sonarqube.ws.client.GetRequest; @@ -38,7 +39,6 @@ import util.user.UserRule; import util.user.Users; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.guava.api.Assertions.assertThat; import static util.ItUtils.newAdminWsClient; import static util.ItUtils.resetSettings; import static util.ItUtils.setServerProperty; @@ -53,8 +53,10 @@ public class BaseIdentityProviderTest { @ClassRule public static Orchestrator ORCHESTRATOR = Category4Suite.ORCHESTRATOR; + private static UserRule userRule = UserRule.from(ORCHESTRATOR); + @ClassRule - public static UserRule userRule = UserRule.from(ORCHESTRATOR); + public static RuleChain ruleChain = RuleChain.outerRule(ORCHESTRATOR).around(userRule); static String FAKE_PROVIDER_KEY = "fake-base-id-provider"; diff --git a/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java b/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java index d09aa110288..eb5fdfb4635 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; diff --git a/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java b/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java index 30203f58e6a..14b8237feab 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java @@ -30,9 +30,9 @@ import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.LoginPage; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.ws.WsUserTokens; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.UserTokens; +import org.sonarqube.ws.Users; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.HttpConnector; import org.sonarqube.ws.client.PostRequest; @@ -106,7 +106,7 @@ public class LocalAuthenticationTest { User user = tester.users().generate(); String tokenName = "Validate token based authentication"; UserTokensService tokensService = tester.wsClient().userTokens(); - WsUserTokens.GenerateWsResponse generateWsResponse = tokensService.generate(new GenerateWsRequest() + UserTokens.GenerateWsResponse generateWsResponse = tokensService.generate(new GenerateWsRequest() .setLogin(user.getLogin()) .setName(tokenName)); WsClient wsClient = WsClientFactories.getDefault().newClient(HttpConnector.newBuilder() @@ -117,7 +117,7 @@ public class LocalAuthenticationTest { assertThat(response.content()).isEqualTo("{\"valid\":true}"); - WsUserTokens.SearchWsResponse searchResponse = tokensService.search(new SearchWsRequest().setLogin(user.getLogin())); + UserTokens.SearchWsResponse searchResponse = tokensService.search(new SearchWsRequest().setLogin(user.getLogin())); assertThat(searchResponse.getUserTokensCount()).isEqualTo(1); tokensService.revoke(new RevokeWsRequest().setLogin(user.getLogin()).setName(tokenName)); searchResponse = tokensService.search(new SearchWsRequest().setLogin(user.getLogin())); @@ -247,8 +247,8 @@ public class LocalAuthenticationTest { assertThat(checkAuthenticationWithAuthenticateWebService("test", "password")).isTrue(); assertThat(tester.users().getByLogin("test").get()) - .extracting(WsUsers.SearchWsResponse.User::getLogin, WsUsers.SearchWsResponse.User::getName, WsUsers.SearchWsResponse.User::getEmail, u -> u.getScmAccounts().getScmAccountsList(), - WsUsers.SearchWsResponse.User::getExternalIdentity, WsUsers.SearchWsResponse.User::getExternalProvider) + .extracting(Users.SearchWsResponse.User::getLogin, Users.SearchWsResponse.User::getName, Users.SearchWsResponse.User::getEmail, u -> u.getScmAccounts().getScmAccountsList(), + Users.SearchWsResponse.User::getExternalIdentity, Users.SearchWsResponse.User::getExternalProvider) .containsOnly("test", "Test", "test@email.com", asList("test1", "test2"), "test", "sonarqube"); } diff --git a/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java b/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java index ec0961811d3..c4b2739585b 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java @@ -28,7 +28,7 @@ import org.junit.Test; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.PostRequest; import static com.codeborne.selenide.Condition.text; diff --git a/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java b/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java index 740fd28835c..2f6e7f36f1b 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java @@ -35,7 +35,7 @@ import org.junit.Test; import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.ws.WsUsers.SearchWsResponse.User; +import org.sonarqube.ws.Users.SearchWsResponse.User; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; import org.sonarqube.ws.client.permission.AddUserWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java b/tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java index f0f9c614629..b3638e6019b 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java @@ -20,19 +20,15 @@ package org.sonarqube.tests.user; import com.sonar.orchestrator.Orchestrator; -import org.junit.After; -import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.WsClient; import util.ItUtils; import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; public class OnboardingTest { @@ -44,16 +40,6 @@ public class OnboardingTest { @Rule public Tester tester = new Tester(orchestrator).disableOrganizations(); - @Before - public void setUp() { - resetSettings(orchestrator, null, ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS); - } - - @After - public void reset() { - resetSettings(orchestrator, null, ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS); - } - @Test public void by_default_new_user_does_not_see_onboarding_tutorial() { User user = tester.users().generate(); @@ -145,8 +131,8 @@ public class OnboardingTest { verifyTutorial(reactivatedUser, true); } - private static void setShownOnboardingSetting(boolean showTutorial) { - setServerProperty(orchestrator, ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS, String.valueOf(showTutorial)); + private void setShownOnboardingSetting(boolean showTutorial) { + tester.settings().setGlobalSettings(ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS, String.valueOf(showTutorial)); } private void verifyTutorial(User user, boolean expectedTutorial) { diff --git a/tests/src/test/java/org/sonarqube/tests/user/OrganizationIdentityProviderTest.java b/tests/src/test/java/org/sonarqube/tests/user/OrganizationIdentityProviderTest.java index 22e1dee4984..d3edfa5b92a 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/OrganizationIdentityProviderTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/OrganizationIdentityProviderTest.java @@ -21,20 +21,17 @@ package org.sonarqube.tests.user; import com.google.common.base.Joiner; import com.sonar.orchestrator.Orchestrator; -import org.sonarqube.tests.Category6Suite; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsUserGroups.Group; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.tests.Category6Suite; +import org.sonarqube.ws.UserGroups.Group; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.GetRequest; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; - public class OrganizationIdentityProviderTest { @ClassRule @@ -43,22 +40,21 @@ public class OrganizationIdentityProviderTest { @Rule public Tester tester = new Tester(orchestrator); - @Before public void setUp() { // enable the fake authentication plugin - setServerProperty(orchestrator, "sonar.auth.fake-base-id-provider.enabled", "true"); + tester.settings().setGlobalSettings("sonar.auth.fake-base-id-provider.enabled", "true"); } @After public void tearDown() { - resetSettings(orchestrator, null, "sonar.auth.fake-base-id-provider.enabled", "sonar.auth.fake-base-id-provider.user", + tester.settings().resetSettings("sonar.auth.fake-base-id-provider.enabled", "sonar.auth.fake-base-id-provider.user", "sonar.auth.fake-base-id-provider.throwUnauthorizedMessage", "sonar.auth.fake-base-id-provider.enabledGroupsSync", "sonar.auth.fake-base-id-provider.groups", "sonar.auth.fake-base-id-provider.allowsUsersToSignUp"); } @Test - public void default_group_is_not_added_for_new_user_when_organizations_are_enabled() { + public void default_group_is_not_added_for_new_user_when_organizations_are_enabled() { Group group = tester.groups().generate(null); enableUserCreationByAuthPlugin("aLogin"); setGroupsReturnedByAuthPlugin(group.getName()); @@ -99,14 +95,14 @@ public class OrganizationIdentityProviderTest { tester.groups().assertThatUserIsOnlyMemberOf(null, user.getLogin()); } - private static void enableUserCreationByAuthPlugin(String login) { - setServerProperty(orchestrator, "sonar.auth.fake-base-id-provider.user", login + ",fake-john,John,john@email.com"); + private void enableUserCreationByAuthPlugin(String login) { + tester.settings().setGlobalSettings("sonar.auth.fake-base-id-provider.user", login + ",fake-john,John,john@email.com"); } - private static void setGroupsReturnedByAuthPlugin(String... groups) { - setServerProperty(orchestrator, "sonar.auth.fake-base-id-provider.enabledGroupsSync", "true"); + private void setGroupsReturnedByAuthPlugin(String... groups) { + tester.settings().setGlobalSettings("sonar.auth.fake-base-id-provider.enabledGroupsSync", "true"); if (groups.length > 0) { - setServerProperty(orchestrator, "sonar.auth.fake-base-id-provider.groups", Joiner.on(",").join(groups)); + tester.settings().setGlobalSettings("sonar.auth.fake-base-id-provider.groups", Joiner.on(",").join(groups)); } } diff --git a/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java b/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java index aee0917c8f8..686732cb340 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java @@ -36,8 +36,8 @@ import org.sonar.wsclient.base.HttpException; import org.sonar.wsclient.connectors.HttpClient4Connector; import org.sonar.wsclient.services.AuthenticationQuery; import org.sonar.wsclient.user.UserParameters; -import org.sonarqube.qa.util.pageobjects.SystemInfoPage; import org.sonarqube.qa.util.Tester; +import org.sonarqube.qa.util.pageobjects.SystemInfoPage; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; import org.sonarqube.ws.client.user.CreateRequest; @@ -48,11 +48,9 @@ import static java.net.HttpURLConnection.HTTP_OK; import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; -import static util.ItUtils.newAdminWsClient; import static util.ItUtils.newUserWsClient; import static util.ItUtils.pluginArtifact; import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; import static util.selenium.Selenese.runSelenese; /** @@ -293,7 +291,7 @@ public class RealmAuthenticationTest { verifyAuthenticationIsNotOk(login, null); verifyAuthenticationIsOk(null, null); - setServerProperty(orchestrator, "sonar.forceAuthentication", "true"); + tester.settings().setGlobalSettings("sonar.forceAuthentication", "true"); verifyAuthenticationIsOk(login, password); verifyAuthenticationIsNotOk("wrong", password); @@ -313,7 +311,7 @@ public class RealmAuthenticationTest { @Test public void provision_user_before_authentication() { - newAdminWsClient(orchestrator).users().create(CreateRequest.builder() + tester.wsClient().users().create(CreateRequest.builder() .setLogin(USER_LOGIN) .setName("Tester Testerovich") .setEmail("tester@example.org") @@ -346,8 +344,8 @@ public class RealmAuthenticationTest { /** * Updates information about users in security-plugin. */ - private static void updateUsersInExtAuth(Map<String, String> users) { - setServerProperty(orchestrator, USERS_PROPERTY, format(users)); + private void updateUsersInExtAuth(Map<String, String> users) { + tester.settings().setGlobalSettings(USERS_PROPERTY, format(users)); } private void createUserInDb(String login, String password) { diff --git a/tests/src/test/java/org/sonarqube/tests/user/SsoAuthenticationTest.java b/tests/src/test/java/org/sonarqube/tests/user/SsoAuthenticationTest.java index 2860b09dfb7..07214b2a5bc 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/SsoAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/SsoAuthenticationTest.java @@ -28,6 +28,7 @@ import org.apache.commons.io.FileUtils; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; +import org.junit.rules.RuleChain; import util.user.UserRule; import static java.nio.charset.StandardCharsets.UTF_8; @@ -63,61 +64,63 @@ public class SsoAuthenticationTest { .setServerProperty("sonar.web.sso.groupsHeader", GROUPS_HEADER) .build(); + private static UserRule userRule = UserRule.from(orchestrator); + @ClassRule - public static UserRule USER_RULE = UserRule.from(orchestrator); + public static RuleChain ruleChain = RuleChain.outerRule(orchestrator).around(userRule); @Before public void resetData() throws Exception { - USER_RULE.resetUsers(); + userRule.resetUsers(); } @Test public void authenticate() { doCall(USER_LOGIN, USER_NAME, USER_EMAIL, null); - USER_RULE.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL); + userRule.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL); } @Test public void authenticate_with_only_login() throws Exception { doCall(USER_LOGIN, null, null, null); - USER_RULE.verifyUserExists(USER_LOGIN, USER_LOGIN, null); + userRule.verifyUserExists(USER_LOGIN, USER_LOGIN, null); } @Test public void update_user_when_headers_are_updated() { doCall(USER_LOGIN, USER_NAME, USER_EMAIL, null); - USER_RULE.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL); + userRule.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL); // As we don't keep the JWT token is the test, the user is updated doCall(USER_LOGIN, "new name", "new email", null); - USER_RULE.verifyUserExists(USER_LOGIN, "new name", "new email"); + userRule.verifyUserExists(USER_LOGIN, "new name", "new email"); } @Test public void authenticate_with_groups() { doCall(USER_LOGIN, null, null, GROUP_1); - USER_RULE.verifyUserGroupMembership(USER_LOGIN, GROUP_1, "sonar-users"); + userRule.verifyUserGroupMembership(USER_LOGIN, GROUP_1, "sonar-users"); } @Test public void synchronize_groups_when_authenticating_existing_user() throws Exception { - USER_RULE.createGroup(GROUP_1); - USER_RULE.createGroup(GROUP_2); - USER_RULE.createGroup(GROUP_3); - USER_RULE.createUser(USER_LOGIN, "password"); - USER_RULE.associateGroupsToUser(USER_LOGIN, GROUP_1, GROUP_2); + userRule.createGroup(GROUP_1); + userRule.createGroup(GROUP_2); + userRule.createGroup(GROUP_3); + userRule.createUser(USER_LOGIN, "password"); + userRule.associateGroupsToUser(USER_LOGIN, GROUP_1, GROUP_2); doCall(USER_LOGIN, null, null, GROUP_2 + "," + GROUP_3); - USER_RULE.verifyUserGroupMembership(USER_LOGIN, GROUP_2, GROUP_3, "sonar-users"); + userRule.verifyUserGroupMembership(USER_LOGIN, GROUP_2, GROUP_3, "sonar-users"); } @Test public void authentication_with_local_user_is_possible_when_no_header() throws Exception { - USER_RULE.createUser(USER_LOGIN, "password"); + userRule.createUser(USER_LOGIN, "password"); checkLocalAuthentication(USER_LOGIN, "password"); } @@ -131,12 +134,12 @@ public class SsoAuthenticationTest { List<String> logsLines = FileUtils.readLines(orchestrator.getServer().getWebLogs(), UTF_8); assertThat(logsLines).doesNotContain("org.sonar.server.exceptions.BadRequestException: Use only letters, numbers, and .-_@ please."); - USER_RULE.verifyUserDoesNotExist(USER_LOGIN); + userRule.verifyUserDoesNotExist(USER_LOGIN); } @Test public void fail_when_email_already_exists() throws Exception { - USER_RULE.createUser("another", "Another", USER_EMAIL, "another"); + userRule.createUser("another", "Another", USER_EMAIL, "another"); Response response = doCall(USER_LOGIN, USER_NAME, USER_EMAIL, null); diff --git a/tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java b/tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java index 7aa50328352..f73b1fab03d 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java @@ -31,7 +31,7 @@ import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.tests.Byteman; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; +import org.sonarqube.ws.Users.CreateWsResponse.User; import org.sonarqube.ws.client.user.SearchRequest; import org.sonarqube.ws.client.user.UpdateRequest; import util.ItUtils; diff --git a/tests/src/test/java/org/sonarqube/tests/user/UsersPageTest.java b/tests/src/test/java/org/sonarqube/tests/user/UsersPageTest.java index b983b0e69e0..38b62681a9c 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/UsersPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/UsersPageTest.java @@ -27,7 +27,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.user.GroupsRequest; import util.selenium.Selenese; @@ -77,8 +77,8 @@ public class UsersPageTest { userRule.createGroup(group); userRule.associateGroupsToUser(login, group); - List<WsUsers.GroupsWsResponse.Group> result = adminClient.users().groups(GroupsRequest.builder().setLogin(login).build()).getGroupsList(); + List<Users.GroupsWsResponse.Group> result = adminClient.users().groups(GroupsRequest.builder().setLogin(login).build()).getGroupsList(); - assertThat(result).extracting(WsUsers.GroupsWsResponse.Group::getName).contains(group); + assertThat(result).extracting(Users.GroupsWsResponse.Group::getName).contains(group); } } diff --git a/tests/src/test/java/util/ItUtils.java b/tests/src/test/java/util/ItUtils.java index b10257c2c53..f663c7d6b94 100644 --- a/tests/src/test/java/util/ItUtils.java +++ b/tests/src/test/java/util/ItUtils.java @@ -63,9 +63,9 @@ import org.sonar.wsclient.issue.IssueClient; import org.sonar.wsclient.issue.IssueQuery; import org.sonarqube.qa.util.SettingTester; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsComponents.Component; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.WsMeasures.Measure; +import org.sonarqube.ws.Components.Component; +import org.sonarqube.ws.Measures; +import org.sonarqube.ws.Measures.Measure; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.HttpConnector; import org.sonarqube.ws.client.WsClient; @@ -343,7 +343,7 @@ public class ItUtils { @CheckForNull public static Measure getMeasureWithVariation(Orchestrator orchestrator, String componentKey, String metricKey) { - WsMeasures.ComponentWsResponse response = newWsClient(orchestrator).measures().component(new ComponentWsRequest() + Measures.ComponentWsResponse response = newWsClient(orchestrator).measures().component(new ComponentWsRequest() .setComponentKey(componentKey) .setMetricKeys(singletonList(metricKey)) .setAdditionalFields(singletonList("periods"))); @@ -366,7 +366,7 @@ public class ItUtils { */ @CheckForNull public static Double getLeakPeriodValue(Orchestrator orchestrator, String componentKey, String metricKey) { - List<WsMeasures.PeriodValue> periodsValueList = getMeasureWithVariation(orchestrator, componentKey, metricKey).getPeriods().getPeriodsValueList(); + List<Measures.PeriodValue> periodsValueList = getMeasureWithVariation(orchestrator, componentKey, metricKey).getPeriods().getPeriodsValueList(); return periodsValueList.size() > 0 ? Double.parseDouble(periodsValueList.get(0).getValue()) : null; } diff --git a/tests/src/test/java/util/user/UserRule.java b/tests/src/test/java/util/user/UserRule.java index beb07e114d2..80df9438ab6 100644 --- a/tests/src/test/java/util/user/UserRule.java +++ b/tests/src/test/java/util/user/UserRule.java @@ -19,19 +19,18 @@ */ package util.user; -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.collect.FluentIterable; import com.sonar.orchestrator.Orchestrator; import java.util.List; +import java.util.Optional; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Predicate; import java.util.stream.Collectors; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.junit.rules.ExternalResource; import org.sonarqube.qa.util.Tester; -import org.sonarqube.ws.WsUsers; +import org.sonarqube.ws.Users; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; @@ -47,7 +46,6 @@ import static java.util.Arrays.stream; import static java.util.Objects.requireNonNull; import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.guava.api.Assertions.assertThat; import static util.ItUtils.newAdminWsClient; /** @@ -83,7 +81,7 @@ public class UserRule extends ExternalResource implements GroupManagement { // ***************** public void resetUsers() { - for (Users.User user : getUsers().getUsers()) { + for (util.user.Users.User user : getUsers().getUsers()) { String userLogin = user.getLogin(); if (!userLogin.equals(ADMIN_LOGIN)) { deactivateUsers(userLogin); @@ -91,8 +89,8 @@ public class UserRule extends ExternalResource implements GroupManagement { } } - public Users.User verifyUserExists(String login, String name, @Nullable String email) { - Optional<Users.User> user = getUserByLogin(login); + public util.user.Users.User verifyUserExists(String login, String name, @Nullable String email) { + Optional<util.user.Users.User> user = getUserByLogin(login); assertThat(user).as("User with login '%s' hasn't been found", login).isPresent(); assertThat(user.get().getLogin()).isEqualTo(login); assertThat(user.get().getName()).isEqualTo(name); @@ -101,15 +99,15 @@ public class UserRule extends ExternalResource implements GroupManagement { } public void verifyUserExists(String login, String name, @Nullable String email, boolean local) { - Users.User user = verifyUserExists(login, name, email); + util.user.Users.User user = verifyUserExists(login, name, email); assertThat(user.isLocal()).isEqualTo(local); } public void verifyUserDoesNotExist(String login) { - assertThat(getUserByLogin(login)).as("Unexpected user with login '%s' has been found", login).isAbsent(); + assertThat(getUserByLogin(login)).as("Unexpected user with login '%s' has been found", login).isEmpty(); } - public WsUsers.CreateWsResponse.User createUser(String login, String name, @Nullable String email, String password) { + public Users.CreateWsResponse.User createUser(String login, String name, @Nullable String email, String password) { CreateRequest.Builder request = CreateRequest.builder() .setLogin(login) .setName(name) @@ -122,7 +120,7 @@ public class UserRule extends ExternalResource implements GroupManagement { * Create user with randomly generated values. By default password is the login. */ @SafeVarargs - public final WsUsers.CreateWsResponse.User generate(Consumer<CreateRequest.Builder>... populators) { + public final org.sonarqube.ws.Users.CreateWsResponse.User generate(Consumer<CreateRequest.Builder>... populators) { int id = ID_GENERATOR.getAndIncrement(); String login = "login" + id; CreateRequest.Builder request = CreateRequest.builder() @@ -157,15 +155,15 @@ public class UserRule extends ExternalResource implements GroupManagement { adminWsClient().roots().setRoot(login); } - public Optional<Users.User> getUserByLogin(String login) { - return FluentIterable.from(getUsers().getUsers()).firstMatch(new MatchUserLogin(login)); + public Optional<util.user.Users.User> getUserByLogin(String login) { + return getUsers().getUsers().stream().filter(new MatchUserLogin(login)).findFirst(); } - public Users getUsers() { + public util.user.Users getUsers() { WsResponse response = adminWsClient().wsConnector().call( new GetRequest("api/users/search")) .failIfNotSuccessful(); - return Users.parse(response.content()); + return util.user.Users.parse(response.content()); } public void deactivateUsers(List<String> userLogins) { @@ -194,10 +192,6 @@ public class UserRule extends ExternalResource implements GroupManagement { // User groups // ***************** - public GroupManagement forOrganization(String organizationKey) { - return new GroupManagementImpl(organizationKey); - } - private final class GroupManagementImpl implements GroupManagement { @CheckForNull private final String organizationKey; @@ -247,7 +241,7 @@ public class UserRule extends ExternalResource implements GroupManagement { @Override public java.util.Optional<Groups.Group> getGroupByName(String name) { - return getGroups().getGroups().stream().filter(new MatchGroupName(name)::apply).findFirst(); + return getGroups().getGroups().stream().filter(new MatchGroupName(name)).findFirst(); } @Override @@ -339,7 +333,7 @@ public class UserRule extends ExternalResource implements GroupManagement { return adminWsClient; } - private class MatchUserLogin implements Predicate<Users.User> { + private class MatchUserLogin implements Predicate<util.user.Users.User> { private final String login; private MatchUserLogin(String login) { @@ -347,7 +341,7 @@ public class UserRule extends ExternalResource implements GroupManagement { } @Override - public boolean apply(@Nonnull Users.User user) { + public boolean test(@Nonnull util.user.Users.User user) { String login = user.getLogin(); return login != null && login.equals(this.login) && user.isActive(); } @@ -361,7 +355,7 @@ public class UserRule extends ExternalResource implements GroupManagement { } @Override - public boolean apply(@Nonnull Groups.Group group) { + public boolean test(@Nonnull Groups.Group group) { String groupName = group.getName(); return groupName != null && groupName.equals(this.groupName); } diff --git a/tests/src/test/java/util/user/Users.java b/tests/src/test/java/util/user/Users.java index 2f0a252e6c7..01e3c70238d 100644 --- a/tests/src/test/java/util/user/Users.java +++ b/tests/src/test/java/util/user/Users.java @@ -22,6 +22,7 @@ package util.user; import com.google.gson.Gson; import java.util.List; +@Deprecated public class Users { private List<User> users; |