1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package com.jcabi.github;
31
32 import com.jcabi.http.Request;
33 import com.jcabi.http.mock.MkAnswer;
34 import com.jcabi.http.mock.MkContainer;
35 import com.jcabi.http.mock.MkGrizzlyContainer;
36 import com.jcabi.http.request.ApacheRequest;
37 import java.net.HttpURLConnection;
38 import javax.json.Json;
39 import org.hamcrest.MatcherAssert;
40 import org.hamcrest.Matchers;
41 import org.junit.Rule;
42 import org.junit.Test;
43 import org.mockito.Mockito;
44
45
46
47
48
49
50
51 public final class RtLabelTest {
52
53
54
55
56
57 @Rule
58 public final transient RandomPort resource = new RandomPort();
59
60
61
62
63
64
65 @Test
66 public void sendHttpRequestAndWriteResponseAsJson() throws Exception {
67 try (
68 final MkContainer container = new MkGrizzlyContainer().next(
69 new MkAnswer.Simple(
70 HttpURLConnection.HTTP_OK,
71 "{\"msg\": \"hi\"}"
72 )
73 ).start(this.resource.port())
74 ) {
75 final RtLabel label = new RtLabel(
76 new ApacheRequest(container.home()),
77 RtLabelTest.repo(),
78 "bug"
79 );
80 MatcherAssert.assertThat(
81 label.json().getString("msg"),
82 Matchers.equalTo("hi")
83 );
84 container.stop();
85 }
86 }
87
88
89
90
91
92
93 @Test
94 public void executePatchRequest() throws Exception {
95 try (
96 final MkContainer container = new MkGrizzlyContainer().next(
97 new MkAnswer.Simple(
98 HttpURLConnection.HTTP_OK,
99 "{\"msg\":\"hi\"}"
100 )
101 ).start(this.resource.port())
102 ) {
103 final RtLabel label = new RtLabel(
104 new ApacheRequest(container.home()),
105 RtLabelTest.repo(),
106 "enhance"
107 );
108 label.patch(
109 Json.createObjectBuilder()
110 .add("content", "hi you!")
111 .build()
112 );
113 MatcherAssert.assertThat(
114 container.take().method(),
115 Matchers.equalTo(Request.PATCH)
116 );
117 container.stop();
118 }
119 }
120
121
122
123
124
125 private static Repo repo() {
126 final Repo repo = Mockito.mock(Repo.class);
127 Mockito.doReturn(new Coordinates.Simple("mark", "test"))
128 .when(repo).coordinates();
129 return repo;
130 }
131 }