fun <E : Any, T : Iterable<E>> IterableContainsCheckerBuilder<E, T, IterableContainsInAnyOrderSearchBehaviour>.entries(assertionCreator: IAssertionPlant<E>.() -> Unit, vararg otherAssertionCreators: IAssertionPlant<E>.() -> Unit): IAssertionPlant<T>
Finishes the specification of the sophisticated contains
assertion where an entry shall be searched which holds
all assertions assertionCreator might create and search for entries which hold (one by one) the assertions
created by the otherAssertionCreators.
assertionCreator
- The lambda function which creates the assertions which the entry we are looking for
has to hold; or in other words, the function which defines whether an entry is the one we are looking for.
otherAssertionCreators
- Additional lambda functions which each kind of identify (separately) an entry
which we are looking for.
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
Return
The IAssertionPlant for which the assertion was built to support a fluent API.
fun <E : Any, T : Iterable<E>> IterableContainsBuilder<E, T, IterableContainsInAnyOrderOnlySearchBehaviour>.entries(assertionCreator: IAssertionPlant<E>.() -> Unit, vararg otherAssertionCreators: IAssertionPlant<E>.() -> Unit): IAssertionPlant<T>
Finishes the specification of the sophisticated contains
assertion where the entry needs to be contained in the
Iterable which holds all assertions assertionCreator might create -- equally an entry for each further
otherAssertionCreators needs to be contained in the Iterable where it does not matter in which order the
entries appear.
Notice, that a first-wins strategy applies which means your assertionCreator functions -- which kind of serve as
identification functions -- should be ordered in such a way that the most specific identification function appears
first, not that a less specific function wins. For instance, given a setOf(1, 2)
you should not search for
entries({ isGreaterThan(0) }, { toBe(1) })
but for entries({ toBe(1) }, { isGreaterThan(0) })
otherwise
isGreaterThan(0)
matches 1
before toBe(1)
would match it. As a consequence toBe(1)
could only match the
entry which is left -- in this case 2
-- and of course this would fail.
assertionCreator
- The lambda function which creates the assertions which the entry we are looking for
has to hold; or in other words, the function which defines whether an entry is the one we are looking for.
otherAssertionCreators
- Additional lambda functions which each kind of identify (separately) an entry
which we are looking for.
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
Return
The IAssertionPlant for which the assertion was built to support a fluent API.
fun <E : Any, T : Iterable<E>> IterableContainsBuilder<E, T, IterableContainsInOrderOnlySearchBehaviour>.entries(assertionCreator: IAssertionPlant<E>.() -> Unit, vararg otherAssertionCreators: IAssertionPlant<E>.() -> Unit): IAssertionPlant<T>
Finishes the specification of the sophisticated contains
assertion where the entry needs to be contained in the
Iterable which holds all assertions assertionCreator might create -- equally an entry for each further
otherAssertionCreators, following the specified order, needs to be contained in the Iterable
assertionCreator
- The lambda function which creates the assertions which the entry we are looking for
has to hold; or in other words, the function which defines whether an entry is the one we are looking for.
otherAssertionCreators
- Additional lambda functions which each kind of identify (separately) an entry
which we are looking for.
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
Return
The IAssertionPlant for which the assertion was built to support a fluent API.