diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt new file mode 100644 index 00000000..749975cd --- /dev/null +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeletePlaylistTest.kt @@ -0,0 +1,34 @@ +package org.moire.ultrasonic.api.subsonic + +import org.junit.Test + +/** + * Instrumentation test for [SubsonicAPIClient] for deletePlaylist call. + */ +class SubsonicApiDeletePlaylistTest : SubsonicAPIClientTest() { + @Test + fun `Should handle error response`() { + checkErrorCallParsed(mockWebServerRule) { + client.api.deletePlaylist(10).execute() + } + } + + @Test + fun `Should handle ok response`() { + mockWebServerRule.enqueueResponse("ping_ok.json") + + val response = client.api.deletePlaylist(10).execute() + + assertResponseSuccessful(response) + } + + @Test + fun `Should pass id param in request`() { + val id = 534L + + mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json", + expectedParam = "id=$id") { + client.api.deletePlaylist(id).execute() + } + } +} diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt b/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt index 98123943..8bcba487 100644 --- a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt +++ b/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPIDefinition.kt @@ -96,4 +96,7 @@ interface SubsonicAPIDefinition { fun createPlaylist(@Query("playlistId") id: Long? = null, @Query("name") name: String? = null, @Query("songId") songIds: List? = null): Call + + @GET("deletePlaylist.view") + fun deletePlaylist(@Query("id") id: Long): Call } diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java index e46e2a7f..823e588e 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/RESTMusicService.java @@ -593,19 +593,17 @@ public class RESTMusicService implements MusicService checkResponseSuccessful(response); } - @Override - public void deletePlaylist(String id, Context context, ProgressListener progressListener) throws Exception - { - Reader reader = getReader(context, progressListener, "deletePlaylist", null, "id", id); - try - { - new ErrorParser(context).parse(reader); - } - finally - { - Util.close(reader); - } - } + @Override + public void deletePlaylist(String id, + Context context, + ProgressListener progressListener) throws Exception { + Long pId = id == null ? null : Long.valueOf(id); + + updateProgressListener(progressListener, R.string.parser_reading); + Response response = subsonicAPIClient.getApi() + .deletePlaylist(pId).execute(); + checkResponseSuccessful(response); + } @Override public void updatePlaylist(String id, String name, String comment, boolean pub, Context context, ProgressListener progressListener) throws Exception