val <T : CharSequence> Expect<T>.contains: CharSequenceContains.EntryPointStep<T, NoOpSearchBehaviour>
Starts a sophisticated contains
assertion building process based on this Expect.
//Unresolved: ch.tutteli.atrium.api.fluent.en_GB.samples.CharSequenceAssertionsSpec.containsBuilder
Return
The newly created builder.
fun <T : CharSequence> Expect<T>.contains(expected: CharSequenceOrNumberOrChar, vararg otherExpected: CharSequenceOrNumberOrChar): Expect<T>
Expects that the subject of the assertion (a CharSequence) contains expected's toString representation and the toString representation of the otherExpected (if given), using a non disjoint search.
It is a shortcut for contains.atLeast(1).values(expected, *otherExpected)
.
Notice that a runtime check applies which assures that only CharSequence, Number and Char are passed. This function expects CharSequenceOrNumberOrChar (which is a typealias for Any) for your convenience, so that you can mix String and Int for instance.
By non disjoint is meant that "aa"
in "aaaa"
is found three times and not only two times.
Also notice, that it does not search for unique matches. Meaning, if the input of the search is "a"
and expected
is defined as "a"
and one otherExpected is defined as "a"
as well, then both match, even though they match the
same sequence in the input of the search. Use the property contains
to create a more sophisticated contains
assertion where you can use options such as atLeast, atMost and exactly to control the number of occurrences
you expect.
Meaning you might want to use:
contains.exactly(2).value("a")
instead of:
contains("a", "a")
//Unresolved: ch.tutteli.atrium.api.fluent.en_GB.samples.CharSequenceAssertionsSpec.contains
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
IllegalArgumentException
- in case expected or one of the otherExpected is not a
CharSequence, Number or Char.
Return
An Expect for the current subject of the assertion.
fun <E, T : Iterable<E>> Expect<T>.contains(expected: E, vararg otherExpected: E): Expect<T>
Expects that the subject of the assertion (an Iterable) contains the expected value and the otherExpected values (if given).
It is a shortcut for contains.inAnyOrder.atLeast(1).values(expected, *otherExpected)
Notice, that it does not search for unique matches. Meaning, if the iterable is setOf('a', 'b')
and expected is
defined as 'a'
and one otherExpected is defined as 'a'
as well, then both match, even though they match the
same entry. Use an option such as atLeast, atMost and exactly to control the number of occurrences you expect.
Meaning you might want to use:
contains.inAnyOrder.exactly(2).value('a')
instead of:
contains('a', 'a')
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
Return
An Expect for the current subject of the assertion.
fun <E : Any, T : Iterable<E?>> Expect<T>.contains(assertionCreatorOrNull: (Expect<E>.() -> Unit)?): Expect<T>
Expects that the subject of the assertion (an Iterable) contains an entry holding the
assertions created by assertionCreatorOrNull or an entry which is null
in case assertionCreatorOrNull
is defined as null
.
It is a shortcut for contains.inAnyOrder.atLeast(1).entry(assertionCreatorOrNull)
assertionCreatorOrNull
- The identification lambda 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
or not. In case it is defined as null
, then an entry is identified if it is null
as well.
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
Return
An Expect for the current subject of the assertion.
fun <E : Any, T : Iterable<E?>> Expect<T>.contains(assertionCreatorOrNull: (Expect<E>.() -> Unit)?, vararg otherAssertionCreatorsOrNulls: (Expect<E>.() -> Unit)?): Expect<T>
Expects that the subject of the assertion (an Iterable) contains an entry holding the
assertions created by assertionCreatorOrNull or an entry which is null
in case assertionCreatorOrNull
is defined as null
-- likewise an entry (can be the same) is searched for each
of the otherAssertionCreatorsOrNulls.
It is a shortcut for contains.inAnyOrder.atLeast(1).entries(assertionCreatorOrNull, *otherAssertionCreatorsOrNulls)
assertionCreatorOrNull
- The identification lambda 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
or not. In case it is defined as null
, then an entry is identified if it is null
as well.
otherAssertionCreatorsOrNulls
- Additional identification lambdas which each identify (separately) an entry
which we are looking for (see assertionCreatorOrNull for more information).
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
Return
An Expect for the current subject of the assertion.
fun <K, V, T : Map<out K, V>> Expect<T>.contains(keyValuePair: Pair<K, V>, vararg otherPairs: Pair<K, V>): Expect<T>
Expects that the subject of the assertion (a Map) contains a key as defined by keyValuePair's Pair.first with a corresponding value as defined by keyValuePair's Pair.second -- optionally the same assertions are created for the otherPairs.
Delegates to contains.inAnyOrder.entries(keyValuePair, *otherPairs)
Notice, that it does not search for unique matches. Meaning, if the map is mapOf('a' to 1)
and keyValuePair is
defined as 'a' to 1
and one of the otherPairs is defined as 'a' to 1
as well, then both match,
even though they match the same entry.
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
Return
An Expect for the current subject of the assertion.
inline fun <K, reified V : Any, T : Map<out K, V?>> Expect<T>.contains(keyValue: KeyValue<K, V>, vararg otherKeyValues: KeyValue<K, V>): Expect<T>
Expects that the subject of the assertion (a Map) contains a key as defined by keyValue's KeyValue.key
with a corresponding value which either holds all assertions keyValue's
KeyValue.valueAssertionCreatorOrNull creates or needs to be null
in case
KeyValue.valueAssertionCreatorOrNull is defined as null
-- optionally the same assertions are created for the otherKeyValues.
Delegates to contains.inAnyOrder.entries(keyValue, *otherKeyValues)
Notice, that it does not search for unique matches. Meaning, if the map is mapOf('a' to 1)
and keyValue is
defined as Key('a') { isGreaterThan(0) }
and one of the otherKeyValues is defined as Key('a') { isLessThan(2) }
, then both match, even though they match the same entry.
AssertionError
- Might throw an AssertionError if the assertion made is not correct.
Return
An Expect for the current subject of the assertion.