@Test public void should_unassign() { HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); httpServer.stubResponseBody("{\"issue\": {\"key\": \"ABCDE\"}}"); IssueClient client = new DefaultIssueClient(requestFactory); Issue result = client.assign("ABCDE", null); assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/assign"); assertThat(httpServer.requestParams()).includes(entry("issue", "ABCDE")); assertThat(result).isNotNull(); }
@Test public void should_find_issues() { HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); httpServer.stubResponseBody("{\"issues\": [{\"key\": \"ABCDE\"}]}"); IssueClient client = new DefaultIssueClient(requestFactory); IssueQuery query = IssueQuery.create().issues("ABCDE"); Issues issues = client.find(query); assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/search?issues=ABCDE"); assertThat(issues.list()).hasSize(1); assertThat(issues.list().get(0).key()).isEqualTo("ABCDE"); }
@Test public void should_create_issue() { HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); httpServer.stubResponseBody("{\"issue\": {\"key\": \"ABCDE\"}}"); IssueClient client = new DefaultIssueClient(requestFactory); Issue result = client.create(NewIssue.create().component("Action.java").rule("squid:AvoidCycle")); assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/create"); assertThat(httpServer.requestParams()) .includes(entry("component", "Action.java"), entry("rule", "squid:AvoidCycle")); assertThat(result).isNotNull(); }
@Test public void should_fail_to_find_issues() { HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); httpServer.stubStatusCode(500); IssueClient client = new DefaultIssueClient(requestFactory); try { client.find(IssueQuery.create()); fail(); } catch (HttpException e) { assertThat(e.status()).isEqualTo(500); assertThat(e.url()).startsWith("http://localhost"); assertThat(e.url()).endsWith("/api/issues/search"); } }
@Test public void should_get_actions() { HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); httpServer.stubResponseBody( "{\n" + " \"actions\": [\n" + " \"link-to-jira\",\n" + " \"tweet\"\n" + " ]\n" + "}"); IssueClient client = new DefaultIssueClient(requestFactory); List<String> actions = client.actions("ABCDE"); assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/actions?issue=ABCDE"); assertThat(actions).hasSize(2); assertThat(actions).containsOnly("link-to-jira", "tweet"); }
@Test public void should_get_transitions() { HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); httpServer.stubResponseBody( "{\n" + " \"transitions\": [\n" + " \"resolve\",\n" + " \"falsepositive\"\n" + " ]\n" + "}"); IssueClient client = new DefaultIssueClient(requestFactory); List<String> transitions = client.transitions("ABCDE"); assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/transitions?issue=ABCDE"); assertThat(transitions).hasSize(2); assertThat(transitions).containsOnly("resolve", "falsepositive"); }
@Test public void should_add_comment() throws Exception { HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); httpServer.stubResponseBody( IOUtils.toString( getClass() .getResourceAsStream( "/org/sonar/wsclient/issue/internal/DefaultIssueClientTest/add_comment_result.json"))); IssueClient client = new DefaultIssueClient(requestFactory); IssueComment comment = client.addComment("ISSUE-1", "this is my comment"); assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/add_comment"); assertThat(httpServer.requestParams()) .includes(entry("issue", "ISSUE-1"), entry("text", "this is my comment")); assertThat(comment).isNotNull(); assertThat(comment.key()).isEqualTo("COMMENT-123"); assertThat(comment.htmlText()).isEqualTo("this is my comment"); assertThat(comment.login()).isEqualTo("admin"); assertThat(comment.createdAt().getDate()).isEqualTo(18); }
@Test public void should_do_bulk_change() { HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url()); httpServer.stubResponseBody( "{\"issuesChanged\": {\"total\": 2}, \"issuesNotChanged\": {\"total\": 1, \"issues\": [\"06ed4db6-fd96-450a-bcb0-e0184db50105\"]} }"); BulkChangeQuery query = BulkChangeQuery.create() .issues("ABCD", "EFGH") .actions("assign") .actionParameter("assign", "assignee", "geoffrey"); IssueClient client = new DefaultIssueClient(requestFactory); BulkChange result = client.bulkChange(query); assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/bulk_change"); assertThat(httpServer.requestParams()) .includes( entry("assign.assignee", "geoffrey"), entry("issues", "ABCD,EFGH"), entry("actions", "assign")); assertThat(result).isNotNull(); }