55import static org .hamcrest .MatcherAssert .assertThat ;
66import static org .hamcrest .Matchers .containsString ;
77import static org .junit .jupiter .api .Assertions .assertEquals ;
8+ import static org .junit .jupiter .api .Assertions .assertNotNull ;
89
910import com .github .stickerifier .stickerify .junit .ClearTempFiles ;
1011import com .github .stickerifier .stickerify .telegram .Answer ;
1112import com .pengrad .telegrambot .TelegramBot ;
1213import mockwebserver3 .MockWebServer ;
1314import mockwebserver3 .RecordedRequest ;
14- import mockwebserver3 .junit5 .internal . MockWebServerExtension ;
15+ import mockwebserver3 .junit5 .StartStop ;
1516import org .junit .jupiter .api .BeforeEach ;
1617import org .junit .jupiter .api .Test ;
17- import org .junit .jupiter .api .extension .ExtendWith ;
1818
19+ import java .io .IOException ;
1920import java .net .URLEncoder ;
2021
2122@ ClearTempFiles
22- @ ExtendWith (MockWebServerExtension .class )
2323class StickerifyTest {
2424
25- private MockWebServer server ;
25+ @ StartStop
26+ private final MockWebServer server = new MockWebServer ();
2627
2728 @ BeforeEach
28- void setup () {
29- server = new MockWebServer ();
29+ void setup () throws IOException {
30+ server . start ();
3031 }
3132
3233 @ Test
@@ -36,10 +37,10 @@ void startMessage() throws Exception {
3637 startBot ();
3738
3839 var getUpdates = server .takeRequest ();
39- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
40+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
4041
4142 var sendMessage = server .takeRequest ();
42- assertEquals ("/api/token/sendMessage" , sendMessage .getPath ());
43+ assertEquals ("/api/token/sendMessage" , sendMessage .getUrl (). encodedPath ());
4344 assertResponseContainsMessage (sendMessage , Answer .HELP );
4445 }
4546
@@ -55,7 +56,8 @@ private void startBot() {
5556
5657 private static void assertResponseContainsMessage (RecordedRequest request , Answer answer ) {
5758 var message = URLEncoder .encode (answer .getText (), UTF_8 );
58- assertThat (request .getBody ().readUtf8 (), containsString (message ));
59+ assertNotNull (request .getBody ());
60+ assertThat (request .getBody ().utf8 (), containsString (message ));
5961 }
6062
6163 @ Test
@@ -65,10 +67,10 @@ void helpMessage() throws Exception {
6567 startBot ();
6668
6769 var getUpdates = server .takeRequest ();
68- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
70+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
6971
7072 var sendMessage = server .takeRequest ();
71- assertEquals ("/api/token/sendMessage" , sendMessage .getPath ());
73+ assertEquals ("/api/token/sendMessage" , sendMessage .getUrl (). encodedPath ());
7274 assertResponseContainsMessage (sendMessage , Answer .HELP );
7375 }
7476
@@ -79,10 +81,10 @@ void privacyMessage() throws Exception {
7981 startBot ();
8082
8183 var getUpdates = server .takeRequest ();
82- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
84+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
8385
8486 var sendMessage = server .takeRequest ();
85- assertEquals ("/api/token/sendMessage" , sendMessage .getPath ());
87+ assertEquals ("/api/token/sendMessage" , sendMessage .getUrl (). encodedPath ());
8688 assertResponseContainsMessage (sendMessage , Answer .PRIVACY_POLICY );
8789 }
8890
@@ -93,10 +95,10 @@ void fileNotSupported() throws Exception {
9395 startBot ();
9496
9597 var getUpdates = server .takeRequest ();
96- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
98+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
9799
98100 var sendMessage = server .takeRequest ();
99- assertEquals ("/api/token/sendMessage" , sendMessage .getPath ());
101+ assertEquals ("/api/token/sendMessage" , sendMessage .getUrl (). encodedPath ());
100102 assertResponseContainsMessage (sendMessage , Answer .ERROR );
101103 }
102104
@@ -107,10 +109,10 @@ void fileTooBig() throws Exception {
107109 startBot ();
108110
109111 var getUpdates = server .takeRequest ();
110- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
112+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
111113
112114 var sendMessage = server .takeRequest ();
113- assertEquals ("/api/token/sendMessage" , sendMessage .getPath ());
115+ assertEquals ("/api/token/sendMessage" , sendMessage .getUrl (). encodedPath ());
114116 assertResponseContainsMessage (sendMessage , Answer .FILE_TOO_LARGE );
115117 }
116118
@@ -123,17 +125,18 @@ void fileAlreadyValid() throws Exception {
123125 startBot ();
124126
125127 var getUpdates = server .takeRequest ();
126- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
128+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
127129
128130 var getFile = server .takeRequest ();
129- assertEquals ("/api/token/getFile" , getFile .getPath ());
130- assertEquals ("file_id=animated_sticker.tgs" , getFile .getBody ().readUtf8 ());
131+ assertEquals ("/api/token/getFile" , getFile .getUrl ().encodedPath ());
132+ assertNotNull (getFile .getBody ());
133+ assertEquals ("file_id=animated_sticker.tgs" , getFile .getBody ().utf8 ());
131134
132135 var download = server .takeRequest ();
133- assertEquals ("/files/token/animated_sticker.tgs" , download .getPath ());
136+ assertEquals ("/files/token/animated_sticker.tgs" , download .getUrl (). encodedPath ());
134137
135138 var sendMessage = server .takeRequest ();
136- assertEquals ("/api/token/sendMessage" , sendMessage .getPath ());
139+ assertEquals ("/api/token/sendMessage" , sendMessage .getUrl (). encodedPath ());
137140 assertResponseContainsMessage (sendMessage , Answer .FILE_ALREADY_VALID );
138141 }
139142
@@ -146,18 +149,20 @@ void convertedPng() throws Exception {
146149 startBot ();
147150
148151 var getUpdates = server .takeRequest ();
149- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
152+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
150153
151154 var getFile = server .takeRequest ();
152- assertEquals ("/api/token/getFile" , getFile .getPath ());
153- assertEquals ("file_id=big.png" , getFile .getBody ().readUtf8 ());
155+ assertEquals ("/api/token/getFile" , getFile .getUrl ().encodedPath ());
156+ assertNotNull (getFile .getBody ());
157+ assertEquals ("file_id=big.png" , getFile .getBody ().utf8 ());
154158
155159 var download = server .takeRequest ();
156- assertEquals ("/files/token/big.png" , download .getPath ());
160+ assertEquals ("/files/token/big.png" , download .getUrl (). encodedPath ());
157161
158162 var sendDocument = server .takeRequest ();
159- assertEquals ("/api/token/sendDocument" , sendDocument .getPath ());
160- assertThat (sendDocument .getBody ().readUtf8 (), containsString (Answer .FILE_READY .getText ()));
163+ assertEquals ("/api/token/sendDocument" , sendDocument .getUrl ().encodedPath ());
164+ assertNotNull (sendDocument .getBody ());
165+ assertThat (sendDocument .getBody ().utf8 (), containsString (Answer .FILE_READY .getText ()));
161166 }
162167
163168 @ Test
@@ -169,18 +174,20 @@ void convertedWebp() throws Exception {
169174 startBot ();
170175
171176 var getUpdates = server .takeRequest ();
172- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
177+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
173178
174179 var getFile = server .takeRequest ();
175- assertEquals ("/api/token/getFile" , getFile .getPath ());
176- assertEquals ("file_id=static.webp" , getFile .getBody ().readUtf8 ());
180+ assertEquals ("/api/token/getFile" , getFile .getUrl ().encodedPath ());
181+ assertNotNull (getFile .getBody ());
182+ assertEquals ("file_id=static.webp" , getFile .getBody ().utf8 ());
177183
178184 var download = server .takeRequest ();
179- assertEquals ("/files/token/static.webp" , download .getPath ());
185+ assertEquals ("/files/token/static.webp" , download .getUrl (). encodedPath ());
180186
181187 var sendDocument = server .takeRequest ();
182- assertEquals ("/api/token/sendDocument" , sendDocument .getPath ());
183- assertThat (sendDocument .getBody ().readUtf8 (), containsString (Answer .FILE_READY .getText ()));
188+ assertEquals ("/api/token/sendDocument" , sendDocument .getUrl ().encodedPath ());
189+ assertNotNull (sendDocument .getBody ());
190+ assertThat (sendDocument .getBody ().utf8 (), containsString (Answer .FILE_READY .getText ()));
184191 }
185192
186193 @ Test
@@ -192,18 +199,20 @@ void convertedMov() throws Exception {
192199 startBot ();
193200
194201 var getUpdates = server .takeRequest ();
195- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
202+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
196203
197204 var getFile = server .takeRequest ();
198- assertEquals ("/api/token/getFile" , getFile .getPath ());
199- assertEquals ("file_id=long.mov" , getFile .getBody ().readUtf8 ());
205+ assertEquals ("/api/token/getFile" , getFile .getUrl ().encodedPath ());
206+ assertNotNull (getFile .getBody ());
207+ assertEquals ("file_id=long.mov" , getFile .getBody ().utf8 ());
200208
201209 var download = server .takeRequest ();
202- assertEquals ("/files/token/long.mov" , download .getPath ());
210+ assertEquals ("/files/token/long.mov" , download .getUrl (). encodedPath ());
203211
204212 var sendDocument = server .takeRequest ();
205- assertEquals ("/api/token/sendDocument" , sendDocument .getPath ());
206- assertThat (sendDocument .getBody ().readUtf8 (), containsString (Answer .FILE_READY .getText ()));
213+ assertEquals ("/api/token/sendDocument" , sendDocument .getUrl ().encodedPath ());
214+ assertNotNull (sendDocument .getBody ());
215+ assertThat (sendDocument .getBody ().utf8 (), containsString (Answer .FILE_READY .getText ()));
207216 }
208217
209218 @ Test
@@ -215,18 +224,20 @@ void convertedWebm() throws Exception {
215224 startBot ();
216225
217226 var getUpdates = server .takeRequest ();
218- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
227+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
219228
220229 var getFile = server .takeRequest ();
221- assertEquals ("/api/token/getFile" , getFile .getPath ());
222- assertEquals ("file_id=short_low_fps.webm" , getFile .getBody ().readUtf8 ());
230+ assertEquals ("/api/token/getFile" , getFile .getUrl ().encodedPath ());
231+ assertNotNull (getFile .getBody ());
232+ assertEquals ("file_id=short_low_fps.webm" , getFile .getBody ().utf8 ());
223233
224234 var download = server .takeRequest ();
225- assertEquals ("/files/token/short_low_fps.webm" , download .getPath ());
235+ assertEquals ("/files/token/short_low_fps.webm" , download .getUrl (). encodedPath ());
226236
227237 var sendDocument = server .takeRequest ();
228- assertEquals ("/api/token/sendDocument" , sendDocument .getPath ());
229- assertThat (sendDocument .getBody ().readUtf8 (), containsString (Answer .FILE_READY .getText ()));
238+ assertEquals ("/api/token/sendDocument" , sendDocument .getUrl ().encodedPath ());
239+ assertNotNull (sendDocument .getBody ());
240+ assertThat (sendDocument .getBody ().utf8 (), containsString (Answer .FILE_READY .getText ()));
230241 }
231242
232243 @ Test
@@ -238,18 +249,20 @@ void convertedGif() throws Exception {
238249 startBot ();
239250
240251 var getUpdates = server .takeRequest ();
241- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
252+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
242253
243254 var getFile = server .takeRequest ();
244- assertEquals ("/api/token/getFile" , getFile .getPath ());
245- assertEquals ("file_id=valid.gif" , getFile .getBody ().readUtf8 ());
255+ assertEquals ("/api/token/getFile" , getFile .getUrl ().encodedPath ());
256+ assertNotNull (getFile .getBody ());
257+ assertEquals ("file_id=valid.gif" , getFile .getBody ().utf8 ());
246258
247259 var download = server .takeRequest ();
248- assertEquals ("/files/token/valid.gif" , download .getPath ());
260+ assertEquals ("/files/token/valid.gif" , download .getUrl (). encodedPath ());
249261
250262 var sendDocument = server .takeRequest ();
251- assertEquals ("/api/token/sendDocument" , sendDocument .getPath ());
252- assertThat (sendDocument .getBody ().readUtf8 (), containsString (Answer .FILE_READY .getText ()));
263+ assertEquals ("/api/token/sendDocument" , sendDocument .getUrl ().encodedPath ());
264+ assertNotNull (sendDocument .getBody ());
265+ assertThat (sendDocument .getBody ().utf8 (), containsString (Answer .FILE_READY .getText ()));
253266 }
254267
255268 @ Test
@@ -261,17 +274,18 @@ void documentNotSupported() throws Exception {
261274 startBot ();
262275
263276 var getUpdates = server .takeRequest ();
264- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
277+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
265278
266279 var getFile = server .takeRequest ();
267- assertEquals ("/api/token/getFile" , getFile .getPath ());
268- assertEquals ("file_id=document.txt" , getFile .getBody ().readUtf8 ());
280+ assertEquals ("/api/token/getFile" , getFile .getUrl ().encodedPath ());
281+ assertNotNull (getFile .getBody ());
282+ assertEquals ("file_id=document.txt" , getFile .getBody ().utf8 ());
269283
270284 var download = server .takeRequest ();
271- assertEquals ("/files/token/document.txt" , download .getPath ());
285+ assertEquals ("/files/token/document.txt" , download .getUrl (). encodedPath ());
272286
273287 var sendMessage = server .takeRequest ();
274- assertEquals ("/api/token/sendMessage" , sendMessage .getPath ());
288+ assertEquals ("/api/token/sendMessage" , sendMessage .getUrl (). encodedPath ());
275289 assertResponseContainsMessage (sendMessage , Answer .ERROR );
276290 }
277291
@@ -284,17 +298,18 @@ void corruptedVideo() throws Exception {
284298 startBot ();
285299
286300 var getUpdates = server .takeRequest ();
287- assertEquals ("/api/token/getUpdates" , getUpdates .getPath ());
301+ assertEquals ("/api/token/getUpdates" , getUpdates .getUrl (). encodedPath ());
288302
289303 var getFile = server .takeRequest ();
290- assertEquals ("/api/token/getFile" , getFile .getPath ());
291- assertEquals ("file_id=corrupted.mp4" , getFile .getBody ().readUtf8 ());
304+ assertEquals ("/api/token/getFile" , getFile .getUrl ().encodedPath ());
305+ assertNotNull (getFile .getBody ());
306+ assertEquals ("file_id=corrupted.mp4" , getFile .getBody ().utf8 ());
292307
293308 var download = server .takeRequest ();
294- assertEquals ("/files/token/corrupted.mp4" , download .getPath ());
309+ assertEquals ("/files/token/corrupted.mp4" , download .getUrl (). encodedPath ());
295310
296311 var sendMessage = server .takeRequest ();
297- assertEquals ("/api/token/sendMessage" , sendMessage .getPath ());
312+ assertEquals ("/api/token/sendMessage" , sendMessage .getUrl (). encodedPath ());
298313 assertResponseContainsMessage (sendMessage , Answer .CORRUPTED );
299314 }
300315}
0 commit comments