A time source that has programmatically updatable readings. It is useful as a predictable source of time in tests.
The current reading value can be advanced by the specified duration amount with the operator plusAssign:
val timeSource = TestTimeSource() timeSource += 10.seconds
Time marks returned by this time source can be compared for difference with other time marks obtained from the same time source.
Implementation note: the current reading value is stored as a Long number of nanoseconds, thus it's capable to represent a time range of approximately ±292 years. Should the reading value overflow as the result of plusAssign operation, an IllegalStateException is thrown.