Merge pull request #38 from ultrasonic/test-improvements

Use same approach to all integration tests.
This commit is contained in:
Yahor Berdnikau 2017-08-29 22:27:10 +02:00 committed by GitHub
commit e1ec4d0c56
15 changed files with 186 additions and 207 deletions

View File

@ -66,8 +66,8 @@ fun SubsonicResponse.assertBaseResponseOk() {
}
fun MockWebServerRule.assertRequestParam(responseResourceName: String,
apiRequest: () -> Response<out SubsonicResponse>,
expectedParam: String) {
expectedParam: String,
apiRequest: () -> Response<out SubsonicResponse>) {
this.enqueueResponse(responseResourceName)
apiRequest()

View File

@ -1,9 +1,10 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should contain`
import org.amshove.kluent.`should 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
/**
@ -12,20 +13,22 @@ import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
class SubsonicApiGetAlbumTest : SubsonicAPIClientTest() {
@Test
fun `Should parse error responce`() {
checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getAlbum(56L).execute()
})
}
response.album `should not be` null
response.album `should equal` Album()
}
@Test
fun `Should add id to request params`() {
mockWebServerRule.enqueueResponse("get_album_ok.json")
val id = 76L
client.api.getAlbum(id).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "id=$id"
mockWebServerRule.assertRequestParam(responseResourceName = "get_album_ok.json",
expectedParam = "id=$id") {
client.api.getAlbum(id).execute()
}
}
@Test

View File

@ -1,10 +1,11 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should contain`
import org.amshove.kluent.`should 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.Artist
/**
* Integration test for [SubsonicAPIClient] for getArtist call.
@ -12,20 +13,22 @@ import org.moire.ultrasonic.api.subsonic.models.Album
class SubsonicApiGetArtistTest : SubsonicAPIClientTest() {
@Test
fun `Should parse error call`() {
checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getArtist(101L).execute()
})
}
response.artist `should not be` null
response.artist `should equal` Artist()
}
@Test
fun `Should pass id param in request`() {
val id = 929L
mockWebServerRule.enqueueResponse("get_artist_ok.json")
client.api.getArtist(id).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "id=$id"
mockWebServerRule.assertRequestParam(responseResourceName = "get_artist_ok.json",
expectedParam = "id=$id") {
client.api.getArtist(id).execute()
}
}
@Test

View File

@ -1,12 +1,12 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should contain`
import org.amshove.kluent.`should 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.Artist
import org.moire.ultrasonic.api.subsonic.models.Index
import org.moire.ultrasonic.api.subsonic.models.Indexes
/**
* Integration test for [SubsonicAPIClient] for getArtists() request.
@ -14,17 +14,12 @@ import org.moire.ultrasonic.api.subsonic.models.Index
class SubsonicApiGetArtistsTest : SubsonicAPIClientTest() {
@Test
fun `Should parse get artists error response`() {
val response = checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getArtists(null).execute()
})
}
response.indexes `should not be` null
with(response.indexes) {
lastModified `should equal to` 0
ignoredArticles `should equal to` ""
indexList.size `should equal to` 0
shortcutList.size `should equal to` 0
}
response.indexes `should equal` Indexes()
}
@Test
@ -56,10 +51,10 @@ class SubsonicApiGetArtistsTest : SubsonicAPIClientTest() {
fun `Should pass param on query for get artists call`() {
mockWebServerRule.enqueueResponse("get_artists_ok.json")
val musicFolderId = 101L
client.api.getArtists(musicFolderId).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "musicFolderId=$musicFolderId"
mockWebServerRule.assertRequestParam(responseResourceName = "get_artists_ok.json",
expectedParam = "musicFolderId=$musicFolderId") {
client.api.getArtists(musicFolderId).execute()
}
}
}

View File

@ -1,12 +1,11 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should contain`
import org.amshove.kluent.`should 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.Artist
import org.moire.ultrasonic.api.subsonic.models.Index
import org.moire.ultrasonic.api.subsonic.models.Indexes
/**
* Integration test for [SubsonicAPIClient] for getIndexes() request.
@ -43,54 +42,31 @@ class SubsonicApiGetIndexesTest : SubsonicAPIClientTest() {
@Test
fun `Should add music folder id as a query param for getIndexes api call`() {
mockWebServerRule.enqueueResponse("get_indexes_ok.json")
val musicFolderId = 9L
client.api.getIndexes(musicFolderId, null).execute()
with(mockWebServerRule.mockWebServer.takeRequest()) {
requestLine `should contain` "musicFolderId=$musicFolderId"
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`() {
mockWebServerRule.enqueueResponse("get_indexes_ok.json")
val ifModifiedSince = System.currentTimeMillis()
client.api.getIndexes(null, ifModifiedSince).execute()
with(mockWebServerRule.mockWebServer.takeRequest()) {
requestLine `should contain` "ifModifiedSince=$ifModifiedSince"
}
}
@Test
fun `Should add both params to query for getIndexes api call`() {
mockWebServerRule.enqueueResponse("get_indexes_ok.json")
val musicFolderId = 110L
val ifModifiedSince = System.currentTimeMillis()
client.api.getIndexes(musicFolderId, ifModifiedSince).execute()
with(mockWebServerRule.mockWebServer.takeRequest()) {
requestLine `should contain` "musicFolderId=$musicFolderId"
requestLine `should contain` "ifModifiedSince=$ifModifiedSince"
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, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getIndexes(null, null).execute()
})
}
response.indexes `should not be` null
with(response.indexes) {
lastModified `should equal to` 0
ignoredArticles `should equal to` ""
indexList.size `should equal to` 0
shortcutList.size `should equal to` 0
}
response.indexes `should equal` Indexes()
}
}

View File

@ -1,6 +1,5 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should equal to`
import org.amshove.kluent.`should equal`
import org.amshove.kluent.`should not be`
import org.junit.Test
@ -28,14 +27,12 @@ class SubsonicApiGetLicenseTest : SubsonicAPIClientTest() {
@Test
fun `Should parse get license error response`() {
val response = checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getLicense().execute()
})
}
response.license `should not be` null
with(response.license) {
email `should equal to` ""
valid `should equal to` false
}
response.license.email `should equal` License().email
response.license.valid `should equal` License().valid
}
}

View File

@ -1,11 +1,11 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should be`
import org.amshove.kluent.`should contain`
import org.amshove.kluent.`should 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.MusicDirectory
import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
/**
@ -14,31 +14,22 @@ import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
class SubsonicApiGetMusicDirectoryTest : SubsonicAPIClientTest() {
@Test
fun `Should parse getMusicDirectory error response`() {
val response = checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getMusicDirectory(1).execute()
})
with(response.musicDirectory) {
this `should not be` null
id `should equal to` -1L
parent `should equal to` -1L
name `should equal to` ""
userRating `should equal to` 0
averageRating `should equal to` 0.0f
starred `should be` null
playCount `should equal to` 0
childList `should be` emptyList<MusicDirectoryChild>()
}
response.musicDirectory `should not be` null
response.musicDirectory `should equal` MusicDirectory()
}
@Test
fun `GetMusicDirectory should add directory id to query params`() {
mockWebServerRule.enqueueResponse("get_music_directory_ok.json")
val directoryId = 124L
client.api.getMusicDirectory(directoryId).execute()
mockWebServerRule.mockWebServer.takeRequest().requestLine `should contain` "id=$directoryId"
mockWebServerRule.assertRequestParam(responseResourceName = "get_music_directory_ok.json",
expectedParam = "id=$directoryId") {
client.api.getMusicDirectory(directoryId).execute()
}
}
@Test

View File

@ -23,9 +23,9 @@ class SubsonicApiGetMusicFoldersTest : SubsonicAPIClientTest() {
@Test
fun `Should parse get music folders error response`() {
val response = checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getMusicFolders().execute()
})
}
response.musicFolders `should equal` emptyList()
}

View File

@ -2,8 +2,10 @@ package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should 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.MusicDirectoryChild
import org.moire.ultrasonic.api.subsonic.models.Playlist
/**
* Integration test for [SubsonicAPIClient] for getPlaylist call.
@ -11,9 +13,12 @@ import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
class SubsonicApiGetPlaylistTest : SubsonicAPIClientTest() {
@Test
fun `Should parse error response`() {
checkErrorCallParsed(mockWebServerRule) {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.getPlaylist(10).execute()
}
response.playlist `should not be` null
response.playlist `should equal` Playlist()
}
@Test
@ -49,9 +54,10 @@ class SubsonicApiGetPlaylistTest : SubsonicAPIClientTest() {
@Test
fun `Should pass id as request param`() {
val playlistId = 453L
mockWebServerRule.assertRequestParam(responseResourceName = "get_playlist_ok.json",
apiRequest = {
client.api.getPlaylist(playlistId).execute()
}, expectedParam = "id=$playlistId")
expectedParam = "id=$playlistId") {
client.api.getPlaylist(playlistId).execute()
}
}
}

View File

@ -20,8 +20,8 @@ class SubsonicApiPingRequestTest : SubsonicAPIClientTest() {
@Test
fun `Should parse ping error response`() {
checkErrorCallParsed(mockWebServerRule, {
checkErrorCallParsed(mockWebServerRule) {
client.api.ping().execute()
})
}
}
}

View File

@ -1,10 +1,11 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should contain`
import org.amshove.kluent.`should 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.MusicDirectoryChild
import org.moire.ultrasonic.api.subsonic.models.SearchResult
import java.util.Calendar
/**
@ -13,14 +14,17 @@ import java.util.Calendar
class SubsonicApiSearchTest : SubsonicAPIClientTest() {
@Test
fun `Should parse error response`() {
checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.search().execute()
})
}
response.searchResult `should not be` null
response.searchResult `should equal` SearchResult()
}
@Test
fun `Should parse ok response`() {
enqueueOkResponse()
mockWebServerRule.enqueueResponse("search_ok.json")
val response = client.api.search().execute()
@ -44,82 +48,71 @@ class SubsonicApiSearchTest : SubsonicAPIClientTest() {
@Test
fun `Should pass artist param`() {
enqueueOkResponse()
val artist = "some-artist"
client.api.search(artist = artist).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "artist=$artist"
mockWebServerRule.assertRequestParam(responseResourceName = "search_ok.json",
expectedParam = "artist=$artist") {
client.api.search(artist = artist).execute()
}
}
@Test
fun `Should pass album param`() {
enqueueOkResponse()
val album = "some-album"
client.api.search(album = album).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "album=$album"
mockWebServerRule.assertRequestParam(responseResourceName = "search_ok.json",
expectedParam = "album=$album") {
client.api.search(album = album).execute()
}
}
@Test
fun `Should pass title param`() {
enqueueOkResponse()
val title = "some-title"
client.api.search(title = title).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "title=$title"
mockWebServerRule.assertRequestParam(responseResourceName = "search_ok.json",
expectedParam = "title=$title") {
client.api.search(title = title).execute()
}
}
@Test
fun `Should contain any param`() {
enqueueOkResponse()
val any = "AnyString"
client.api.search(any = any).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "any=$any"
mockWebServerRule.assertRequestParam(responseResourceName = "search_ok.json",
expectedParam = "any=$any") {
client.api.search(any = any).execute()
}
}
@Test
fun `Should contain count param`() {
enqueueOkResponse()
val count = 11
client.api.search(count = count).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "count=$count"
mockWebServerRule.assertRequestParam(responseResourceName = "search_ok.json",
expectedParam = "count=$count") {
client.api.search(count = count).execute()
}
}
@Test
fun `Should contain offset param`() {
enqueueOkResponse()
val offset = 54
client.api.search(offset = offset).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "offset=$offset"
mockWebServerRule.assertRequestParam(responseResourceName = "search_ok.json",
expectedParam = "offset=$offset") {
client.api.search(offset = offset).execute()
}
}
@Test
fun `Should contain newerThan param`() {
enqueueOkResponse()
val newerThan = Calendar.getInstance()
client.api.search(newerThan = newerThan.time.time).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "newerThan=${newerThan.time.time}"
}
private fun enqueueOkResponse() {
mockWebServerRule.enqueueResponse("search_ok.json")
mockWebServerRule.assertRequestParam(responseResourceName = "search_ok.json",
expectedParam = "newerThan=${newerThan.time.time}") {
client.api.search(newerThan = newerThan.time.time).execute()
}
}
}

View File

@ -2,10 +2,12 @@ package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should 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.Artist
import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
import org.moire.ultrasonic.api.subsonic.models.SearchThreeResult
/**
* Integration test for [SubsonicAPIClient] for search3 call.
@ -13,9 +15,12 @@ import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
class SubsonicApiSearchThreeTest : SubsonicAPIClientTest() {
@Test
fun `Should parse error response`() {
checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.search3("some-query").execute()
})
}
response.searchResult `should not be` null
response.searchResult `should equal` SearchThreeResult()
}
@Test
@ -60,53 +65,59 @@ class SubsonicApiSearchThreeTest : SubsonicAPIClientTest() {
fun `Should pass artist count as request param`() {
val artistCount = 67
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json",
expectedParam = "artistCount=$artistCount") {
client.api.search3("some", artistCount = artistCount).execute()
}, expectedParam = "artistCount=$artistCount")
}
}
@Test
fun `Should pass artist offset as request param`() {
val artistOffset = 34
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json",
expectedParam = "artistOffset=$artistOffset") {
client.api.search3("some", artistOffset = artistOffset).execute()
}, expectedParam = "artistOffset=$artistOffset")
}
}
@Test
fun `Should pass album count as request param`() {
val albumCount = 21
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json",
expectedParam = "albumCount=$albumCount") {
client.api.search3("some", albumCount = albumCount).execute()
}, expectedParam = "albumCount=$albumCount")
}
}
@Test
fun `Should pass album offset as request param`() {
val albumOffset = 43
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json",
expectedParam = "albumOffset=$albumOffset") {
client.api.search3("some", albumOffset = albumOffset).execute()
}, expectedParam = "albumOffset=$albumOffset")
}
}
@Test
fun `Should pass song count as request param`() {
val songCount = 15
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json",
expectedParam = "songCount=$songCount") {
client.api.search3("some", songCount = songCount).execute()
}, expectedParam = "songCount=$songCount")
}
}
@Test
fun `Should pass music folder id as request param`() {
val musicFolderId = 43L
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search3_ok.json",
expectedParam = "musicFolderId=$musicFolderId") {
client.api.search3("some", musicFolderId = musicFolderId).execute()
}, expectedParam = "musicFolderId=$musicFolderId")
}
}
}

View File

@ -2,9 +2,11 @@ package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should 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.Artist
import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
import org.moire.ultrasonic.api.subsonic.models.SearchTwoResult
/**
* Integration test for [SubsonicAPIClient] for search2 call.
@ -12,9 +14,12 @@ import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
class SubsonicApiSearchTwoTest : SubsonicAPIClientTest() {
@Test
fun `Should handle error response`() {
checkErrorCallParsed(mockWebServerRule, {
val response = checkErrorCallParsed(mockWebServerRule) {
client.api.search2("some-query").execute()
})
}
response.searchResult `should not be` null
response.searchResult `should equal` SearchTwoResult()
}
@Test
@ -50,62 +55,69 @@ class SubsonicApiSearchTwoTest : SubsonicAPIClientTest() {
fun `Should pass query id in request param`() {
val query = "some"
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json",
expectedParam = "query=$query") {
client.api.search2(query).execute()
}, expectedParam = "query=$query")
}
}
@Test
fun `Should pass artist count in request param`() {
val artistCount = 45
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json",
expectedParam = "artistCount=$artistCount") {
client.api.search2("some", artistCount = artistCount).execute()
}, expectedParam = "artistCount=$artistCount")
}
}
@Test
fun `Should pass artist offset in request param`() {
val artistOffset = 13
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json",
expectedParam = "artistOffset=$artistOffset") {
client.api.search2("some", artistOffset = artistOffset).execute()
}, expectedParam = "artistOffset=$artistOffset")
}
}
@Test
fun `Should pass album count in request param`() {
val albumCount = 30
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json",
expectedParam = "albumCount=$albumCount") {
client.api.search2("some", albumCount = albumCount).execute()
}, expectedParam = "albumCount=$albumCount")
}
}
@Test
fun `Should pass album offset in request param`() {
val albumOffset = 91
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json",
expectedParam = "albumOffset=$albumOffset") {
client.api.search2("some", albumOffset = albumOffset).execute()
}, expectedParam = "albumOffset=$albumOffset")
}
}
@Test
fun `Should pass song count in request param`() {
val songCount = 22
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json",
expectedParam = "songCount=$songCount") {
client.api.search2("some", songCount = songCount).execute()
}, expectedParam = "songCount=$songCount")
}
}
@Test
fun `Should pass music folder id in request param`() {
val musicFolderId = 565L
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json", apiRequest = {
mockWebServerRule.assertRequestParam(responseResourceName = "search2_ok.json",
expectedParam = "musicFolderId=$musicFolderId") {
client.api.search2("some", musicFolderId = musicFolderId).execute()
}, expectedParam = "musicFolderId=$musicFolderId")
}
}
}

View File

@ -1,7 +1,6 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should be`
import org.amshove.kluent.`should contain`
import org.junit.Test
import org.moire.ultrasonic.api.subsonic.response.SubsonicResponse
@ -21,41 +20,38 @@ class SubsonicApiStarTest : SubsonicAPIClientTest() {
@Test
fun `Should parse star error response`() {
checkErrorCallParsed(mockWebServerRule, {
checkErrorCallParsed(mockWebServerRule) {
client.api.star().execute()
})
}
}
@Test
fun `Should pass id param`() {
mockWebServerRule.enqueueResponse("ping_ok.json")
val id = 110L
client.api.star(id = id).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "id=$id"
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
expectedParam = "id=$id") {
client.api.star(id = id).execute()
}
}
@Test
fun `Should pass artist id param`() {
mockWebServerRule.enqueueResponse("ping_ok.json")
val artistId = 123L
client.api.star(artistId = artistId).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "artistId=$artistId"
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
expectedParam = "artistId=$artistId") {
client.api.star(artistId = artistId).execute()
}
}
@Test
fun `Should pass albom id param`() {
mockWebServerRule.enqueueResponse("ping_ok.json")
fun `Should pass album id param`() {
val albumId = 1001L
client.api.star(albumId = albumId).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "albumId=$albumId"
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
expectedParam = "albumId=$albumId") {
client.api.star(albumId = albumId).execute()
}
}
}

View File

@ -1,12 +1,11 @@
package org.moire.ultrasonic.api.subsonic
import org.amshove.kluent.`should be`
import org.amshove.kluent.`should contain`
import org.junit.Test
import org.moire.ultrasonic.api.subsonic.response.SubsonicResponse
/**
* Intergration test for [SubsonicAPIClient] for unstar call.
* Integration test for [SubsonicAPIClient] for unstar call.
*/
class SubsonicApiUnstarTest : SubsonicAPIClientTest() {
@Test
@ -28,34 +27,31 @@ class SubsonicApiUnstarTest : SubsonicAPIClientTest() {
@Test
fun `Should pass id param`() {
mockWebServerRule.enqueueResponse("ping_ok.json")
val id = 545L
client.api.unstar(id = id).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "id=$id"
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
expectedParam = "id=$id") {
client.api.unstar(id = id).execute()
}
}
@Test
fun `Should pass artistId param`() {
mockWebServerRule.enqueueResponse("ping_ok.json")
val artistId = 644L
client.api.unstar(artistId = artistId).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "artistId=$artistId"
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
expectedParam = "artistId=$artistId") {
client.api.unstar(artistId = artistId).execute()
}
}
@Test
fun `Should pass albumId param`() {
mockWebServerRule.enqueueResponse("ping_ok.json")
val albumId = 3344L
client.api.unstar(albumId = albumId).execute()
val request = mockWebServerRule.mockWebServer.takeRequest()
request.requestLine `should contain` "albumId=$albumId"
mockWebServerRule.assertRequestParam(responseResourceName = "ping_ok.json",
expectedParam = "albumId=$albumId") {
client.api.unstar(albumId = albumId).execute()
}
}
}