package com.craigvg.lichun_android.utils import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.Assert.assertNull import org.junit.Test import java.util.Date class DateFormattersTest { @Test fun `relativeTime returns Just now for less than 60 seconds ago`() { val date = Date(System.currentTimeMillis() - 30_000) // 30 seconds ago assertEquals("Just now", DateFormatters.relativeTime(date)) } @Test fun `relativeTime returns minutes ago`() { val date = Date(System.currentTimeMillis() - 5 * 60 * 1000) // 5 minutes ago assertEquals("5m ago", DateFormatters.relativeTime(date)) } @Test fun `relativeTime returns hours ago`() { val date = Date(System.currentTimeMillis() - 3 * 60 * 60 * 1000) // 3 hours ago assertEquals("3h ago", DateFormatters.relativeTime(date)) } @Test fun `relativeTime returns Yesterday for 1 day ago`() { val date = Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000L) // 1 day ago assertEquals("Yesterday", DateFormatters.relativeTime(date)) } @Test fun `relativeTime returns days ago`() { val date = Date(System.currentTimeMillis() - 3 * 24 * 60 * 60 * 1000L) // 3 days ago assertEquals("3d ago", DateFormatters.relativeTime(date)) } @Test fun `relativeTime returns weeks ago`() { val date = Date(System.currentTimeMillis() - 14 * 24 * 60 * 60 * 1000L) // 14 days ago assertEquals("2w ago", DateFormatters.relativeTime(date)) } @Test fun `parsePythonDatetime returns non-null for valid string`() { val result = DateFormatters.parsePythonDatetime("2024-06-15 14:30:00.000000") assertNotNull(result) } @Test fun `parsePythonDatetime returns null for invalid string`() { val result = DateFormatters.parsePythonDatetime("not-a-date") assertNull(result) } }