doc / ch.tutteli.atrium.api.fluent.en_GB / keys

keys

val <K, T : Map<out K, *>> Expect<T>.keys: Expect<Set<K>> (source)

Creates an Expect for the property Map.keys of the subject of this expectation, so that further fluent calls are assertions about it.

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 because 1 is not equal to 2
}

Return
The newly created Expect for the extracted feature.

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.

expect(mapOf(1 to "a"))
    .keys { // subject inside this block is of type Set<Int> (containing 1)
        toEqual(setOf(1))
    }

fails {
    // all expectations are evaluated inside an expectation group block; for more details:
    // https://github.com/robstoll/atrium#define-single-assertions-or-assertion-groups

    expect(mapOf(1 to "a"))
        .keys {                // subject inside this block 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
        }
}

Return
an Expect for the subject of this expectation.