From a55bb02060a436eea43bc3b7170ee63e409324cb Mon Sep 17 00:00:00 2001 From: Sam Rawlins Date: Thu, 8 Feb 2018 11:15:45 -0800 Subject: [PATCH 1/3] verify*Interactions methods throw helpfully that they expect Mock --- lib/src/mock.dart | 4 ++++ test/mockito_test.dart | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/lib/src/mock.dart b/lib/src/mock.dart index 3d552ddd..67e80642 100644 --- a/lib/src/mock.dart +++ b/lib/src/mock.dart @@ -706,7 +706,10 @@ _InOrderVerification get verifyInOrder { }; } +void _throwMockArgumentError(method) => throw new ArgumentError('$method must only be given a Mock object'); + void verifyNoMoreInteractions(var mock) { + if (mock is! Mock) _throwMockArgumentError('verifyNoMoreInteractions'); var unverified = mock._realCalls.where((inv) => !inv.verified).toList(); if (unverified.isNotEmpty) { fail("No more calls expected, but following found: " + unverified.join()); @@ -714,6 +717,7 @@ void verifyNoMoreInteractions(var mock) { } void verifyZeroInteractions(var mock) { + if (mock is! Mock) _throwMockArgumentError('verifyZeroInteractions'); if (mock._realCalls.isNotEmpty) { fail("No interaction expected, but following found: " + mock._realCalls.join()); diff --git a/test/mockito_test.dart b/test/mockito_test.dart index 4cc31bad..7802ea29 100644 --- a/test/mockito_test.dart +++ b/test/mockito_test.dart @@ -936,6 +936,11 @@ void main() { verify(mock.methodWithoutArgs()); verifyNoMoreInteractions(mock); }); + + test("throws if given a real object", () { + expect( + () => verifyNoMoreInteractions(new RealClass()), throwsArgumentError); + }); }); group("verifyInOrder()", () { From 7cfba60dfbd1b73beb401e698308cb0425c74e64 Mon Sep 17 00:00:00 2001 From: Sam Rawlins Date: Thu, 8 Feb 2018 11:27:28 -0800 Subject: [PATCH 2/3] fmt --- lib/src/mock.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/src/mock.dart b/lib/src/mock.dart index 67e80642..7c6d4b72 100644 --- a/lib/src/mock.dart +++ b/lib/src/mock.dart @@ -706,7 +706,8 @@ _InOrderVerification get verifyInOrder { }; } -void _throwMockArgumentError(method) => throw new ArgumentError('$method must only be given a Mock object'); +void _throwMockArgumentError(method) => + throw new ArgumentError('$method must only be given a Mock object'); void verifyNoMoreInteractions(var mock) { if (mock is! Mock) _throwMockArgumentError('verifyNoMoreInteractions'); From c0a88e338d1d839e4ca956bdbf4269d74a82bed5 Mon Sep 17 00:00:00 2001 From: Sam Rawlins Date: Tue, 20 Feb 2018 17:04:43 -0800 Subject: [PATCH 3/3] Rearrange --- lib/src/mock.dart | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/src/mock.dart b/lib/src/mock.dart index 7c6d4b72..8b1393de 100644 --- a/lib/src/mock.dart +++ b/lib/src/mock.dart @@ -710,18 +710,24 @@ void _throwMockArgumentError(method) => throw new ArgumentError('$method must only be given a Mock object'); void verifyNoMoreInteractions(var mock) { - if (mock is! Mock) _throwMockArgumentError('verifyNoMoreInteractions'); - var unverified = mock._realCalls.where((inv) => !inv.verified).toList(); - if (unverified.isNotEmpty) { - fail("No more calls expected, but following found: " + unverified.join()); + if (mock is Mock) { + var unverified = mock._realCalls.where((inv) => !inv.verified).toList(); + if (unverified.isNotEmpty) { + fail("No more calls expected, but following found: " + unverified.join()); + } + } else { + _throwMockArgumentError('verifyNoMoreInteractions'); } } void verifyZeroInteractions(var mock) { - if (mock is! Mock) _throwMockArgumentError('verifyZeroInteractions'); - if (mock._realCalls.isNotEmpty) { - fail("No interaction expected, but following found: " + - mock._realCalls.join()); + if (mock is Mock) { + if (mock._realCalls.isNotEmpty) { + fail("No interaction expected, but following found: " + + mock._realCalls.join()); + } + } else { + _throwMockArgumentError('verifyZeroInteractions'); } }