toContainExactlyElementsOf
Expects that the subject of this
expectation (an Iterable) contains only elements of expectedIterableLike in same order
It is a shortcut for 'toContain.inOrder.only.elementsOf(anotherList)'
Notice that a runtime check applies which assures that only Iterable, Sequence or one of the Array types are passed. This function expects IterableLike (which is a typealias for Any) to avoid cluttering the API.
Return
an Expect for the subject of this
expectation.
Since
0.17.0
Parameters
The IterableLike whose elements are expected to be contained within this Iterable.
The lambda configuring the InOrderOnlyReportingOptions -- it is optional where the default InOrderOnlyReportingOptions apply if not specified.
Throws
in case expectedIterableLike is not an Iterable, Sequence or one of the Array types or the given expectedIterableLike does not have elements (is empty).
Samples
expect(listOf(1, 2, 2, 4)).toContainExactlyElementsOf(listOf(1, 2, 2, 4))
fails {
expect(listOf(2, 3, 4)).toContainExactlyElementsOf(listOf(2, 3, 4, 1))
}
fails {
expect(listOf(1, 2, 2, 4)).toContainExactlyElementsOf(listOf(1, 2, 4))
}
fails {
expect(listOf(1, 2, 2, 4)).toContainExactlyElementsOf(
listOf(1, 2, 4),
// optional
report = { // allows configuring reporting, e.g.
showOnlyFailing() // would not show the successful first and second `1, 2`
showOnlyFailingIfMoreExpectedElementsThan(10)
}
)
}