package com.craigvg.lichun_android.utils import org.junit.Assert.assertEquals import org.junit.Test class StringExtensionsTest { // parseInterests tests @Test fun `parseInterests splits pipe-delimited string`() { assertEquals(listOf("music", "sports", "reading"), "music|sports|reading".parseInterests()) } @Test fun `parseInterests returns empty list for empty string`() { assertEquals(emptyList(), "".parseInterests()) } @Test fun `parseInterests returns single item`() { assertEquals(listOf("music"), "music".parseInterests()) } @Test fun `parseInterests trims whitespace`() { assertEquals(listOf("music", "sports"), " music | sports ".parseInterests()) } @Test fun `parseInterests filters empty segments`() { assertEquals(listOf("music", "sports"), "music||sports".parseInterests()) } // interestIconName tests @Test fun `interestIconName returns MusicNote for music`() { assertEquals("MusicNote", "music".interestIconName()) } @Test fun `interestIconName returns SportsBasketball for sports`() { assertEquals("SportsBasketball", "sports".interestIconName()) } @Test fun `interestIconName returns Star for unknown interest`() { assertEquals("Star", "unknown".interestIconName()) } @Test fun `interestIconName is case insensitive`() { assertEquals("MusicNote", "Music".interestIconName()) } // formatName tests @Test fun `formatName capitalizes multi-word name`() { assertEquals("John Doe", "john doe".formatName()) } @Test fun `formatName capitalizes single word`() { assertEquals("John", "john".formatName()) } @Test fun `formatName handles already capitalized`() { assertEquals("John Doe", "John Doe".formatName()) } }