From 51379e784417e18630d2d18a929fd342085e1ae0 Mon Sep 17 00:00:00 2001 From: mat007 Date: Sat, 21 Nov 2009 10:52:41 +0000 Subject: [PATCH] Added a macro to help mocking a destructor git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@66 860be788-9bd5-4423-9f1e-828f051e677b --- src/libraries/turtle/mock.hpp | 4 ++++ src/tests/turtle_test/mock_test.cpp | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/libraries/turtle/mock.hpp b/src/libraries/turtle/mock.hpp index 1ef0846..73ebf12 100644 --- a/src/libraries/turtle/mock.hpp +++ b/src/libraries/turtle/mock.hpp @@ -196,6 +196,10 @@ namespace detail #define MOCK_METHOD_TPL(M, n) \ MOCK_METHOD_EXT_TPL(M, n, MOCK_SIGNATURE_TPL(M), M) +#define MOCK_DESTRUCTOR( T, t ) \ + ~T() { exp##t(); } \ + MOCK_METHOD_EXPECTATION(void(), t) + #define MOCK_EXPECT(o,t) MOCK_MOCKER(o,t).expect( __FILE__, __LINE__ ) #define MOCK_RESET(o,t) MOCK_MOCKER(o,t).reset() #define MOCK_VERIFY(o,t) MOCK_MOCKER(o,t).verify() diff --git a/src/tests/turtle_test/mock_test.cpp b/src/tests/turtle_test/mock_test.cpp index 7e0cdd5..2ecf7c8 100644 --- a/src/tests/turtle_test/mock_test.cpp +++ b/src/tests/turtle_test/mock_test.cpp @@ -202,3 +202,17 @@ BOOST_AUTO_TEST_CASE( mock_functor_with_tag_has_no_effect ) f.tag( "my functor" ); BOOST_CHECK_EQUAL( "f", to_string( MOCK_MOCKER( f, _ ) ) ); } + +namespace +{ + MOCK_CLASS( my_destroyed_class ) + { + MOCK_DESTRUCTOR( my_destroyed_class, destructor ) + }; +} + +BOOST_AUTO_TEST_CASE( mocking_a_destructor ) +{ + my_destroyed_class c; + MOCK_EXPECT( c, destructor ).once(); +}