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

Commit 6597c29a authored by Steve Elliott's avatar Steve Elliott
Browse files

Add captureMany { } mockito test utility

Bug: 241121499
Test: atest SystemUITests
Change-Id: I5cea416923549d433dd4e58183a45a0f60223b6a
parent 494fbd29
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