Skip to content

Commit 1ee6493

Browse files
authored
Merge pull request #142 from nhaarman/bddmockito
Add BDDMockito functions
2 parents 9daf01f + 952d366 commit 1ee6493

File tree

2 files changed

+116
-0
lines changed

2 files changed

+116
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.nhaarman.mockito_kotlin
2+
3+
import org.mockito.BDDMockito
4+
5+
fun <T> given(methodCall: T): BDDMockito.BDDMyOngoingStubbing<T> = BDDMockito.given(methodCall)
6+
fun <T> given(methodCall: () -> T) = given(methodCall())
7+
8+
fun <T> then(mock: T): BDDMockito.Then<T> = BDDMockito.then(mock)
9+
10+
infix fun <T> BDDMockito.BDDMyOngoingStubbing<T>.willAnswer(value: () -> T): BDDMockito.BDDMyOngoingStubbing<T> = willAnswer { value() }
11+
infix fun <T> BDDMockito.BDDMyOngoingStubbing<T>.willReturn(value: () -> T): BDDMockito.BDDMyOngoingStubbing<T> = willReturn(value())
12+
infix fun <T> BDDMockito.BDDMyOngoingStubbing<T>.willThrow(value: () -> Throwable): BDDMockito.BDDMyOngoingStubbing<T> = willThrow(value())
13+
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
package test
2+
3+
import com.nhaarman.expect.expect
4+
import com.nhaarman.mockito_kotlin.*
5+
import org.junit.Test
6+
7+
class BDDMockitoTest {
8+
9+
@Test
10+
fun given_willReturn_properlyStubs() {
11+
/* Given */
12+
val mock = mock<Methods>()
13+
14+
/* When */
15+
given(mock.stringResult()).willReturn("Test")
16+
17+
/* Then */
18+
expect(mock.stringResult()).toBe("Test")
19+
}
20+
21+
@Test
22+
fun givenLambda_willReturn_properlyStubs() {
23+
/* Given */
24+
val mock = mock<Methods>()
25+
26+
/* When */
27+
given { mock.stringResult() }.willReturn("Test")
28+
29+
/* Then */
30+
expect(mock.stringResult()).toBe("Test")
31+
}
32+
33+
@Test
34+
fun given_willReturnLambda_properlyStubs() {
35+
/* Given */
36+
val mock = mock<Methods>()
37+
38+
/* When */
39+
given(mock.stringResult()).willReturn { "Test" }
40+
41+
/* Then */
42+
expect(mock.stringResult()).toBe("Test")
43+
}
44+
45+
@Test
46+
fun givenLambda_willReturnLambda_properlyStubs() {
47+
/* Given */
48+
val mock = mock<Methods>()
49+
50+
/* When */
51+
given { mock.stringResult() } willReturn { "Test" }
52+
53+
/* Then */
54+
expect(mock.stringResult()).toBe("Test")
55+
}
56+
57+
@Test
58+
fun given_willAnswer_properlyStubs() {
59+
/* Given */
60+
val mock = mock<Methods>()
61+
62+
/* When */
63+
given(mock.stringResult()).willAnswer { "Test" }
64+
65+
/* Then */
66+
expect(mock.stringResult()).toBe("Test")
67+
}
68+
69+
@Test
70+
fun given_willAnswerInfix_properlyStubs() {
71+
/* Given */
72+
val mock = mock<Methods>()
73+
74+
/* When */
75+
given(mock.stringResult()) willAnswer { "Test" }
76+
77+
/* Then */
78+
expect(mock.stringResult()).toBe("Test")
79+
}
80+
81+
@Test(expected = IllegalStateException::class)
82+
fun given_willThrowInfix_properlyStubs() {
83+
/* Given */
84+
val mock = mock<Methods>()
85+
86+
/* When */
87+
given(mock.stringResult()) willThrow { IllegalStateException() }
88+
mock.stringResult()
89+
}
90+
91+
@Test
92+
fun then() {
93+
/* Given */
94+
val mock = mock<Methods>()
95+
whenever(mock.stringResult()).thenReturn("Test")
96+
97+
/* When */
98+
mock.stringResult()
99+
100+
/* Then */
101+
then(mock).should().stringResult()
102+
}
103+
}

0 commit comments

Comments
 (0)