package dev.castarr.tv.data import org.junit.Assert.assertEquals import org.junit.Test class XmltvWindowTest { private fun p(startMin: Long, endMin: Long, title: String) = Programme(startMin * 60_000, endMin * 60_000, title) private val schedule = listOf( p(0, 60, "Läuft gerade"), p(60, 120, "Gleich danach"), p(150, 210, "In zweieinhalb Stunden"), p(300, 360, "Deutlich später"), ) @Test fun `returns programmes overlapping the window`() { val titles = XmltvParser.programmesIn(schedule, 30 * 60_000, 180 * 60_000).map { it.title } assertEquals(listOf("Läuft gerade", "Gleich danach", "In zweieinhalb Stunden"), titles) } @Test fun `excludes programmes outside the window`() { val titles = XmltvParser.programmesIn(schedule, 0, 60 * 60_000).map { it.title } assertEquals(listOf("Läuft gerade"), titles) } @Test fun `handles a missing schedule`() { assertEquals(emptyList(), XmltvParser.programmesIn(null, 0, 1_000)) } }