22
33import de .sonallux .spotify .api .models .Episode ;
44import de .sonallux .spotify .api .models .Track ;
5- import okhttp3 . mockwebserver . MockResponse ;
6- import okhttp3 . mockwebserver . MockWebServer ;
5+ import mockwebserver3 . MockWebServer ;
6+ import mockwebserver3 . MockResponse ;
77import okio .Buffer ;
88import org .junit .jupiter .api .AfterEach ;
99import org .junit .jupiter .api .BeforeEach ;
@@ -29,7 +29,7 @@ void setup() throws IOException {
2929
3030 @ AfterEach
3131 void teardown () throws IOException {
32- webServer .shutdown ();
32+ webServer .close ();
3333 }
3434
3535 @ Test
@@ -44,13 +44,13 @@ void testResponseSnakeCaseToCamelCase() throws Exception {
4444 var firstTrack = playlist .getTracks ().getItems ().get (0 );
4545 assertNotNull (firstTrack );
4646 assertEquals (Instant .parse ("2021-03-07T23:01:00Z" ), firstTrack .getAddedAt ());
47- assertTrue ( firstTrack .getTrack () instanceof Track );
47+ assertInstanceOf ( Track . class , firstTrack .getTrack ());
4848 assertEquals (6 , ((Track ) firstTrack .getTrack ()).getTrackNumber ());
4949 }
5050
5151 @ Test
5252 void testRequestWithReservedKeyWord () throws Exception {
53- webServer .enqueue (new MockResponse (). setStatus ( "HTTP/1.1 200 OK" ));
53+ webServer .enqueue (mockResponse ( 200 ). build ( ));
5454
5555 var response = api .getPlaylistsApi ().changePlaylistDetails ("foo" )
5656 .name ("Test" )
@@ -61,35 +61,35 @@ void testRequestWithReservedKeyWord() throws Exception {
6161 assertTrue (response .isSuccessful ());
6262
6363 var request = webServer .takeRequest ();
64- assertEquals ("application/json; charset=UTF-8" , request .getHeader ("Content-Type" ));
65- var actualBody = request .getBody ().readUtf8 ();
64+ assertEquals ("application/json; charset=UTF-8" , request .getHeaders (). get ("Content-Type" ));
65+ var actualBody = request .getBody ().utf8 ();
6666 assertEquals ("{\" name\" :\" Test\" ,\" collaborative\" :false,\" description\" :\" Test description\" ,\" public\" :true}" , actualBody );
6767 }
6868
6969 @ Test
7070 void testRequestWithEmptyBodyObject () throws Exception {
71- webServer .enqueue (new MockResponse (). setStatus ( "HTTP/1.1 200 OK" ));
71+ webServer .enqueue (mockResponse ( 200 ). build ( ));
7272
7373 var response = api .getPlaylistsApi ().changePlaylistDetails ("foo" ).build ().executeCall ();
7474 assertTrue (response .isSuccessful ());
7575
7676 var request = webServer .takeRequest ();
77- var actualBody = request .getBody ().readUtf8 ();
77+ var actualBody = request .getBody ().utf8 ();
7878 assertEquals ("" , actualBody );
7979 }
8080
8181 @ Test
8282 void testRequestWithSnakeCaseToCamelCase () throws Exception {
83- webServer .enqueue (new MockResponse (). setStatus ( "HTTP/1.1 200 OK" ). setBody ("{\" snapshot_id\" :\" 12ab34cd\" }" ));
83+ webServer .enqueue (mockResponse ( 200 ). body ("{\" snapshot_id\" :\" 12ab34cd\" }" ). build ( ));
8484
8585 var newSnapshotId = api .getPlaylistsApi ().removeTracksPlaylist ("foo" , List .of ())
8686 .snapshotId ("ab12cd34" )
8787 .build ().execute ();
8888 assertEquals ("12ab34cd" , newSnapshotId .getSnapshotId ());
8989
9090 var request = webServer .takeRequest ();
91- assertEquals ("application/json; charset=UTF-8" , request .getHeader ("Content-Type" ));
92- var actualBody = request .getBody ().readUtf8 ();
91+ assertEquals ("application/json; charset=UTF-8" , request .getHeaders (). get ("Content-Type" ));
92+ var actualBody = request .getBody ().utf8 ();
9393 assertEquals ("{\" tracks\" :[],\" snapshot_id\" :\" ab12cd34\" }" , actualBody );
9494 }
9595
@@ -101,16 +101,17 @@ void testUnionTypeHandlingWithAdditionalTypesParameter() throws Exception {
101101 var track = response .getItems ().get (0 ).getTrack ();
102102 assertNotNull (track );
103103 assertEquals ("track" , track .getType ());
104- assertTrue ( track instanceof Track );
104+ assertInstanceOf ( Track . class , track );
105105
106106 var episode = response .getItems ().get (1 ).getTrack ();
107107 assertNotNull (episode );
108108 assertEquals ("episode" , episode .getType ());
109- assertTrue ( episode instanceof Episode );
109+ assertInstanceOf ( Episode . class , episode );
110110 assertNotNull (((Episode ) episode ).getShow ());
111111
112112 var request = webServer .takeRequest ();
113- assertEquals ("/playlists/foo/tracks?additional_types=track%2Cepisode" , request .getPath ());
113+ assertEquals ("/playlists/foo/tracks" , request .getUrl ().encodedPath ());
114+ assertEquals ("additional_types=track%2Cepisode" , request .getUrl ().encodedQuery ());
114115 }
115116
116117 @ Test
@@ -123,21 +124,22 @@ void testUnionTypeHandlingWithoutAdditionalTypesParameter() throws Exception {
123124 var track = response .getItems ().get (0 ).getTrack ();
124125 assertNotNull (track );
125126 assertEquals ("track" , track .getType ());
126- assertTrue ( track instanceof Track );
127+ assertInstanceOf ( Track . class , track );
127128
128129 var episode = response .getItems ().get (1 ).getTrack ();
129130 assertNotNull (episode );
130131 assertEquals ("episode" , episode .getType ());
131- assertTrue ( episode instanceof Episode );
132+ assertInstanceOf ( Episode . class , episode );
132133 assertNull (((Episode ) episode ).getShow ());//show is not set, because episode is returned with track format
133134
134135 var request = webServer .takeRequest ();
135- assertEquals ("/playlists/foo/tracks?additional_types=track" , request .getPath ());
136+ assertEquals ("/playlists/foo/tracks" , request .getUrl ().encodedPath ());
137+ assertEquals ("additional_types=track" , request .getUrl ().encodedQuery ());
136138 }
137139
138140 @ Test
139141 void testEmptyResponseBodyWithNonVoidType () throws Exception {
140- webServer .enqueue (new MockResponse (). setStatus ( "HTTP/1.1 204 NO CONTENT" ));
142+ webServer .enqueue (mockResponse ( 204 ). build ( ));
141143
142144 var response = api .getPlayerApi ().getRecentlyPlayed ().build ().executeCall ();
143145 assertTrue (response .isSuccessful ());
@@ -147,9 +149,13 @@ void testEmptyResponseBodyWithNonVoidType() throws Exception {
147149 private MockResponse loadMockResponse (String fileName ) throws Exception {
148150 var stream = ConversionTest .class .getResourceAsStream ("/responses/" + fileName );
149151 var buffer = new Buffer ().readFrom (stream );
150- return new MockResponse ()
151- .setStatus ("HTTP/1.1 200 OK" )
152+ return mockResponse (200 )
152153 .addHeader ("Content-Type" , "application/json; charset=utf-8" )
153- .setBody (buffer );
154+ .body (buffer )
155+ .build ();
156+ }
157+
158+ private MockResponse .Builder mockResponse (int status ) {
159+ return new MockResponse .Builder ().code (status );
154160 }
155161}
0 commit comments