1
0
mirror of https://github.com/ultrasonic/ultrasonic synced 2025-03-10 08:30:08 +01:00

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.Indexes
import org.moire.ultrasonic.domain.MusicDirectory import org.moire.ultrasonic.domain.MusicDirectory
import org.moire.ultrasonic.domain.MusicFolder 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.Artist as APIArtist
import org.moire.ultrasonic.api.subsonic.models.Indexes as APIIndexes 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.MusicDirectory as APIMusicDirectory
import org.moire.ultrasonic.api.subsonic.models.MusicFolder as APIMusicFolder 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) fun APIMusicFolder.toDomainEntity(): MusicFolder = MusicFolder(this.id.toString(), this.name)
@ -85,3 +87,6 @@ fun APIMusicDirectory.toDomainEntity(): MusicDirectory = MusicDirectory().apply
name = this@toDomainEntity.name name = this@toDomainEntity.name
addAll(this@toDomainEntity.childList.map { it.toDomainEntity() }) 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 to`
import org.amshove.kluent.`should equal` import org.amshove.kluent.`should equal`
import org.amshove.kluent.`should not equal`
import org.junit.Test import org.junit.Test
import org.moire.ultrasonic.api.subsonic.models.Album import org.moire.ultrasonic.api.subsonic.models.Album
import org.moire.ultrasonic.api.subsonic.models.Artist 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.MusicDirectory
import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
import org.moire.ultrasonic.api.subsonic.models.MusicFolder import org.moire.ultrasonic.api.subsonic.models.MusicFolder
import org.moire.ultrasonic.api.subsonic.models.SearchResult
import java.util.Calendar 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 = private fun createMusicFolder(id: Long = 0, name: String = ""): MusicFolder =
MusicFolder(id, name) MusicFolder(id, name)