diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt index 817c0ada..09b47447 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/CommonFunctions.kt @@ -66,8 +66,8 @@ fun SubsonicResponse.assertBaseResponseOk() { } fun MockWebServerRule.assertRequestParam(responseResourceName: String, - apiRequest: () -> Response, - expectedParam: String) { + expectedParam: String, + apiRequest: () -> Response) { this.enqueueResponse(responseResourceName) apiRequest() diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt index 9850b07e..d56d4927 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetAlbumTest.kt @@ -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 diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt index b21b53d6..4d7ac65b 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistTest.kt @@ -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 diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt index dcb30e4f..869011e5 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetArtistsTest.kt @@ -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() + } } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt index 03839db9..222829d5 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetIndexesTest.kt @@ -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() } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt index e578ceb3..21401094 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetLicenseTest.kt @@ -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 } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt index 8ec74983..46f66ee6 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicDirectoryTest.kt @@ -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() } + + 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 diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt index 97c7b637..23071d30 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetMusicFoldersTest.kt @@ -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() } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt index add5ac05..c9d248d7 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiGetPlaylistTest.kt @@ -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() + } } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt index b470a4bc..b157ef40 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiPingRequestTest.kt @@ -20,8 +20,8 @@ class SubsonicApiPingRequestTest : SubsonicAPIClientTest() { @Test fun `Should parse ping error response`() { - checkErrorCallParsed(mockWebServerRule, { + checkErrorCallParsed(mockWebServerRule) { client.api.ping().execute() - }) + } } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt index e0e868d2..18586cc3 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTest.kt @@ -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() + } } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt index 40ef8b30..26f45b3f 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchThreeTest.kt @@ -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") + } } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt index 2ea69087..21b02075 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiSearchTwoTest.kt @@ -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") + } } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt index 5848a954..b551c8ca 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiStarTest.kt @@ -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() + } } } diff --git a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt index e183bc0e..fc7c27a1 100644 --- a/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt +++ b/subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicApiUnstarTest.kt @@ -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() + } } }