Skip to content

Commit ecfaf58

Browse files
committed
Add infix modifiers to doReturn methods
1 parent 2d4eef9 commit ecfaf58

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ class KStubbing<out T>(private val mock: T) {
8787
fun <R> on(methodCall: T.() -> R) = Mockito.`when`(mock.methodCall())
8888
}
8989

90-
fun <T> OngoingStubbing<T>.doReturn(t: T) = thenReturn(t)
91-
fun <T> OngoingStubbing<T>.doReturn(t: T, vararg ts: T) = thenReturn(t, *ts)
90+
infix fun <T> OngoingStubbing<T>.doReturn(t: T): OngoingStubbing<T> = thenReturn(t)
91+
fun <T> OngoingStubbing<T>.doReturn(t: T, vararg ts: T): OngoingStubbing<T> = thenReturn(t, *ts)
92+
inline infix fun <reified T> OngoingStubbing<T>.doReturn(ts: List<T>): OngoingStubbing<T> = thenReturn(ts[0], *ts.drop(1).toTypedArray())
9293

9394
fun mockingDetails(toInspect: Any): MockingDetails = Mockito.mockingDetails(toInspect)!!
9495
fun never(): VerificationMode = Mockito.never()!!

mockito-kotlin/src/test/kotlin/MockitoTest.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ class MockitoTest {
287287
fun testMockStubbing_lambda() {
288288
/* Given */
289289
val mock = mock<Open>() {
290-
on { stringResult() }.doReturn("A")
290+
on { stringResult() } doReturn "A"
291291
}
292292

293293
/* When */
@@ -326,4 +326,16 @@ class MockitoTest {
326326
/* Then */
327327
expect(result).toBe("A")
328328
}
329+
330+
@Test
331+
fun doReturn_withSingleItemList() {
332+
/* Given */
333+
val mock = mock<Open> {
334+
on { stringResult() } doReturn listOf("a", "b")
335+
}
336+
337+
/* Then */
338+
expect(mock.stringResult()).toBe("a")
339+
expect(mock.stringResult()).toBe("b")
340+
}
329341
}

0 commit comments

Comments
 (0)