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

78 lines
3.1 KiB
Kotlin

package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should be equal to`
import org.amshove.kluent.`should equal`
import org.amshove.kluent.`should not be`
import org.junit.Test
import org.moire.ultrasonic.api.subsonic.models.Album
import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
/**
* Integration test for [SubsonicAPIClient] for getAlbum call.
*/
class SubsonicApiGetAlbumTest : SubsonicAPIClientTest() {
@Test
fun `Should parse error responce`() {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getAlbum("56").execute()
}
response.album `should not be` null
response.album `should equal` Album()
}
@Test
fun `Should add id to request params`() {
val id = "76"
mockWebServerRule.assertRequestParam(
responseResourceName = "get_album_ok.json",
expectedParam = "id=$id"
) {
client.api.getAlbum(id).execute()
}
}
@Test
fun `Should parse ok response`() {
mockWebServerRule.enqueueResponse("get_album_ok.json")
val response = client.api.getAlbum("512").execute()
assertResponseSuccessful(response)
with(response.body()!!.album) {
id `should be equal to` "618"
name `should be equal to` "Black Ice"
artist `should be equal to` "AC/DC"
artistId `should be equal to` "362"
coverArt `should be equal to` "al-618"
songCount `should be equal to` 15
duration `should be equal to` 3331
created `should equal` parseDate("2016-10-23T15:31:22.000Z")
year `should be equal to` 2008
genre `should be equal to` "Hard Rock"
songList.size `should be equal to` 15
songList[0] `should equal` MusicDirectoryChild(
id = "6491", parent = "6475",
isDir = false, title = "Rock 'n' Roll Train", album = "Black Ice",
artist = "AC/DC", track = 1, year = 2008, genre = "Hard Rock",
coverArt = "6475", size = 7205451, contentType = "audio/mpeg", suffix = "mp3",
duration = 261, bitRate = 219,
path = "AC_DC/Black Ice/01 Rock 'n' Roll Train.mp3",
isVideo = false, playCount = 0, discNumber = 1,
created = parseDate("2016-10-23T15:31:20.000Z"),
albumId = "618", artistId = "362", type = "music"
)
songList[5] `should equal` MusicDirectoryChild(
id = "6492", parent = "6475",
isDir = false, title = "Smash 'n' Grab", album = "Black Ice", artist = "AC/DC",
track = 6, year = 2008, genre = "Hard Rock", coverArt = "6475", size = 6697204,
contentType = "audio/mpeg", suffix = "mp3", duration = 246, bitRate = 216,
path = "AC_DC/Black Ice/06 Smash 'n' Grab.mp3", isVideo = false, playCount = 0,
discNumber = 1, created = parseDate("2016-10-23T15:31:20.000Z"),
albumId = "618", artistId = "362", type = "music"
)
}
}
}