fun <E, T : Iterable<E>> Expect<T>.toContainExactly(expected: E, vararg otherExpected: E, report: InOrderOnlyReportingOptions.() -> Unit = {}): Expect<T> (source)
Expects that the subject of this expectation (an Iterable) contains only
the expected value and the otherExpected values (if given) in the defined order.
It is a shortcut for toContain.inOrder.only.values(expected, *otherExpected, report = { ... })
expect(listOf(1, 2, 2, 4)).toContainExactly(1, 2, 2, 4)
fails {
expect(listOf("A", "B")).toContainExactly("A", "B", "C")
}
fails {
expect(listOf("A", "B")).toContainExactly("B", "A")
}
fails {
expect(listOf("A", "B")).toContainExactly(
"C",
"B",
// optional
report = { // allows configuring reporting, e.g.
showOnlyFailing() // would not show the successful `B`
showOnlyFailingIfMoreExpectedElementsThan(10)
}
)
}
expected - The first expected value.
otherExpected - The other expected values in the given order.
report - The lambda configuring the InOrderOnlyReportingOptions -- it is optional where
the default InOrderOnlyReportingOptions apply if not specified.
Return
an Expect for the subject of this expectation.
Since
0.17.0
fun <E : Any, T : Iterable<E?>> Expect<T>.toContainExactly(assertionCreatorOrNull: (Expect<E>.() -> Unit)?): Expect<T> (source)
Expects that the subject of this expectation (an Iterable) contains only an entry holding
the assertions created by assertionCreatorOrNull or only one entry which is null in case assertionCreatorOrNull
is defined as null.
It is a shortcut for toContain.inOrder.only.entry(assertionCreatorOrNull)
expect(listOf(4)).toContainExactly {
toBeLessThan(5)
toBeGreaterThan(3)
}
expect(listOf(null)).toContainExactly(null)
fails {
expect(listOf("A", "B")).toContainExactly {
toEqual("A")
}
}
fails {
expect(listOf(null, "B")).toContainExactly(null)
}
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.
Return
an Expect for the subject of this expectation.
Since
0.17.0
fun <E : Any, T : Iterable<E?>> Expect<T>.toContainExactly(assertionCreatorOrNull: (Expect<E>.() -> Unit)?, vararg otherAssertionCreatorsOrNulls: (Expect<E>.() -> Unit)?, report: InOrderOnlyReportingOptions.() -> Unit = {}): Expect<T> (source)
Expects that the subject of this expectation (an Iterable) contains only an entry holding
the assertions created by assertionCreatorOrNull or null in case assertionCreatorOrNull is defined as null
and likewise an additional entry for each otherAssertionCreatorsOrNulls (if given)
whereas the entries have to appear in the defined order.
It is a shortcut for toContain.inOrder.only.entries(assertionCreatorOrNull, *otherAssertionCreatorsOrNulls)
expect(listOf(3, 5, null)).toContainExactly(
{ toEqual(3) },
{ toBeLessThan(11) },
null
)
fails {
expect(listOf(3, 5, 7)).toContainExactly(
{ toBeGreaterThan(2) },
{ toBeLessThan(11) }
)
}
fails {
expect(listOf(3, 5)).toContainExactly(
{ toEqual(1) }, // fails
{ toBeLessThan(11) }, // succeeds
// optional
report = { // allows configuring reporting, e.g.
showOnlyFailing() // would not show the successful `toBeLessThan(11)`
showOnlyFailingIfMoreExpectedElementsThan(10)
}
)
}
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).
report - The lambda configuring the InOrderOnlyReportingOptions -- it is optional where
the default InOrderOnlyReportingOptions apply if not specified.
Return
an Expect for the subject of this expectation.
Since
0.17.0