Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a24aba2 authored by Steve Elliott's avatar Steve Elliott Committed by Android (Google) Code Review
Browse files

Merge "Add captureMany { } mockito test utility" into tm-qpr-dev

parents 001f5e8c 6597c29a
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -118,3 +118,17 @@ inline fun <reified T : Any> kotlinArgumentCaptor(): KotlinArgumentCaptor<T> =
 */
inline fun <reified T : Any> withArgCaptor(block: KotlinArgumentCaptor<T>.() -> Unit): T =
        kotlinArgumentCaptor<T>().apply { block() }.value

/**
 * Variant of [withArgCaptor] for capturing multiple arguments.
 *
 *    val captor = argumentCaptor<Foo>()
 *    verify(...).someMethod(captor.capture())
 *    val captured: List<Foo> = captor.allValues
 *
 * becomes:
 *
 *    val capturedList = captureMany<Foo> { verify(...).someMethod(capture()) }
 */
inline fun <reified T : Any> captureMany(block: KotlinArgumentCaptor<T>.() -> Unit): List<T> =
        kotlinArgumentCaptor<T>().apply{ block() }.allValues