mirror of
https://github.com/InsanusMokrassar/krontab.git
synced 2026-11-02 01:23:01 +00:00
tests and fixes in week work
This commit is contained in:
1 parent
bfa546ad1f
commit
86cdda51a1
3 files changed
+41
-3
No files matched your search
@@ -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