41 lines
1.4 KiB
Kotlin
41 lines
1.4 KiB
Kotlin
package de.marha.planer
|
|
|
|
import de.marha.planer.data.Dates
|
|
import org.junit.Assert.assertEquals
|
|
import org.junit.Assert.assertTrue
|
|
import org.junit.Test
|
|
|
|
class DatesTest {
|
|
@Test fun monthGridStartsMondayBefore() {
|
|
val grid = Dates.monthGrid(2026, 9)
|
|
assertEquals(42, grid.size)
|
|
assertEquals("2026-08-31", grid[0])
|
|
assertEquals("2026-06-01", Dates.monthGrid(2026, 6)[0])
|
|
}
|
|
|
|
@Test fun weekStartsMonday() {
|
|
assertEquals("2026-09-14", Dates.startOfWeek("2026-09-17"))
|
|
assertEquals("2026-09-14", Dates.startOfWeek("2026-09-20"))
|
|
assertEquals("2026-09-14", Dates.startOfWeek("2026-09-14"))
|
|
assertEquals(7, Dates.weekDays("2026-09-17").size)
|
|
}
|
|
|
|
@Test fun isoWeek() {
|
|
assertEquals(38, Dates.isoWeek("2026-09-17"))
|
|
assertEquals(53, Dates.isoWeek("2027-01-01"))
|
|
}
|
|
|
|
@Test fun formats() {
|
|
assertEquals("Do, 17.09.2026", Dates.formatDate("2026-09-17"))
|
|
assertEquals("17.09.", Dates.formatDayMonth("2026-09-17"))
|
|
assertEquals("September 2026", Dates.formatMonth(2026, 9))
|
|
assertEquals(90, Dates.timeToMinutes("01:30"))
|
|
assertEquals("01:30", Dates.minutesToTime(90))
|
|
}
|
|
|
|
// Gleiches Format wie die Extension, damit sich Zeitstempel als Strings vergleichen lassen
|
|
@Test fun nowIsoHasMillisAndZ() {
|
|
assertTrue(Regex("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$").matches(Dates.nowIso()))
|
|
}
|
|
}
|