diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt new file mode 100644 index 00000000..c38a0e02 --- /dev/null +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiDeleteBookmarkTest.kt @@ -0,0 +1,33 @@ +package org.moire.ultrasonic.api.subsonic + +import org.junit.Test + +/** + * Integration test for [SubsonicAPIDefinition.deleteBookmark] call. + */ +class SubsonicApiDeleteBookmarkTest : SubsonicAPIClientTest() { + @Test + fun `Should handle error response`() { + checkErrorCallParsed(mockWebServerRule) { + client.api.deleteBookmark(1).execute() + } + } + + @Test + fun `Should handle ok response`() { + mockWebServerRule.enqueueResponse("ping_ok.json") + + val response = client.api.deleteBookmark(1).execute() + + assertResponseSuccessful(response) + } + + @Test + fun `Should pass id in request params`() { + val id = 233 + + mockWebServerRule.assertRequestParam(expectedParam = "id=$id") { + client.api.deleteBookmark(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 5158a7a4..de921ba9 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 @@ -230,4 +230,7 @@ interface SubsonicAPIDefinition { @Query("id") id: Int, @Query("position") position: Long, @Query("comment") comment: String? = null): Call + + @GET("deleteBookmark.view") + fun deleteBookmark(@Query("id") id: Int): Call }