From b2de5f3b785501360b7a747a1662ce7f762c850e Mon Sep 17 00:00:00 2001 From: Jeff DeCew Date: Wed, 27 Oct 2021 12:09:20 +0000 Subject: [PATCH] Add mockito helpers Fixes: 204433688 Test: manual Merged-In: Ie4f8d503f413da4afd06a21d1d74f1bb43d25433 Change-Id: Ie4f8d503f413da4afd06a21d1d74f1bb43d25433 --- .../util/mockito/KotlinMockitoHelpers.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/mockito/KotlinMockitoHelpers.kt b/packages/SystemUI/tests/src/com/android/systemui/util/mockito/KotlinMockitoHelpers.kt index bff99bf340d61..483dc9fc42b29 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/mockito/KotlinMockitoHelpers.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/util/mockito/KotlinMockitoHelpers.kt @@ -58,3 +58,24 @@ fun capture(argumentCaptor: ArgumentCaptor): T = argumentCaptor.capture() */ inline fun argumentCaptor(): ArgumentCaptor = ArgumentCaptor.forClass(T::class.java) + +/** + * Helper function for creating new mocks, without the need to pass in a [Class] instance. + * + * Generic T is nullable because implicitly bounded by Any?. + */ +inline fun mock(): T = Mockito.mock(T::class.java) + +/** + * Helper function for creating and using a single-use ArgumentCaptor in kotlin. + * + * val captor = argumentCaptor() + * verify(...).someMethod(captor.capture()) + * val captured = captor.value + * + * becomes: + * + * val captured = withArgCaptor { verify(...).someMethod(capture()) } + */ +inline fun withArgCaptor(block: ArgumentCaptor.() -> Unit): T = + argumentCaptor().apply { block() }.value \ No newline at end of file