keys
fun <K, V, T : Map<out K, V>> Expect<T>.keys(assertionCreator: Expect<Set<K>>.() -> Unit): Expect<T>(source)
Expects that the property Map.keys of the subject of this
expectation holds all assertions the given assertionCreator creates for it and returns an Expect for the current subject of this
expectation.
Return
an Expect for the subject of this
expectation.
Samples
expect(mapOf(1 to "a"))
.keys { // subject inside this expectation-group is of type Set<Int> (containing 1)
toEqual(setOf(1))
} // subject here is back to type Map<Int, String>
fails {
// all expectations are evaluated inside an expectation-group block; for more details:
// https://github.com/robstoll/atrium#define-single-expectations-or-an-expectation-group
expect(mapOf(1 to "a"))
.keys { // subject inside this expectation-group is of type Set<Int> (containing 1)
toEqual(setOf(2)) // fails because 1 is not equal to 2
toHaveSize(3) // still evaluated because we use an expectation-group block
// use `.keys.` if you want a fail fast behaviour
}
}
Creates an Expect for the property Map.keys of the subject of this
expectation, so that further fluent calls are assertions about it.
Return
The newly created Expect for the extracted feature.
Samples
expect(mapOf(1 to "a"))
.keys // subject is now of type Set<Int> (containing 1)
.toContain(1)
fails {
expect(mapOf(1 to "a"))
.keys // subject is now of type Set<Int> (containing 1)
.toContain(2) // fails
.toHaveSize(5) // not evaluated/reported even though `toContain` already fails
// use `.keys { ... }` if you want that all expectations are evaluated
}