From f4ceb3cdfc9cadf4a0bcca9feacd83b40f9b566d Mon Sep 17 00:00:00 2001 From: mat007 Date: Sat, 15 Jan 2011 10:03:31 +0000 Subject: [PATCH] Fixed a regression with mock::any needing the parameter type to be defined instead of only declared git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@190 860be788-9bd5-4423-9f1e-828f051e677b --- src/libraries/turtle/constraints.hpp | 3 +-- src/tests/turtle_test/integration_test.cpp | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/libraries/turtle/constraints.hpp b/src/libraries/turtle/constraints.hpp index 8bac47c..79fd9a9 100644 --- a/src/libraries/turtle/constraints.hpp +++ b/src/libraries/turtle/constraints.hpp @@ -25,7 +25,6 @@ namespace mock template< typename Actual > \ bool operator()( const Actual& actual ) const \ { \ - (void)actual; \ return Expr; \ } \ friend std::ostream& operator<<( std::ostream& s, const N& ) \ @@ -43,7 +42,7 @@ namespace mock }; \ const constraint< detail::N > N; - MOCK_CONSTRAINT( any, true ) + MOCK_CONSTRAINT( any, true && &actual ) MOCK_CONSTRAINT( negate, ! actual ) MOCK_CONSTRAINT( evaluate, actual() ) diff --git a/src/tests/turtle_test/integration_test.cpp b/src/tests/turtle_test/integration_test.cpp index 373d7d1..c52d049 100644 --- a/src/tests/turtle_test/integration_test.cpp +++ b/src/tests/turtle_test/integration_test.cpp @@ -127,6 +127,22 @@ BOOST_AUTO_TEST_CASE( mock_object_method_const_disambiguation ) BOOST_CHECK_THROW( const_mock.my_method(), std::exception ); } +namespace +{ + struct my_declared_but_undefined_type; + + MOCK_CLASS( my_declared_but_undefined_mock ) + { + MOCK_METHOD_EXT( m, 1, void( my_declared_but_undefined_type& ), m ) + }; +} + +BOOST_AUTO_TEST_CASE( mock_object_method_with_declared_but_not_defined_parameter_is_valid ) +{ + my_declared_but_undefined_mock mock; + MOCK_EXPECT( mock, m ); +} + BOOST_AUTO_TEST_CASE( mock_functor_in_function_is_supported ) { boost::function< int( float, const std::string& ) > func;