aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/test/java/util/issue
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2017-06-23 21:31:56 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2017-06-25 23:42:50 +0200
commit70b6899988da0d2ba0a39b846e4f1bd3fa27304f (patch)
tree1ac093a87e0fba6b07c6feb6aceae89bdd9663cf /tests/src/test/java/util/issue
parent5dd574819854e9ce7e2f4e181e78153a7ecbf828 (diff)
downloadsonarqube-70b6899988da0d2ba0a39b846e4f1bd3fa27304f.tar.gz
sonarqube-70b6899988da0d2ba0a39b846e4f1bd3fa27304f.zip
Move integration tests to directory tests/
Diffstat (limited to 'tests/src/test/java/util/issue')
-rw-r--r--tests/src/test/java/util/issue/IssueRule.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/src/test/java/util/issue/IssueRule.java b/tests/src/test/java/util/issue/IssueRule.java
new file mode 100644
index 00000000000..7857d3cabdc
--- /dev/null
+++ b/tests/src/test/java/util/issue/IssueRule.java
@@ -0,0 +1,79 @@
+/*
+ * 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 util.issue;
+
+import com.sonar.orchestrator.Orchestrator;
+import java.util.List;
+import org.junit.rules.ExternalResource;
+import org.sonarqube.ws.Issues.Issue;
+import org.sonarqube.ws.Issues.SearchWsResponse;
+import org.sonarqube.ws.client.WsClient;
+import org.sonarqube.ws.client.issue.SearchWsRequest;
+
+import static java.util.Arrays.asList;
+import static java.util.Collections.singletonList;
+import static java.util.Objects.requireNonNull;
+import static org.assertj.core.api.Assertions.assertThat;
+import static util.ItUtils.newAdminWsClient;
+
+public class IssueRule extends ExternalResource {
+
+ private final Orchestrator orchestrator;
+
+ private WsClient adminWsClient;
+
+ private IssueRule(Orchestrator orchestrator) {
+ this.orchestrator = orchestrator;
+ }
+
+ public static IssueRule from(Orchestrator orchestrator) {
+ return new IssueRule(requireNonNull(orchestrator, "Orchestrator instance can not be null"));
+ }
+
+ public SearchWsResponse search(SearchWsRequest request) {
+ return adminWsClient().issues().search(request);
+ }
+
+ public Issue getRandomIssue() {
+ List<Issue> issues = search(new SearchWsRequest()).getIssuesList();
+ assertThat(issues).isNotEmpty();
+ return issues.get(0);
+ }
+
+ public Issue getByKey(String issueKey) {
+ List<Issue> issues = search(new SearchWsRequest().setIssues(singletonList(issueKey)).setAdditionalFields(singletonList("_all"))).getIssuesList();
+ assertThat(issues).hasSize(1);
+ return issues.iterator().next();
+ }
+
+ public List<Issue> getByKeys(String... issueKeys) {
+ List<Issue> issues = search(new SearchWsRequest().setIssues(asList(issueKeys)).setAdditionalFields(singletonList("_all"))).getIssuesList();
+ assertThat(issues).hasSize(issueKeys.length);
+ return issues;
+ }
+
+ private WsClient adminWsClient() {
+ if (adminWsClient == null) {
+ adminWsClient = newAdminWsClient(orchestrator);
+ }
+ return adminWsClient;
+ }
+
+}