main.kotlin.ch.tutteli.atrium.logic.FeatureAssertions.kt Maven / Gradle / Ivy
package ch.tutteli.atrium.logic
import ch.tutteli.atrium.creating.AssertionContainer
import ch.tutteli.atrium.logic.creating.transformers.FeatureExtractorBuilder
import ch.tutteli.atrium.reporting.translating.Translatable
import kotlin.reflect.*
/**
* Collection of functions which help to create feature assertions by returning [FeatureExtractorBuilder.ExecutionStep].
*/
interface FeatureAssertions {
//@formatter:off
fun property(container: AssertionContainer, property: KProperty1): FeatureExtractorBuilder.ExecutionStep
fun f0(container: AssertionContainer, f: KFunction1): FeatureExtractorBuilder.ExecutionStep
fun f1(container: AssertionContainer, f: KFunction2, a1: A1): FeatureExtractorBuilder.ExecutionStep
fun f2(container: AssertionContainer, f: KFunction3, a1: A1, a2: A2): FeatureExtractorBuilder.ExecutionStep
fun f3(container: AssertionContainer, f: KFunction4, a1: A1, a2: A2, a3: A3): FeatureExtractorBuilder.ExecutionStep
fun f4(container: AssertionContainer, f: KFunction5, a1: A1, a2: A2, a3: A3, a4: A4): FeatureExtractorBuilder.ExecutionStep
fun f5(container: AssertionContainer, f: KFunction6, a1: A1, a2: A2, a3: A3, a4: A4, a5: A5): FeatureExtractorBuilder.ExecutionStep
//@formatter:on
fun manualFeature(
container: AssertionContainer,
description: Translatable,
provider: T.() -> R
): FeatureExtractorBuilder.ExecutionStep
}