1313import spotify .exceptions .HttpRequestFailedException ;
1414import spotify .exceptions .SpotifyActionFailedException ;
1515import spotify .models .albums .SavedAlbumFull ;
16+ import spotify .models .episodes .SavedEpisodeFull ;
1617import spotify .models .paging .Paging ;
1718import spotify .models .shows .SavedShowSimplified ;
1819import spotify .models .tracks .SavedTrackFull ;
@@ -45,6 +46,8 @@ public class LibraryApiRetrofitTest extends AbstractApiRetrofitTest {
4546 @ Mock
4647 private Call <Paging <SavedTrackFull >> mockedSavedTrackFullPagingCall ;
4748 @ Mock
49+ private Call <Paging <SavedEpisodeFull >> mockedSavedEpisodeFullPagingCall ;
50+ @ Mock
4851 private Call <Void > mockedVoidCall ;
4952
5053 @ BeforeEach
@@ -57,6 +60,7 @@ void setup() {
5760 when (mockedLibraryService .hasSavedShows (fakeAccessTokenWithBearer , fakeShowIds )).thenReturn (mockedListOfBooleanCall );
5861 when (mockedLibraryService .hasSavedTracks (fakeAccessTokenWithBearer , fakeTrackIds )).thenReturn (mockedListOfBooleanCall );
5962 when (mockedLibraryService .getSavedAlbums (fakeAccessTokenWithBearer , fakeOptionalParameters )).thenReturn (mockedSavedAlbumFullPagingCall );
63+ when (mockedLibraryService .getSavedEpisodes (fakeAccessTokenWithBearer , fakeOptionalParameters )).thenReturn (mockedSavedEpisodeFullPagingCall );
6064 when (mockedLibraryService .getSavedShows (fakeAccessTokenWithBearer , fakeOptionalParameters )).thenReturn (mockedSavedAShowSimplifiedPagingCall );
6165 when (mockedLibraryService .getSavedTracks (fakeAccessTokenWithBearer , fakeOptionalParameters )).thenReturn (mockedSavedTrackFullPagingCall );
6266 when (mockedLibraryService .saveAlbums (fakeAccessTokenWithBearer , fakeAlbumIds )).thenReturn (mockedVoidCall );
@@ -69,6 +73,7 @@ void setup() {
6973 when (mockedVoidCall .request ()).thenReturn (new Request .Builder ().url (fakeUrl ).build ());
7074 when (mockedListOfBooleanCall .request ()).thenReturn (new Request .Builder ().url (fakeUrl ).build ());
7175 when (mockedSavedAlbumFullPagingCall .request ()).thenReturn (new Request .Builder ().url (fakeUrl ).build ());
76+ when (mockedSavedEpisodeFullPagingCall .request ()).thenReturn (new Request .Builder ().url (fakeUrl ).build ());
7277 when (mockedSavedAShowSimplifiedPagingCall .request ()).thenReturn (new Request .Builder ().url (fakeUrl ).build ());
7378 when (mockedSavedTrackFullPagingCall .request ()).thenReturn (new Request .Builder ().url (fakeUrl ).build ());
7479 }
@@ -217,6 +222,15 @@ void getSavedAlbumsUsesCorrectValuesToCreateHttpCall() throws IOException {
217222 verify (mockedLibraryService ).getSavedAlbums (fakeAccessTokenWithBearer , fakeOptionalParameters );
218223 }
219224
225+ @ Test
226+ void getSavedEpisodesUsesCorrectValuesToCreateHttpCall () throws IOException {
227+ when (mockedSavedEpisodeFullPagingCall .execute ()).thenReturn (Response .success (new Paging <>()));
228+
229+ sut .getSavedEpisodes (fakeOptionalParameters );
230+
231+ verify (mockedLibraryService ).getSavedEpisodes (fakeAccessTokenWithBearer , fakeOptionalParameters );
232+ }
233+
220234 @ Test
221235 void getSavedAlbumsExecutesHttpCall () throws IOException {
222236 when (mockedSavedAlbumFullPagingCall .execute ()).thenReturn (Response .success (new Paging <>()));
@@ -226,6 +240,15 @@ void getSavedAlbumsExecutesHttpCall() throws IOException {
226240 verify (mockedSavedAlbumFullPagingCall ).execute ();
227241 }
228242
243+ @ Test
244+ void getSavedEpisodesExecutesHttpCall () throws IOException {
245+ when (mockedSavedEpisodeFullPagingCall .execute ()).thenReturn (Response .success (new Paging <>()));
246+
247+ sut .getSavedEpisodes (fakeOptionalParameters );
248+
249+ verify (mockedSavedEpisodeFullPagingCall ).execute ();
250+ }
251+
229252 @ Test
230253 void getSavedAlbumsThrowsSpotifyActionFailedExceptionWhenError () throws IOException {
231254 when (mockedSavedAlbumFullPagingCall .execute ())
@@ -239,20 +262,47 @@ void getSavedAlbumsThrowsSpotifyActionFailedExceptionWhenError() throws IOExcept
239262 Assertions .assertThrows (SpotifyActionFailedException .class , () -> sut .getSavedAlbums (fakeOptionalParameters ));
240263 }
241264
265+ @ Test
266+ void getSavedEpisodesThrowsSpotifyActionFailedExceptionWhenError () throws IOException {
267+ when (mockedSavedEpisodeFullPagingCall .execute ())
268+ .thenReturn (
269+ Response .error (
270+ 400 ,
271+ ResponseBody .create (MediaType .get ("application/json" ), getJson ("error.json" ))
272+ )
273+ );
274+
275+ Assertions .assertThrows (SpotifyActionFailedException .class , () -> sut .getSavedEpisodes (fakeOptionalParameters ));
276+ }
277+
242278 @ Test
243279 void getSavedAlbumsThrowsHttpRequestFailedWhenHttpFails () throws IOException {
244280 when (mockedSavedAlbumFullPagingCall .execute ()).thenThrow (IOException .class );
245281
246282 Assertions .assertThrows (HttpRequestFailedException .class , () -> sut .getSavedAlbums (fakeOptionalParameters ));
247283 }
248284
285+ @ Test
286+ void getSavedEpisodesThrowsHttpRequestFailedWhenHttpFails () throws IOException {
287+ when (mockedSavedEpisodeFullPagingCall .execute ()).thenThrow (IOException .class );
288+
289+ Assertions .assertThrows (HttpRequestFailedException .class , () -> sut .getSavedEpisodes (fakeOptionalParameters ));
290+ }
291+
249292 @ Test
250293 void getSavedAlbumsReturnsSavedAlbumFullPagingWhenSuccessful () throws IOException {
251294 when (mockedSavedAlbumFullPagingCall .execute ()).thenReturn (Response .success (new Paging <>()));
252295
253296 Assertions .assertNotNull (sut .getSavedAlbums (fakeOptionalParameters ));
254297 }
255298
299+ @ Test
300+ void getSavedEpisodesReturnsSavedEpisodeFullPagingWhenSuccessful () throws IOException {
301+ when (mockedSavedEpisodeFullPagingCall .execute ()).thenReturn (Response .success (new Paging <>()));
302+
303+ Assertions .assertNotNull (sut .getSavedEpisodes (fakeOptionalParameters ));
304+ }
305+
256306 @ Test
257307 void getSavedShowsUsesCorrectValuesToCreateHttpCall () throws IOException {
258308 when (mockedSavedAShowSimplifiedPagingCall .execute ()).thenReturn (Response .success (new Paging <>()));
0 commit comments