ultrasonic-app-subsonic-and.../core/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirector...

77 lines
3.2 KiB
Kotlin

package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should be`
import org.amshove.kluent.`should be equal to`
import org.amshove.kluent.`should not be`
import org.junit.Test
import org.moire.ultrasonic.api.subsonic.models.MusicDirectory
import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
/**
* Integration test for [SubsonicAPIClient] for getMusicDirectory request.
*/
class SubsonicApiGetMusicDirectoryTest : SubsonicAPIClientTest() {
@Test
fun `Should parse getMusicDirectory error response`() {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getMusicDirectory("1").execute()
}
response.musicDirectory `should not be` null
response.musicDirectory `should be equal to` MusicDirectory()
}
@Test
fun `GetMusicDirectory should add directory id to query params`() {
val directoryId = "124"
mockWebServerRule.assertRequestParam(
responseResourceName = "get_music_directory_ok.json",
expectedParam = "id=$directoryId"
) {
client.api.getMusicDirectory(directoryId).execute()
}
}
@Test
fun `Should parse get music directory ok response`() {
mockWebServerRule.enqueueResponse("get_music_directory_ok.json")
val response = client.api.getMusicDirectory("1").execute()
assertResponseSuccessful(response)
response.body()!!.musicDirectory `should not be` null
with(response.body()!!.musicDirectory) {
id `should be equal to` "4836"
parent `should be equal to` "300"
name `should be equal to` "12 Stones"
userRating `should be equal to` 5
averageRating `should be equal to` 5.0f
starred `should be equal to` null
playCount `should be equal to` 1
childList.size `should be` 2
childList[0] `should be equal to` MusicDirectoryChild(
id = "4844", parent = "4836",
isDir = false, title = "Crash", album = "12 Stones", artist = "12 Stones",
track = 1, year = 2002, genre = "Alternative Rock", coverArt = "4836",
size = 5348318L, contentType = "audio/mpeg", suffix = "mp3", duration = 222,
bitRate = 192, path = "12 Stones/12 Stones/01 Crash.mp3", isVideo = false,
playCount = 0, discNumber = 1,
created = parseDate("2016-10-23T15:19:10.000Z"),
albumId = "454", artistId = "288", type = "music"
)
childList[1] `should be equal to` MusicDirectoryChild(
id = "4845", parent = "4836",
isDir = false, title = "Broken", album = "12 Stones", artist = "12 Stones",
track = 2, year = 2002, genre = "Alternative Rock", coverArt = "4836",
size = 4309043L, contentType = "audio/mpeg", suffix = "mp3", duration = 179,
bitRate = 192, path = "12 Stones/12 Stones/02 Broken.mp3", isVideo = false,
playCount = 0, discNumber = 1,
created = parseDate("2016-10-23T15:19:09.000Z"),
albumId = "454", artistId = "288", type = "music"
)
}
}
}