package dev.castarr.tv.data import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertNull import org.junit.Assert.assertTrue import org.junit.Test class TeamFiltersTest { private val hansa = TeamFilters.byKey("hansa")!! private val vfb = TeamFilters.byKey("vfb")!! @Test fun `matches the club regardless of case and surrounding text`() { assertTrue(hansa.matches("3. Liga: FC Hansa Rostock - Dynamo Dresden")) assertTrue(hansa.matches("HANSA ROSTOCK KOMPAKT")) assertTrue(vfb.matches("Bundesliga: VfB Stuttgart - Bayern München")) } @Test fun `does not match unrelated programmes`() { assertFalse(hansa.matches("Tagesschau")) assertFalse(vfb.matches("Hansa Rostock - Saarbrücken")) } @Test fun `scans sport and free-to-air groups`() { listOf("DAZN Event", "Sky Sport", "Magenta Sport", "Amazon Prime", "Free TV / HD+", "DYN Sport") .forEach { assertTrue(it, TeamFilters.scansGroup(it)) } } @Test fun `skips NFL and unrelated groups`() { assertFalse(TeamFilters.scansGroup("DAZN Event NFL")) assertFalse(TeamFilters.scansGroup("Kids")) assertFalse(TeamFilters.scansGroup("Musik")) } @Test fun `assigns each viewer their own club by default`() { assertEquals("hansa", TeamFilters.defaultKeyFor("benjamin")) assertEquals("vfb", TeamFilters.defaultKeyFor("TobiasB")) assertNull(TeamFilters.defaultKeyFor("someone-else")) } }