73 lines
2.7 KiB
Kotlin
73 lines
2.7 KiB
Kotlin
package org.moire.ultrasonic.api.subsonic
|
|
|
|
import org.amshove.kluent.`should equal`
|
|
import org.amshove.kluent.`should not be`
|
|
import org.junit.Test
|
|
import org.moire.ultrasonic.api.subsonic.models.Artist
|
|
import org.moire.ultrasonic.api.subsonic.models.Index
|
|
import org.moire.ultrasonic.api.subsonic.models.Indexes
|
|
|
|
/**
|
|
* Integration test for [SubsonicAPIClient] for getIndexes() request.
|
|
*/
|
|
class SubsonicApiGetIndexesTest : SubsonicAPIClientTest() {
|
|
@Test
|
|
fun `Should parse get indexes ok response`() {
|
|
mockWebServerRule.enqueueResponse("get_indexes_ok.json")
|
|
|
|
val response = client.api.getIndexes(null, null).execute()
|
|
|
|
assertResponseSuccessful(response)
|
|
response.body().indexes `should not be` null
|
|
with(response.body().indexes) {
|
|
lastModified `should equal` 1491069027523
|
|
ignoredArticles `should equal` "The El La Los Las Le Les"
|
|
shortcutList `should equal` listOf(
|
|
Artist(id = "889", name = "podcasts"),
|
|
Artist(id = "890", name = "audiobooks")
|
|
)
|
|
indexList `should equal` mutableListOf(
|
|
Index("A", listOf(
|
|
Artist(id = "50", name = "Ace Of Base",
|
|
starred = parseDate("2017-04-02T20:16:29.815Z")),
|
|
Artist(id = "379", name = "A Perfect Circle")
|
|
)),
|
|
Index("H", listOf(
|
|
Artist(id = "299", name = "Haddaway"),
|
|
Artist(id = "297", name = "Halestorm")
|
|
))
|
|
)
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should add music folder id as a query param for getIndexes api call`() {
|
|
val musicFolderId = "9"
|
|
|
|
mockWebServerRule.assertRequestParam(responseResourceName = "get_indexes_ok.json",
|
|
expectedParam = "musicFolderId=$musicFolderId") {
|
|
client.api.getIndexes(musicFolderId, null).execute()
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should add ifModifiedSince as a query param for getIndexes api call`() {
|
|
val ifModifiedSince = System.currentTimeMillis()
|
|
|
|
mockWebServerRule.assertRequestParam(responseResourceName = "get_indexes_ok.json",
|
|
expectedParam = "ifModifiedSince=$ifModifiedSince") {
|
|
client.api.getIndexes(null, ifModifiedSince).execute()
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `Should parse get indexes error response`() {
|
|
val response = checkErrorCallParsed(mockWebServerRule) {
|
|
client.api.getIndexes(null, null).execute()
|
|
}
|
|
|
|
response.indexes `should not be` null
|
|
response.indexes `should equal` Indexes()
|
|
}
|
|
}
|