mirror of
https://github.com/InsanusMokrassar/krontab.git
synced 2026-01-23 04:17:56 +00:00
tests and fixes in week work
This commit is contained in:
38
src/commonTest/kotlin/dev/inmo/krontab/utils/WeekDaysTest.kt
Normal file
38
src/commonTest/kotlin/dev/inmo/krontab/utils/WeekDaysTest.kt
Normal file
@@ -0,0 +1,38 @@
|
||||
package dev.inmo.krontab.utils
|
||||
|
||||
import com.soywiz.klock.*
|
||||
import dev.inmo.krontab.builder.buildSchedule
|
||||
import kotlin.math.ceil
|
||||
import kotlin.test.*
|
||||
|
||||
class WeekDaysTest {
|
||||
@Test
|
||||
fun testThatWeekDaysSchedulingWorks() {
|
||||
val startDateTime = DateTime.now().startOfDay
|
||||
val weekDay = startDateTime.dayOfWeek.index0
|
||||
val testDays = 400
|
||||
val scheduler = buildSchedule {
|
||||
dayOfWeek {
|
||||
at(weekDay)
|
||||
}
|
||||
years {
|
||||
at(startDateTime.yearInt)
|
||||
}
|
||||
}
|
||||
runTest {
|
||||
for (day in 0 until testDays) {
|
||||
val currentDateTime = startDateTime + day.days
|
||||
val next = scheduler.next(currentDateTime)
|
||||
val expected = when {
|
||||
day % 7 == 0 -> currentDateTime
|
||||
else -> startDateTime + ceil(day.toFloat() / 7).weeks
|
||||
}
|
||||
if (expected.yearInt != startDateTime.yearInt) {
|
||||
assertNull(next)
|
||||
} else {
|
||||
assertEquals(expected, next)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user