86 lines
2.6 KiB
Kotlin
86 lines
2.6 KiB
Kotlin
package org.moire.ultrasonic.api.subsonic
|
|
|
|
import org.junit.Test
|
|
|
|
/**
|
|
* Integration test for [SubsonicAPIClient] for updatePlaylist call.
|
|
*/
|
|
class SubsonicApiUpdatePlaylistTest : SubsonicAPIClientTest() {
|
|
@Test
|
|
fun `Should handle error response`() {
|
|
checkErrorCallParsed(mockWebServerRule) {
|
|
client.api.updatePlaylist("10").execute()
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should handle ok response`() {
|
|
mockWebServerRule.enqueueResponse("ping_ok.json")
|
|
|
|
val response = client.api.updatePlaylist("15").execute()
|
|
|
|
assertResponseSuccessful(response)
|
|
}
|
|
|
|
@Test
|
|
fun `Should pass playlist id param in request`() {
|
|
val id = "5453"
|
|
|
|
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
|
|
expectedParam = "playlistId=$id") {
|
|
client.api.updatePlaylist(id = id).execute()
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should pass name param in request`() {
|
|
val name = "some-name"
|
|
|
|
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
|
|
expectedParam = "name=$name") {
|
|
client.api.updatePlaylist("22", name = name).execute()
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should pass comment param in request`() {
|
|
val comment = "some-unusual-comment"
|
|
|
|
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
|
|
expectedParam = "comment=$comment") {
|
|
client.api.updatePlaylist("42", comment = comment).execute()
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should pass public param in request`() {
|
|
val public = true
|
|
|
|
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
|
|
expectedParam = "public=$public") {
|
|
client.api.updatePlaylist("53", public = public).execute()
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should pass song ids to update in request`() {
|
|
val songIds = listOf("45", "81")
|
|
|
|
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
|
|
expectedParam = "songIdToAdd=${songIds[0]}&songIdToAdd=${songIds[1]}") {
|
|
client.api.updatePlaylist("25", songIdsToAdd = songIds).execute()
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should pass song indexes to remove in request`() {
|
|
val songIndexesToRemove = listOf(129, 1)
|
|
|
|
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
|
|
expectedParam = "songIndexToRemove=${songIndexesToRemove[0]}&" +
|
|
"songIndexToRemove=${songIndexesToRemove[1]}") {
|
|
client.api.updatePlaylist("49", songIndexesToRemove = songIndexesToRemove).execute()
|
|
}
|
|
}
|
|
}
|