Skip to content

Commit 66e3be5

Browse files
committed
add simplified ArgumentCaptor support
1 parent 1262c19 commit 66e3be5

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
package com.nhaarman.mockito_kotlin
2727

28+
import org.mockito.ArgumentCaptor
2829
import org.mockito.Mockito
2930
import org.mockito.stubbing.Answer
3031
import org.mockito.stubbing.Stubber
@@ -55,6 +56,9 @@ fun doNothing() = Mockito.doNothing()
5556

5657
fun <T> Stubber.whenever(mock: T) = `when`(mock)
5758

59+
inline fun <reified T : Any> argumentCaptor() = ArgumentCaptor.forClass(T::class.java)
60+
inline fun <reified T : Any> capture(captor: ArgumentCaptor<T>): T = captor.capture() ?: createInstance<T>()
61+
5862
inline fun <reified T : Any> eq(value: T) = Mockito.eq(value) ?: createInstance<T>()
5963
inline fun <reified T : Any> anyArray(): Array<T> = Mockito.any(Array<T>::class.java) ?: arrayOf()
6064
inline fun <reified T : Any> any() = Mockito.any(T::class.java) ?: createInstance<T>()
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import com.nhaarman.mockito_kotlin.argumentCaptor
2+
import com.nhaarman.mockito_kotlin.mock
3+
import com.nhaarman.mockito_kotlin.verify
4+
import com.nhaarman.expect.expect
5+
import com.nhaarman.mockito_kotlin.capture
6+
import org.junit.Test
7+
import java.util.*
8+
9+
class ArgumentCaptorTest {
10+
@Test
11+
fun captor() {
12+
val date: Date = mock()
13+
val time = argumentCaptor<Long>()
14+
15+
date.time = 5L
16+
17+
verify(date).time = capture(time)
18+
expect(time.value).toBe(5L)
19+
}
20+
}

0 commit comments

Comments
 (0)