Add function that converts SearchResult to domain entity.

Signed-off-by: Yahor Berdnikau <egorr.berd@gmail.com>
This commit is contained in:
Yahor Berdnikau 2017-08-23 22:31:36 +02:00
parent e71d8a09af
commit 6bfd091b6b
2 changed files with 25 additions and 0 deletions

View File

@ -9,10 +9,12 @@ import org.moire.ultrasonic.domain.Artist
import org.moire.ultrasonic.domain.Indexes
import org.moire.ultrasonic.domain.MusicDirectory
import org.moire.ultrasonic.domain.MusicFolder
import org.moire.ultrasonic.domain.SearchResult
import org.moire.ultrasonic.api.subsonic.models.Artist as APIArtist
import org.moire.ultrasonic.api.subsonic.models.Indexes as APIIndexes
import org.moire.ultrasonic.api.subsonic.models.MusicDirectory as APIMusicDirectory
import org.moire.ultrasonic.api.subsonic.models.MusicFolder as APIMusicFolder
import org.moire.ultrasonic.api.subsonic.models.SearchResult as APISearchResult
fun APIMusicFolder.toDomainEntity(): MusicFolder = MusicFolder(this.id.toString(), this.name)
@ -85,3 +87,6 @@ fun APIMusicDirectory.toDomainEntity(): MusicDirectory = MusicDirectory().apply
name = this@toDomainEntity.name
addAll(this@toDomainEntity.childList.map { it.toDomainEntity() })
}
fun APISearchResult.toDomainEntity(): SearchResult = SearchResult(emptyList(), emptyList(),
this.matchList.map { it.toDomainEntity() })

View File

@ -4,6 +4,7 @@ package org.moire.ultrasonic.data
import org.amshove.kluent.`should equal to`
import org.amshove.kluent.`should equal`
import org.amshove.kluent.`should not equal`
import org.junit.Test
import org.moire.ultrasonic.api.subsonic.models.Album
import org.moire.ultrasonic.api.subsonic.models.Artist
@ -12,6 +13,7 @@ import org.moire.ultrasonic.api.subsonic.models.Indexes
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 java.util.Calendar
/**
@ -192,6 +194,24 @@ class APIConverterTest {
}
}
@Test
fun `Should convert SearchResult to domain entity`() {
val entity = SearchResult(offset = 10, totalHits = 3, matchList = listOf(
MusicDirectoryChild(id = 101L)
))
val convertedEntity = entity.toDomainEntity()
with(convertedEntity) {
albums `should not equal` null
albums.size `should equal to` 0
artists `should not equal` null
artists.size `should equal to` 0
songs.size `should equal to` entity.matchList.size
songs[0] `should equal` entity.matchList[0].toDomainEntity()
}
}
private fun createMusicFolder(id: Long = 0, name: String = ""): MusicFolder =
MusicFolder(id, name)