main.kotlin.ch.tutteli.atrium.logic.IterableLikeAssertions.kt Maven / Gradle / Ivy
package ch.tutteli.atrium.logic
import ch.tutteli.atrium.assertions.Assertion
import ch.tutteli.atrium.creating.Expect
import ch.tutteli.atrium.creating.AssertionContainer
import ch.tutteli.atrium.logic.creating.iterable.contains.IterableLikeContains
import ch.tutteli.atrium.logic.creating.iterable.contains.searchbehaviours.NoOpSearchBehaviour
import ch.tutteli.atrium.logic.creating.iterable.contains.searchbehaviours.NotSearchBehaviour
import ch.tutteli.atrium.logic.creating.iterable.contains.steps.NotCheckerStep
import ch.tutteli.atrium.logic.creating.transformers.FeatureExtractorBuilder
import ch.tutteli.atrium.logic.creating.typeutils.IterableLike
/**
* Collection of assertion functions and builders which are applicable to subjects which can be transformed to an
* [Iterable] - intended for types which are Iterable like such as [Array] or [Sequence].
*/
interface IterableLikeAssertions {
fun builderContainsInIterableLike(
container: AssertionContainer,
converter: (T) -> Iterable
): IterableLikeContains.EntryPointStep
fun builderContainsNotInIterableLike(
container: AssertionContainer,
converter: (T) -> Iterable
): NotCheckerStep
fun all(
container: AssertionContainer,
converter: (T) -> Iterable,
assertionCreatorOrNull: (Expect.() -> Unit)?
): Assertion
fun hasNext(
container: AssertionContainer,
converter: (T) -> Iterable
): Assertion
fun hasNotNext(
container: AssertionContainer,
converter: (T) -> Iterable
): Assertion
fun > min(
container: AssertionContainer,
converter: (T) -> Iterable
): FeatureExtractorBuilder.ExecutionStep
fun > max(
container: AssertionContainer,
converter: (T) -> Iterable
): FeatureExtractorBuilder.ExecutionStep
fun containsNoDuplicates(
container: AssertionContainer,
converter: (T) -> Iterable
): Assertion
}