Skip to content

Commit 7f02a0e

Browse files
committed
Correctly getting global comments
1 parent 2f32dde commit 7f02a0e

File tree

6 files changed

+320
-14
lines changed

6 files changed

+320
-14
lines changed

src/main/java/se/bjurr/violations/comments/bitbucketserver/lib/BitbucketServerCommentsProvider.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@
77
import static java.util.logging.Level.SEVERE;
88
import static se.bjurr.violations.comments.bitbucketserver.lib.client.model.DIFFTYPE.ADDED;
99

10-
import com.google.common.annotations.VisibleForTesting;
11-
import com.google.common.cache.CacheLoader;
12-
import com.google.common.cache.LoadingCache;
1310
import java.util.ArrayDeque;
1411
import java.util.ArrayList;
1512
import java.util.Collection;
1613
import java.util.Deque;
1714
import java.util.Iterator;
1815
import java.util.List;
1916
import java.util.Optional;
17+
2018
import se.bjurr.violations.comments.bitbucketserver.lib.client.BitbucketServerClient;
2119
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.BitbucketServerComment;
2220
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.BitbucketServerDiff;
@@ -31,6 +29,10 @@
3129
import se.bjurr.violations.comments.lib.model.ChangedFile;
3230
import se.bjurr.violations.comments.lib.model.Comment;
3331

