diff options
author | Fabrice Bellingard <bellingard@gmail.com> | 2011-05-30 14:58:02 +0200 |
---|---|---|
committer | Fabrice Bellingard <bellingard@gmail.com> | 2011-05-30 19:19:11 +0200 |
commit | 3cd3a7dcc73cb3924d8c61f532423226bb38b38b (patch) | |
tree | 1616351a6516ed3cc0b7748ddde670162789ef98 /sonar-ws-client/src/test | |
parent | 9d66cd90629de1ccfc144636f66a96efbdfd53d8 (diff) | |
download | sonarqube-3cd3a7dcc73cb3924d8c61f532423226bb38b38b.tar.gz sonarqube-3cd3a7dcc73cb3924d8c61f532423226bb38b38b.zip |
SONAR-2404 Extend the Review web service API to create & update
- Java client WS: create, update and delete queries
- Added the ID of each comment on a review (JSON and XML) to be able
to cleanly delete the last comment of a review
Diffstat (limited to 'sonar-ws-client/src/test')
5 files changed, 140 insertions, 1 deletions
diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewCreateQueryTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewCreateQueryTest.java new file mode 100644 index 00000000000..fd3ae931612 --- /dev/null +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewCreateQueryTest.java @@ -0,0 +1,48 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2008-2011 SonarSource + * mailto:contact AT sonarsource DOT com + * + * Sonar 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. + * + * Sonar 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 Sonar; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package org.sonar.wsclient.services; + +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertThat; + +import org.junit.Test; + +public class ReviewCreateQueryTest extends QueryTestCase { + + @Test + public void testCreateSimpleReview() { + ReviewCreateQuery query = ReviewCreateQuery.createSimpleReviewQuery(13L, "Hello World!"); + assertThat(query.getUrl(), is("/api/reviews/?violation_id=13&text=Hello+World%21&")); + assertThat(query.getModelClass().getName(), is(Review.class.getName())); + } + + @Test + public void testCreateAssignedReview() { + ReviewCreateQuery query = ReviewCreateQuery.createAssignedReviewQuery(13L, "Hello World!", "fabrice"); + assertThat(query.getUrl(), is("/api/reviews/?violation_id=13&text=Hello+World%21&assignee=fabrice&")); + } + + @Test + public void testCreateFalsePositiveReview() { + ReviewCreateQuery query = ReviewCreateQuery.createFalsePositiveReviewQuery(13L, "Hello World!"); + assertThat(query.getUrl(), is("/api/reviews/?violation_id=13&text=Hello+World%21&false_positive=true&")); + } + +}
\ No newline at end of file diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewDeleteQueryTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewDeleteQueryTest.java new file mode 100644 index 00000000000..ff2b22dadf8 --- /dev/null +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewDeleteQueryTest.java @@ -0,0 +1,36 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2008-2011 SonarSource + * mailto:contact AT sonarsource DOT com + * + * Sonar 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. + * + * Sonar 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 Sonar; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package org.sonar.wsclient.services; + +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertThat; + +import org.junit.Test; + +public class ReviewDeleteQueryTest extends QueryTestCase { + + @Test + public void testAddComment() { + ReviewDeleteQuery query = ReviewDeleteQuery.deleteCommentQuery(13L, 2L); + assertThat(query.getUrl(), is("/api/reviews/?id=13&comment_id=2&")); + assertThat(query.getModelClass().getName(), is(Review.class.getName())); + } + +}
\ No newline at end of file diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewUpdateQueryTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewUpdateQueryTest.java new file mode 100644 index 00000000000..ee28a908ab6 --- /dev/null +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewUpdateQueryTest.java @@ -0,0 +1,54 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2008-2011 SonarSource + * mailto:contact AT sonarsource DOT com + * + * Sonar 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. + * + * Sonar 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 Sonar; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package org.sonar.wsclient.services; + +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertThat; + +import org.junit.Test; + +public class ReviewUpdateQueryTest extends QueryTestCase { + + @Test + public void testAddComment() { + ReviewUpdateQuery query = ReviewUpdateQuery.addCommentQuery(13L, "Hello World!"); + assertThat(query.getUrl(), is("/api/reviews/?id=13&new_text=Hello+World%21&")); + assertThat(query.getModelClass().getName(), is(Review.class.getName())); + } + + @Test + public void testEditLastComment() { + ReviewUpdateQuery query = ReviewUpdateQuery.editLastCommentQuery(13L, "Hello World!"); + assertThat(query.getUrl(), is("/api/reviews/?id=13&text=Hello+World%21&")); + } + + @Test + public void testReassign() { + ReviewUpdateQuery query = ReviewUpdateQuery.reassignQuery(13L, "fabrice"); + assertThat(query.getUrl(), is("/api/reviews/?id=13&assignee=fabrice&")); + } + + @Test + public void testUpdateFalsePositive() { + ReviewUpdateQuery query = ReviewUpdateQuery.updateFalsePositiveQuery(13L, "Hello World!", Boolean.TRUE); + assertThat(query.getUrl(), is("/api/reviews/?id=13&new_text=Hello+World%21&false_positive=true&")); + } + +}
\ No newline at end of file diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java index d3f543b984c..d2c4cc73564 100644 --- a/sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java @@ -58,6 +58,7 @@ public class ReviewUnmarshallerTest extends UnmarshallerTestCase { List<Comment> comments = review.getComments(); assertThat(comments.size(), is(4)); Comment comment = comments.get(0); + assertThat(comment.getId(), is(1L)); assertNotNull(comment.getUpdatedAt()); assertThat(comment.getAuthorLogin(), is("admin")); assertThat(comment.getText(), is("This is a review.<br/>And this is on multiple lines...<br/><br/><code>Wouhou!!!!!</code>")); diff --git a/sonar-ws-client/src/test/resources/reviews/reviews-2.9.json b/sonar-ws-client/src/test/resources/reviews/reviews-2.9.json index 371a15119c9..707438bbd31 100644 --- a/sonar-ws-client/src/test/resources/reviews/reviews-2.9.json +++ b/sonar-ws-client/src/test/resources/reviews/reviews-2.9.json @@ -1 +1 @@ -[{"id":3,"createdAt":"2011-04-26T15:44:42+0200","updatedAt":"2011-04-26T15:44:42+0200","author":"admin","assignee":"admin","title":"'static' modifier out of order with the JLS suggestions.","falsePositive":false,"status":"OPEN","severity":"MINOR","resource":"org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReaderConfiguration","line":33,"comments":[{"author":"admin","updatedAt":"2011-04-26T15:44:42+0200","text":"This is a review.<br/>And this is on multiple lines...<br/><br/><code>Wouhou!!!!!</code>"},{"author":"admin","updatedAt":"2011-04-26T17:10:19+0200","text":"<em>Bold on multiple line?</em>"},{"author":"admin","updatedAt":"2011-04-26T17:11:02+0200","text":"And the bullets:<br/><ul><li>1 bullet</li>\n<li>2 bullets</li></ul>"},{"author":"admin","updatedAt":"2011-04-26T17:27:37+0200","text":"Wazzaa"}]},{"id":9,"createdAt":"2011-04-27T14:37:20+0200","updatedAt":"2011-04-27T14:37:20+0200","author":"admin","title":"New exception is thrown in catch block, original stack trace may be lost","falsePositive":true,"status":"OPEN","severity":"MAJOR","resource":"org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReader","line":84,"comments":[{"author":"admin","updatedAt":"2011-04-27T14:37:20+0200","text":"Wazzaaaa"}]}]
\ No newline at end of file +[{"id":3,"createdAt":"2011-04-26T15:44:42+0200","updatedAt":"2011-04-26T15:44:42+0200","author":"admin","assignee":"admin","title":"'static' modifier out of order with the JLS suggestions.","falsePositive":false,"status":"OPEN","severity":"MINOR","resource":"org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReaderConfiguration","line":33,"comments":[{"id":1,"author":"admin","updatedAt":"2011-04-26T15:44:42+0200","text":"This is a review.<br/>And this is on multiple lines...<br/><br/><code>Wouhou!!!!!</code>"},{"id":2,"author":"admin","updatedAt":"2011-04-26T17:10:19+0200","text":"<em>Bold on multiple line?</em>"},{"id":3,"author":"admin","updatedAt":"2011-04-26T17:11:02+0200","text":"And the bullets:<br/><ul><li>1 bullet</li>\n<li>2 bullets</li></ul>"},{"id":4,"author":"admin","updatedAt":"2011-04-26T17:27:37+0200","text":"Wazzaa"}]},{"id":9,"createdAt":"2011-04-27T14:37:20+0200","updatedAt":"2011-04-27T14:37:20+0200","author":"admin","title":"New exception is thrown in catch block, original stack trace may be lost","falsePositive":true,"status":"OPEN","severity":"MAJOR","resource":"org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReader","line":84,"comments":[{"id":5,"author":"admin","updatedAt":"2011-04-27T14:37:20+0200","text":"Wazzaaaa"}]}]
\ No newline at end of file |