InstantRangeSource
annotation class InstantRangeSource(val min: String, val max: String, val increment: String = "PT1h", val ascending: Boolean = true)
Used to provide a range of instants to a test. The range is inclusive of the min and max values.
Parameters
min
The minimum value for the range. Should follow the ISO-8601 instant format e.g. "2022-01-01T00:00:00Z"
max
The maximum value for the range. Should follow the ISO-8601 instant format e.g. "2022-01-01T00:00:00Z"
increment
How much time to increment the value for each test. If ascending is false, this value will be negated. The default value is 1 hour. Should follow the ISO-8601 duration format e.g. "PT1h" for 1 hour, "PT30m" for 30 minutes.
Samples
/**
* This will generate 10 tests with random Instant values
* between 2023-01-01T00:00:00.000Z and 2023-01-02T01:00:00.000Z
*/
@GeneratedParametersTest
fun testRandomInstantSourceWithInstant(
@RandomInstantSource(
size = 10,
min = "2023-01-01T00:00:00.000Z",
max = "2023-01-02T01:00:00.000Z"
)
value: Instant
) {
assertThat(value).isLessThan(Instant.now())
}
@GeneratedParametersTest
fun testRandomInstantSourceWithOffset(
@RandomInstantSource(
size = 10,
min = "PT1H",
max = "PT2H",
useOffset = true
)
value: Instant
) {
assertThat(value).isBetween(
Instant.now().plus(1, ChronoUnit.HOURS),
Instant.now().plus(2, ChronoUnit.HOURS)
)
}Content copied to clipboard