32+
import com.google.common.annotations.VisibleForTesting;
33+
import com.google.common.cache.CacheLoader;
34+
import com.google.common.cache.LoadingCache;
35+
3436
public class BitbucketServerCommentsProvider implements CommentsProvider {
3537

3638
private final BitbucketServerClient client;

src/main/java/se/bjurr/violations/comments/bitbucketserver/lib/client/BitbucketServerClient.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,24 @@
66
import static java.util.logging.Level.INFO;
77
import static se.bjurr.violations.lib.util.Utils.isNullOrEmpty;
88

9-
import com.google.common.annotations.VisibleForTesting;
10-
import com.google.gson.Gson;
11-
import com.jayway.jsonpath.JsonPath;
129
import java.io.File;
1310
import java.io.UnsupportedEncodingException;
1411
import java.util.ArrayList;
1512
import java.util.Arrays;
1613
import java.util.LinkedHashMap;
1714
import java.util.List;
15+
1816
import net.minidev.json.JSONArray;
1917
import se.bjurr.violations.comments.bitbucketserver.lib.client.BitbucketServerInvoker.Method;
2018
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.BitbucketServerComment;
2119
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.BitbucketServerDiffResponse;
2220
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.BitbucketServerTask;
2321
import se.bjurr.violations.comments.lib.ViolationsLogger;
2422

23+
import com.google.common.annotations.VisibleForTesting;
24+
import com.google.gson.Gson;
25+
import com.jayway.jsonpath.JsonPath;
26+
2527
public class BitbucketServerClient {
2628
private static BitbucketServerInvoker bitbucketServerInvoker = new BitbucketServerInvoker();
2729
private final ViolationsLogger violationsLogger;
@@ -186,8 +188,8 @@ public BitbucketServerComment pullRequestComment(final Long commentId) {
186188

187189
public List<BitbucketServerComment> pullRequestComments() {
188190
final String url =
189-
getBitbucketServerPullRequestBase() + "/comments?limit=999999&anchorState=ALL";
190-
return getComments(url);
191+
getBitbucketServerPullRequestBase() + "/activities?activities?limit=9999";
192+
return getComments(url,"$.values.[*].comment");
191193
}
192194

193195
public List<BitbucketServerComment> pullRequestComments(final String changedFile) {
@@ -198,14 +200,13 @@ public List<BitbucketServerComment> pullRequestComments(final String changedFile
198200
+ "/comments?path="
199201
+ encodedChangedFile
200202
+ "&limit=999999&anchorState=ALL";
201-
return getComments(url);
203+
return getComments(url,"$.values[*]");
202204
} catch (final UnsupportedEncodingException e) {
203205
throw new RuntimeException(e.getMessage(), e);
204206
}
205207
}
206208

207-
private List<BitbucketServerComment> getComments(final String url) {
208-
final String jsonPath = "$.values[*]";
209+
private List<BitbucketServerComment> getComments(final String url,final String jsonPath) {
209210

210211
final String json = doInvokeUrl(url, Method.GET, null);
211212
List<LinkedHashMap<?, ?>> parsed = null;

src/test/java/se/bjurr/violations/comments/bitbucketserver/lib/client/BitbucketServerClientTest.java

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
import static se.bjurr.violations.comments.bitbucketserver.lib.client.model.DIFFTYPE.CONTEXT;
77
import static se.bjurr.violations.comments.bitbucketserver.lib.client.model.DIFFTYPE.REMOVED;
88

9-
import com.google.common.base.Charsets;
10-
import com.google.common.io.Resources;
119
import java.io.IOException;
1210
import java.util.List;
1311
import java.util.logging.Level;
1412
import java.util.logging.Logger;
13+
1514
import org.junit.Before;
1615
import org.junit.Test;
16+
1717
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.BitbucketServerComment;
1818
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.BitbucketServerDiff;
1919
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.BitbucketServerDiffResponse;
@@ -22,6 +22,9 @@
2222
import se.bjurr.violations.comments.bitbucketserver.lib.client.model.Segment;
2323
import se.bjurr.violations.comments.lib.ViolationsLogger;
2424

25+
import com.google.common.base.Charsets;
26+
import com.google.common.io.Resources;
27+
2528
public class BitbucketServerClientTest {
2629
private String mockedJson = null;
2730
private final BitbucketServerClient sut =
@@ -50,7 +53,7 @@ public void log(final Level level, final String string, final Throwable t) {
5053
null,
5154
null);
5255
private String invoked;
53-
private String path = "anypath";
56+
private final String path = "anypath";
5457

5558
@Before
5659
public void before() {
@@ -127,6 +130,45 @@ public void testPullRequestCommentsOnFile() {
127130
"bitbucketServerBaseUrl/rest/api/1.0/projects/bitbucketServerProject/repos/bitbucketServerRepo/pull-requests/1/comments?path=any%2Ffile.txt&limit=999999&anchorState=ALL");
128131
}
129132

133+
@Test
134+
public void testPullRequestCommentsEmpty() {
135+
mockJson("pull-request-comments-all-empty.json");
136+
final List<BitbucketServerComment> actual = sut.pullRequestComments();
137+
assertThat(actual).isEmpty();
138+
assertThat(invoked)
139+
.isEqualTo(
140+
"bitbucketServerBaseUrl/rest/api/1.0/projects/bitbucketServerProject/repos/bitbucketServerRepo/pull-requests/1/activities?activities?limit=9999");
141+
}
142+
143+
@Test
144+
public void testPullRequestCommentsOne() {
145+
mockJson("pull-request-comments-all-one.json");
146+
final List<BitbucketServerComment> actual = sut.pullRequestComments();
147+
assertThat(actual).hasSize(1);
148+
assertThat(actual.get(0).getId()).isEqualTo(1);
149+
assertThat(actual.get(0).getText()).isEqualTo("as");
150+
assertThat(actual.get(0).getVersion()).isEqualTo(0);
151+
assertThat(invoked)
152+
.isEqualTo(
153+
"bitbucketServerBaseUrl/rest/api/1.0/projects/bitbucketServerProject/repos/bitbucketServerRepo/pull-requests/1/activities?activities?limit=9999");
154+
}
155+
156+
@Test
157+
public void testPullRequestCommentsTwo() {
158+
mockJson("pull-request-comments-all-two.json");
159+
final List<BitbucketServerComment> actual = sut.pullRequestComments();
160+
assertThat(actual).hasSize(2);
161+
assertThat(actual.get(0).getId()).isEqualTo(23);
162+
assertThat(actual.get(0).getText().trim()).isEqualTo("this is another comment");
163+
assertThat(actual.get(0).getVersion()).isEqualTo(0);
164+
assertThat(actual.get(1).getId()).isEqualTo(22);
165+
assertThat(actual.get(1).getText()).isEqualTo("this is a comment");
166+
assertThat(actual.get(1).getVersion()).isEqualTo(0);
167+
assertThat(invoked)
168+
.isEqualTo(
169+
"bitbucketServerBaseUrl/rest/api/1.0/projects/bitbucketServerProject/repos/bitbucketServerRepo/pull-requests/1/activities?activities?limit=9999");
170+
}
171+
130172
@Test
131173
public void testPullRequestCommentsOnFileWithSpaces() {
132174
mockJson("pull-request-comments.json");
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"size":1,
3+
"limit":500,
4+
"isLastPage":true,
5+
"values":[
6+
{
7+
"id":2,
8+
"createdDate":1550311425057,
9+
"user":{
10+
"name":"admin",
11+
"emailAddress":"admin@example.com",
12+
"id":1,
13+
"displayName":"Administrator",
14+
"active":true,
15+
"slug":"admin",
16+
"type":"NORMAL",
17+
"links":{
18+
"self":[
19+
{
20+
"href":"http://localhost:7990/bitbucket/users/admin"
21+
}
22+
]
23+
}
24+
},
25+
"action":"OPENED"
26+
}
27+
],
28+
"start":0
29+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
{
2+
"size":2,
3+
"limit":500,
4+
"isLastPage":true,
5+
"values":[
6+
{
7+
"id":3,
8+
"createdDate":1550311440154,
9+
"user":{
10+
"name":"admin",
11+
"emailAddress":"admin@example.com",
12+
"id":1,
13+
"displayName":"Administrator",
14+
"active":true,
15+
"slug":"admin",
16+
"type":"NORMAL",
17+
"links":{
18+
"self":[
19+
{
20+
"href":"http://localhost:7990/bitbucket/users/admin"
21+
}
22+
]
23+
}
24+
},
25+
"action":"COMMENTED",
26+
"commentAction":"ADDED",
27+
"comment":{
28+
"properties":{
29+
"repositoryId":1
30+
},
31+
"id":1,
32+
"version":0,
33+
"text":"as",
34+
"author":{
35+
"name":"admin",
36+
"emailAddress":"admin@example.com",
37+
"id":1,
38+
"displayName":"Administrator",
39+
"active":true,
40+
"slug":"admin",
41+
"type":"NORMAL",
42+
"links":{
43+
"self":[
44+
{
45+
"href":"http://localhost:7990/bitbucket/users/admin"
46+
}
47+
]
48+
}
49+
},
50+
"createdDate":1550311440154,
51+
"updatedDate":1550311440154,
52+
"comments":[
53+
54+
],
55+
"tasks":[
56+
57+
],
58+
"permittedOperations":{
59+
"editable":true,
60+
"deletable":true
61+
}
62+
}
63+
},
64+
{
65+
"id":2,
66+
"createdDate":1550311425057,
67+
"user":{
68+
"name":"admin",
69+
"emailAddress":"admin@example.com",
70+
"id":1,
71+
"displayName":"Administrator",
72+
"active":true,
73+
"slug":"admin",
74+
"type":"NORMAL",
75+
"links":{
76+
"self":[
77+
{
78+
"href":"http://localhost:7990/bitbucket/users/admin"
79+
}
80+
]
81+
}
82+
},
83+
"action":"OPENED"
84+
}
85+
],
86+
"start":0
87+
}

0 commit comments

Comments
 (0)