Refactor time access behind TimeSource

This commit is contained in:
darken
2026-04-14 11:28:41 +02:00
committed by Matthias Urhahn
parent c1601c105c
commit 1cd8ae5ace
71 changed files with 362 additions and 212 deletions
@@ -0,0 +1,30 @@
package testhelpers
import eu.darken.capod.common.TimeSource
import java.time.Duration
import java.time.Instant
class TestTimeSource(
var wallNow: Instant = Instant.parse("2026-01-01T00:00:00Z"),
var elapsedRealtimeMs: Long = 0L,
var elapsedRealtimeNanosValue: Long = 0L,
var uptimeMillisValue: Long = 0L,
) : TimeSource {
override fun now(): Instant = wallNow
override fun currentTimeMillis(): Long = wallNow.toEpochMilli()
override fun elapsedRealtime(): Long = elapsedRealtimeMs
override fun elapsedRealtimeNanos(): Long = elapsedRealtimeNanosValue
override fun uptimeMillis(): Long = uptimeMillisValue
fun advanceBy(duration: Duration) {
wallNow = wallNow.plus(duration)
elapsedRealtimeMs += duration.toMillis()
elapsedRealtimeNanosValue += duration.toNanos()
uptimeMillisValue += duration.toMillis()
}
}