From a8072cb3a362819ed98323f23849865b7fcf883d Mon Sep 17 00:00:00 2001 From: Danny Preussler Date: Sun, 30 Dec 2018 14:14:46 +0100 Subject: #317 coroutines verify with verification mode --- .../main/kotlin/com/nhaarman/mockitokotlin2/Verification.kt | 10 ++++++++++ mockito-kotlin/src/test/kotlin/test/CoroutinesTest.kt | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/Verification.kt b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/Verification.kt index bbc8625..b52e61e 100644 --- a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/Verification.kt +++ b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/Verification.kt @@ -53,6 +53,16 @@ fun verifyBlocking(mock: T, f: suspend T.() -> Unit) { runBlocking { m.f() } } +/** + * Verifies certain behavior happened at least once / exact number of times / never. + * + * Warning: Only one method call can be verified in the function. + * Subsequent method calls are ignored! + */ +fun verifyBlocking(mock: T, mode: VerificationMode, f: suspend T.() -> Unit) { + val m = Mockito.verify(mock, mode) + runBlocking { m.f() } +} /** * Verifies certain behavior happened at least once / exact number of times / never. * diff --git a/mockito-kotlin/src/test/kotlin/test/CoroutinesTest.kt b/mockito-kotlin/src/test/kotlin/test/CoroutinesTest.kt index 8f67904..86d35b2 100644 --- a/mockito-kotlin/src/test/kotlin/test/CoroutinesTest.kt +++ b/mockito-kotlin/src/test/kotlin/test/CoroutinesTest.kt @@ -137,6 +137,16 @@ class CoroutinesTest { verifyBlocking(m) { suspending() } } + @Test + fun verifyAtLeastOnceSuspendFunctionCalled_verifyBlocking() { + val m = mock() + + runBlocking { m.suspending() } + runBlocking { m.suspending() } + + verifyBlocking(m, atLeastOnce()) { suspending() } + } + @Test fun verifySuspendMethod() = runBlocking { val testSubject: SomeInterface = mock() -- cgit v1.2.3