1212import org .junit .Before ;
1313import org .junit .Test ;
1414
15- import com .google .common .base .Charsets ;
16- import com .google .common .io .Resources ;
17-
1815import se .bjurr .violations .comments .bitbucketserver .lib .client .model .BitbucketServerComment ;
1916import se .bjurr .violations .comments .bitbucketserver .lib .client .model .BitbucketServerDiff ;
2017import se .bjurr .violations .comments .bitbucketserver .lib .client .model .BitbucketServerDiffResponse ;
2118import se .bjurr .violations .comments .bitbucketserver .lib .client .model .DIFFTYPE ;
2219import se .bjurr .violations .comments .bitbucketserver .lib .client .model .DiffHunk ;
2320import se .bjurr .violations .comments .bitbucketserver .lib .client .model .Segment ;
2421
22+ import com .google .common .base .Charsets ;
23+ import com .google .common .io .Resources ;
24+
2525public class BitbucketServerClientTest {
2626 private String mockedJson = null ;
2727 private final BitbucketServerClient sut = new BitbucketServerClient ("bitbucketServerBaseUrl" , "bitbucketServerProject" ,
2828 "bitbucketServerRepo" , 1 , "bitbucketServerUser" , "bitbucketServerPassword" );
29-
29+ private String invoked ;
3030 @ Before
3131 public void before () {
3232 BitbucketServerClient .setBitbucketServerInvoker (new BitbucketServerInvoker () {
3333 @ Override
3434 public String invokeUrl (String url , Method method , String postContent , String bitbucketServerUser ,
3535 String bitbucketServerPassword ) {
36+ invoked = url ;
3637 return mockedJson ;
3738 }
3839 });
3940 }
4041
4142 public List <BitbucketServerDiff > filterByFile (BitbucketServerDiffResponse response , String filename ) {
42- List <BitbucketServerDiff > filtered = newArrayList ();
43- List <BitbucketServerDiff > mixed = response .getDiffs ();
44- for (BitbucketServerDiff d : mixed ) {
43+ final List <BitbucketServerDiff > filtered = newArrayList ();
44+ final List <BitbucketServerDiff > mixed = response .getDiffs ();
45+ for (final BitbucketServerDiff d : mixed ) {
4546 if (d .getDestination ().getToString ().equals (filename )) {
4647 filtered .add (d );
4748 }
@@ -50,10 +51,10 @@ public List<BitbucketServerDiff> filterByFile(BitbucketServerDiffResponse respon
5051 }
5152
5253 public List <Segment > filterSegments (BitbucketServerDiff bitbucketServerDiff , DIFFTYPE diffType ) {
53- List <Segment > filtered = newArrayList ();
54- for (DiffHunk hunk : bitbucketServerDiff .getHunks ()) {
55- List <Segment > mixed = hunk .getSegments ();
56- for (Segment s : mixed ) {
54+ final List <Segment > filtered = newArrayList ();
55+ for (final DiffHunk hunk : bitbucketServerDiff .getHunks ()) {
56+ final List <Segment > mixed = hunk .getSegments ();
57+ for (final Segment s : mixed ) {
5758 if (s .getType () == diffType ) {
5859 filtered .add (s );
5960 }
@@ -66,33 +67,45 @@ public List<Segment> filterSegments(BitbucketServerDiff bitbucketServerDiff, DIF
6667 private void mockJson (String resourceName ) {
6768 try {
6869 mockedJson = Resources .toString (Resources .getResource (resourceName ), Charsets .UTF_8 );
69- } catch (IOException e ) {
70+ } catch (final IOException e ) {
7071 e .printStackTrace ();
7172 }
7273 }
7374
7475 @ Test
7576 public void testPullRequestChanges () {
7677 mockJson ("pull-request-changes.json" );
77- List <String > actual = sut .pullRequestChanges ();
78+ final List <String > actual = sut .pullRequestChanges ();
7879 assertThat (actual ).isNotEmpty ();
7980 assertThat (actual .get (0 )).isEqualTo ("basic_branching/file.txt" );
8081 }
8182
8283 @ Test
8384 public void testPullRequestCommentsOnFile () {
8485 mockJson ("pull-request-comments.json" );
85- List <BitbucketServerComment > actual = sut .pullRequestComments ("any/file.txt" );
86+ final List <BitbucketServerComment > actual = sut .pullRequestComments ("any/file.txt" );
87+ assertThat (actual ).isNotEmpty ();
88+ assertThat (actual .get (0 ).getId ()).isEqualTo (2 );
89+ assertThat (actual .get (0 ).getText ()).isEqualTo ("in diff comment" );
90+ assertThat (actual .get (0 ).getVersion ()).isEqualTo (0 );
91+ assertThat (invoked ).isEqualTo ("bitbucketServerBaseUrl/rest/api/1.0/projects/bitbucketServerProject/repos/bitbucketServerRepo/pull-requests/1/comments?path=any%2Ffile.txt&limit=999999" );
92+ }
93+
94+ @ Test
95+ public void testPullRequestCommentsOnFileWithSpaces () {
96+ mockJson ("pull-request-comments.json" );
97+ final List <BitbucketServerComment > actual = sut .pullRequestComments ("any folder with spaces/file.txt" );
8698 assertThat (actual ).isNotEmpty ();
8799 assertThat (actual .get (0 ).getId ()).isEqualTo (2 );
88100 assertThat (actual .get (0 ).getText ()).isEqualTo ("in diff comment" );
89101 assertThat (actual .get (0 ).getVersion ()).isEqualTo (0 );
102+ assertThat (invoked ).isEqualTo ("bitbucketServerBaseUrl/rest/api/1.0/projects/bitbucketServerProject/repos/bitbucketServerRepo/pull-requests/1/comments?path=any+folder+with+spaces%2Ffile.txt&limit=999999" );
90103 }
91104
92105 @ Test
93106 public void testPullRequestDiffDiffDeleted () {
94107 mockJson ("pull-request-changes-3-deleted.json" );
95- BitbucketServerDiffResponse response = sut .pullRequestDiff ();
108+ final BitbucketServerDiffResponse response = sut .pullRequestDiff ();
96109 assertThat (response )//
97110 .isNotNull ();
98111 assertThat (response .getDiffs ())//
@@ -102,12 +115,12 @@ public void testPullRequestDiffDiffDeleted() {
102115 @ Test
103116 public void testPullRequestDiffDiffTypes () {
104117 mockJson ("pull-request-changes-2.json" );
105- BitbucketServerDiffResponse response = sut .pullRequestDiff ();
118+ final BitbucketServerDiffResponse response = sut .pullRequestDiff ();
106119 assertThat (response )//
107120 .isNotNull ();
108121 assertThat (response .getDiffs ())//
109122 .hasSize (12 );
110- BitbucketServerDiff diff = response .getDiffs ().get (0 );
123+ final BitbucketServerDiff diff = response .getDiffs ().get (0 );
111124 assertThat (filterSegments (diff , CONTEXT ))//
112125 .hasSize (3 );
113126 assertThat (filterSegments (diff , ADDED ))//
@@ -123,10 +136,10 @@ public void testPullRequestDiffDiffTypes() {
123136 @ Test
124137 public void testPullRequestDiffPerFileTestCpp () {
125138 mockJson ("pull-request-changes-2.json" );
126- BitbucketServerDiffResponse response = sut .pullRequestDiff ();
139+ final BitbucketServerDiffResponse response = sut .pullRequestDiff ();
127140 assertThat (response )//
128141 .isNotNull ();
129- List <BitbucketServerDiff > diffs = filterByFile (response , "cpp/test.cpp" );
142+ final List <BitbucketServerDiff > diffs = filterByFile (response , "cpp/test.cpp" );
130143 assertThat (diffs )//
131144 .hasSize (1 );
132145
@@ -141,10 +154,10 @@ public void testPullRequestDiffPerFileTestCpp() {
141154 @ Test
142155 public void testPullRequestDiffPerFileTravisYml () {
143156 mockJson ("pull-request-changes-2.json" );
144- BitbucketServerDiffResponse response = sut .pullRequestDiff ();
157+ final BitbucketServerDiffResponse response = sut .pullRequestDiff ();
145158 assertThat (response )//
146159 .isNotNull ();
147- List <BitbucketServerDiff > diffs = filterByFile (response , ".travis.yml" );
160+ final List <BitbucketServerDiff > diffs = filterByFile (response , ".travis.yml" );
148161 assertThat (diffs )//
149162 .hasSize (1 );
150163
0 commit comments