From e730347985ef03dab2abaf944bdca83652978c8d Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Fri, 25 Aug 2017 21:57:23 +0200 Subject: [PATCH] Add converting function from SearchTwoResult to domain SearchResult. Signed-off-by: Yahor Berdnikau --- .../ultrasonic/data/SubsonicAPIConverter.kt | 4 ++++ .../moire/ultrasonic/data/APIConverterTest.kt | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/SubsonicAPIConverter.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/SubsonicAPIConverter.kt index 1a30167c..3d34b847 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/SubsonicAPIConverter.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/SubsonicAPIConverter.kt @@ -5,6 +5,7 @@ package org.moire.ultrasonic.data import org.moire.ultrasonic.api.subsonic.models.Album import org.moire.ultrasonic.api.subsonic.models.Index import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild +import org.moire.ultrasonic.api.subsonic.models.SearchTwoResult import org.moire.ultrasonic.domain.Artist import org.moire.ultrasonic.domain.Indexes import org.moire.ultrasonic.domain.MusicDirectory @@ -90,3 +91,6 @@ fun APIMusicDirectory.toDomainEntity(): MusicDirectory = MusicDirectory().apply fun APISearchResult.toDomainEntity(): SearchResult = SearchResult(emptyList(), emptyList(), this.matchList.map { it.toDomainEntity() }) + +fun SearchTwoResult.toDomainEntity(): SearchResult = SearchResult(this.artistList.map { it.toDomainEntity() }, + this.albumList.map { it.toDomainEntity() }, this.songList.map { it.toDomainEntity() }) diff --git a/ultrasonic/src/test/kotlin/org/moire/ultrasonic/data/APIConverterTest.kt b/ultrasonic/src/test/kotlin/org/moire/ultrasonic/data/APIConverterTest.kt index 5d9542d5..a7ace0b1 100644 --- a/ultrasonic/src/test/kotlin/org/moire/ultrasonic/data/APIConverterTest.kt +++ b/ultrasonic/src/test/kotlin/org/moire/ultrasonic/data/APIConverterTest.kt @@ -14,6 +14,7 @@ import org.moire.ultrasonic.api.subsonic.models.MusicDirectory import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild import org.moire.ultrasonic.api.subsonic.models.MusicFolder import org.moire.ultrasonic.api.subsonic.models.SearchResult +import org.moire.ultrasonic.api.subsonic.models.SearchTwoResult import java.util.Calendar /** @@ -212,6 +213,28 @@ class APIConverterTest { } } + @Test + fun `Should convert SearchTwoResult to domain entity`() { + val entity = SearchTwoResult(listOf( + Artist(id = 82, name = "great-artist-name") + ), listOf( + MusicDirectoryChild(id = 762, artist = "bzz") + ), listOf( + MusicDirectoryChild(id = 9118, parent = 112) + )) + + val convertedEntity = entity.toDomainEntity() + + with(convertedEntity) { + artists.size `should equal to` entity.artistList.size + artists[0] `should equal` entity.artistList[0].toDomainEntity() + albums.size `should equal to` entity.albumList.size + albums[0] `should equal` entity.albumList[0].toDomainEntity() + songs.size `should equal to` entity.songList.size + songs[0] `should equal` entity.songList[0].toDomainEntity() + } + } + private fun createMusicFolder(id: Long = 0, name: String = ""): MusicFolder = MusicFolder(id, name)