Add optional MDBList movie ratings

This commit is contained in:
ponzischeme89
2026-08-03 08:55:52 +12:00
parent b6b2a9c25a
commit 666da9c5d3
18 changed files with 840 additions and 4 deletions
@@ -3,6 +3,7 @@ package com.ponzischeme89.memby.data
import com.ponzischeme89.memby.data.model.GatewayHome
import com.ponzischeme89.memby.data.model.GatewayDevices
import com.ponzischeme89.memby.data.model.GatewayNextEpisode
import com.ponzischeme89.memby.data.model.GatewayMovieRatings
import com.ponzischeme89.memby.data.model.GatewayPlayback
import com.ponzischeme89.memby.data.model.GatewayPlaybackReportResponse
import com.ponzischeme89.memby.data.model.GatewaySearchHistory
@@ -23,6 +24,16 @@ import org.junit.Test
* side, this fails before a TV ever sees it.
*/
class GatewayPayloadTest {
@Test
fun `decodes server formatted movie rating sources and scales`() {
val response = json.decodeFromString<GatewayMovieRatings>(
"""{"ratings":[{"source":"imdb","name":"IMDb","score":"8.2","scale":"/10"},{"source":"tomatoes","name":"Rotten Tomatoes","score":"91","scale":"%"}]}""",
)
assertEquals(listOf("IMDb", "Rotten Tomatoes"), response.ratings.map { it.name })
assertEquals(listOf("8.2/10", "91%"), response.ratings.map { it.score + it.scale })
}
@Test
fun `decodes signed in devices without an allowance`() {
val response = json.decodeFromString<GatewayDevices>(