doc / ch.tutteli.atrium.logic.creating.iterable.contains / IterableLikeContains

IterableLikeContains

interface IterableLikeContains (source)

Defines the contract for sophisticated Iterable contains assertion builders.

The building process is typically started by the creation of a EntryPointStep, goes on by specifying a desired SearchBehaviour, defines which Checkers should be applied and is finalized by one of the IterableLikeContainsAssertions which usually use a Creator.

Types

Checker

interface Checker : Contains.Checker

Represents a check for the search result such as: the object is contained exactly once in the input of the search.

CheckerStep

interface CheckerStep<E, T, out S : IterableLikeContains.SearchBehaviour> : Contains.CheckerStep<T, S, IterableLikeContains.Checker, IterableLikeContains.EntryPointStep<E, T, S>>

The step of choosing/defining Checkers.

CheckerStepInternal

interface CheckerStepInternal<E, T, out S : IterableLikeContains.SearchBehaviour> : IterableLikeContains.CheckerStep<E, T, S>, IterableLikeContains.CheckerStepLogic<E, T, S>

Sole purpose of this interface is to hide CheckerStepLogic from newcomers which usually don't have to deal with this type and to keep the API clean.

CheckerStepLogic

interface CheckerStepLogic<E, T, out S : IterableLikeContains.SearchBehaviour> : Contains.CheckerStepLogic<T, S, IterableLikeContains.Checker, IterableLikeContains.EntryPointStepLogic<E, T, S>>

The step of choosing/defining Checkers on the logic level.

Creator

interface Creator<T, in SC> : Contains.Creator<T, SC>

Represents the final step of a sophisticated contains assertion builder which creates the AssertionGroup as such.

EntryPointStep

interface EntryPointStep<E, T, out S : IterableLikeContains.SearchBehaviour> : Contains.EntryPointStep<T, S>

The entry point of the contract.

EntryPointStepInternal

interface EntryPointStepInternal<E, T, out S : IterableLikeContains.SearchBehaviour> : IterableLikeContains.EntryPointStep<E, T, S>, IterableLikeContains.EntryPointStepLogic<E, T, S>

Sole purpose of this interface is to hide EntryPointStepLogic from newcomers which usually do not have to deal with this type and to keep the API clean.

EntryPointStepLogic

interface EntryPointStepLogic<E, T, out S : IterableLikeContains.SearchBehaviour> : Contains.EntryPointStepLogic<T, S>

The entry point of the contract on the logic level, containing the container -- i.e. the subject of this expectation for which the sophisticated contain assertion should be created -- as well as the chosen searchBehaviour.

SearchBehaviour

interface SearchBehaviour : Contains.SearchBehaviour

Represents a search behaviour but leaves it up to the Creator how this behaviour is implemented -- yet, it provides a method to decorate a description (a Translatable) in order that it reflects the search behaviour.