From 6597c29a895365ef97274668413048e95ebe234d Mon Sep 17 00:00:00 2001 From: Steve Elliott Date: Sat, 3 Sep 2022 22:13:03 -0400 Subject: [PATCH] Add captureMany { } mockito test utility Bug: 241121499 Test: atest SystemUITests Change-Id: I5cea416923549d433dd4e58183a45a0f60223b6a --- .../systemui/util/mockito/KotlinMockitoHelpers.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/mockito/KotlinMockitoHelpers.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/util/mockito/KotlinMockitoHelpers.kt index f539dbdf76a00..d058053c606c3 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/util/mockito/KotlinMockitoHelpers.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/mockito/KotlinMockitoHelpers.kt @@ -118,3 +118,17 @@ inline fun kotlinArgumentCaptor(): KotlinArgumentCaptor = */ inline fun withArgCaptor(block: KotlinArgumentCaptor.() -> Unit): T = kotlinArgumentCaptor().apply { block() }.value + +/** + * Variant of [withArgCaptor] for capturing multiple arguments. + * + * val captor = argumentCaptor() + * verify(...).someMethod(captor.capture()) + * val captured: List = captor.allValues + * + * becomes: + * + * val capturedList = captureMany { verify(...).someMethod(capture()) } + */ +inline fun captureMany(block: KotlinArgumentCaptor.() -> Unit): List = + kotlinArgumentCaptor().apply{ block() }.allValues