File tree Expand file tree Collapse file tree 2 files changed +15
-1
lines changed
main/kotlin/com/nhaarman/mockito_kotlin Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -29,3 +29,7 @@ import org.mockito.ArgumentCaptor
29
29
30
30
inline fun <reified T : Any > argumentCaptor () = ArgumentCaptor .forClass(T ::class .java)
31
31
inline fun <reified T : Any > capture (captor : ArgumentCaptor <T >): T = captor.capture() ? : createInstance<T >()
32
+ inline fun <reified T : Any > capture (noinline consumer : (T ) -> Unit ): T {
33
+ var times = 0
34
+ return argThat { if (++ times == 1 ) consumer.invoke(this ); true }
35
+ }
Original file line number Diff line number Diff line change @@ -9,7 +9,7 @@ import java.util.*
9
9
class ArgumentCaptorTest {
10
10
11
11
@Test
12
- fun captor () {
12
+ fun explicitCaptor () {
13
13
val date: Date = mock()
14
14
val time = argumentCaptor<Long >()
15
15
@@ -18,4 +18,14 @@ class ArgumentCaptorTest {
18
18
verify(date).time = capture(time)
19
19
expect(time.value).toBe(5L )
20
20
}
21
+
22
+ @Test
23
+ fun implicitCaptor () {
24
+ val date: Date = mock()
25
+ date.time = 5L
26
+
27
+ verify(date).time = capture {
28
+ expect(it).toBe(5L )
29
+ }
30
+ }
21
31
}
You can’t perform that action at this time.
0 commit comments