@@ -3,6 +3,7 @@ package org.mockito
3
3
import org .scalatest
4
4
import org .mockito .exceptions .misusing .{PotentialStubbingProblem , UnexpectedInvocationException , UnnecessaryStubbingException }
5
5
import org .mockito .exceptions .verification .SmartNullPointerException
6
+ import org .mockito .quality .Strictness
6
7
import org .scalatest .{OptionValues , WordSpec }
7
8
8
9
// noinspection RedundantDefaultArgument
@@ -175,7 +176,7 @@ class MockitoScalaSessionTest extends WordSpec with IdiomaticMockito with scalat
175
176
}
176
177
}
177
178
178
- " don't check unused stubs for lenient mocks" in {
179
+ " don't check unexpected stubs for lenient mocks" in {
179
180
MockitoScalaSession ().run {
180
181
val foo = mock[Foo ](withSettings.lenient())
181
182
@@ -186,7 +187,76 @@ class MockitoScalaSessionTest extends WordSpec with IdiomaticMockito with scalat
186
187
foo.bar(" paco" )
187
188
}
188
189
}
190
+ " check unexpected stubs for lenient mocks" in {
191
+ intercept[UnexpectedInvocationException ] {
192
+ MockitoScalaSession ().run {
193
+ val foo = mock[Foo ]
194
+
195
+ foo.bar(" pepe" ) shouldReturn " mocked"
196
+
197
+ foo.bar(" pepe" )
198
+
199
+ foo.bar(" paco" )
200
+ }
201
+ }
202
+ }
203
+
204
+ " don't check unexpected stubs in lenient setting" in {
205
+ MockitoScalaSession (strictness = Strictness .LENIENT ).run {
206
+ val foo = mock[Foo ]
207
+
208
+ foo.bar(" pepe" ) shouldReturn " mocked"
209
+
210
+ foo.bar(" pepe" )
211
+
212
+ foo.bar(" paco" )
213
+ }
214
+ }
215
+ " check unexpected stubs in lenient setting" in {
216
+ intercept[UnexpectedInvocationException ] {
217
+ MockitoScalaSession ().run {
218
+ val foo = mock[Foo ]
219
+
220
+ foo.bar(" pepe" ) shouldReturn " mocked"
189
221
222
+ foo.bar(" pepe" )
223
+
224
+ foo.bar(" paco" )
225
+ }
226
+ }
227
+ }
228
+
229
+ " don't check unused stubs for lenient mocks" in {
230
+ MockitoScalaSession ().run {
231
+ val foo = mock[Foo ](withSettings.lenient())
232
+ foo.bar(" pepe" ) shouldReturn " mocked"
233
+ }
234
+ }
235
+
236
+ " check unused stubs for not lenient mocks" in {
237
+ intercept[UnnecessaryStubbingException ] {
238
+ MockitoScalaSession ().run {
239
+ val foo = mock[Foo ]
240
+ foo.bar(" pepe" ) shouldReturn " mocked"
241
+ }
242
+ }
243
+ }
244
+
245
+ " don't check unused stubs in lenient setting" in {
246
+ MockitoScalaSession (strictness = Strictness .LENIENT ).run {
247
+ val foo = mock[Foo ]
248
+ foo.bar(" pepe" ) shouldReturn " mocked"
249
+ }
250
+ }
251
+
252
+ " check unused stubs in not lenient setting" in {
253
+ intercept[UnnecessaryStubbingException ] {
254
+ MockitoScalaSession (strictness = Strictness .STRICT_STUBS ).run {
255
+ val foo = mock[Foo ]
256
+ foo.bar(" pepe" ) shouldReturn " mocked"
257
+ }
258
+ }
259
+ }
190
260
" work with nested deep stubs" in {
191
261
MockitoScalaSession ().run {
192
262
val foo = mock[Foo ](ReturnsDeepStubs )
0 commit comments