LongRangeSource

@SourceProvider(value = LongRangeDataProvider::class)
annotation class LongRangeSource(val min: Long, val max: Long, val increment: Long = 1, val ascending: Boolean = true)

Annotation to indicate that the annotated long parameter should be populated with a long range from min to max with an increment step in the ascending direction.

Samples

/**
 * This will generate 300 tests with the values 1 to 300
 * The values will be in ascending order
 */
@GeneratedParametersTest
fun testLongRangeSource(@LongRangeSource(min = 1, max = 300) value: Int) {
    assertThat(value).isBetween(1, 300)
}

/**
 * This will generate 149 tests with the values 1 to 300 with an increment of 2
 * The values will be in ascending order
 */
@GeneratedParametersTest
fun testLongRangeSourceWithIncrement(@LongRangeSource(min = 1, max = 300, increment = 2) value: Int) {
    assertThat(value).all {
        isBetween(1, 300)
        isOdd()
    }
}

/**
 * This will generate 149 tests with the values 1 to 300 with an increment of 2
 * The values will be in ascending order
 */
@GeneratedParametersTest
fun testLongRangeSourceWithIncrementDescending(
    @LongRangeSource(
        min = 1,
        max = 300,
        increment = 2,
        ascending = false
    ) value: Int
) {
    assertThat(value).all {
        isBetween(1, 300)
        isOdd()
    }
}

Properties

Link copied to clipboard
val ascending: Boolean = true

Whether the range should be in ascending or descending order.

Link copied to clipboard
val increment: Long = 1

The increment value for the range.

Link copied to clipboard
val max: Long

The maximum value in the range.

Link copied to clipboard
val min: Long

The minimum value in the range.