mirror of
https://github.com/mat007/turtle.git
synced 2026-06-22 12:13:43 +00:00
Added support for mocking conversion operators
git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@141 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
parent
a2cf4dbb02
commit
14a788557b
2 changed files with 59 additions and 0 deletions
|
|
@ -232,6 +232,17 @@ namespace detail
|
|||
~T() { MOCK_ANONYMOUS_MOCKER_EXT(this, ~T, t).test(); } \
|
||||
MOCK_METHOD_EXPECTATION(void(), t)
|
||||
|
||||
#define MOCK_CONST_CONVERSION_OPERATOR(T, t) \
|
||||
operator T() const { return MOCK_ANONYMOUS_MOCKER_EXT(this, operator T, t)(); } \
|
||||
MOCK_METHOD_EXPECTATION(T(), t)
|
||||
#define MOCK_NON_CONST_CONVERSION_OPERATOR(T, t) \
|
||||
operator T() { return MOCK_ANONYMOUS_MOCKER_EXT(this, operator T, t)(); } \
|
||||
MOCK_METHOD_EXPECTATION(T(), t)
|
||||
#define MOCK_CONVERSION_OPERATOR(T, t) \
|
||||
operator T() const { return MOCK_ANONYMOUS_MOCKER_EXT(this, operator T, t)(); } \
|
||||
operator T() { return MOCK_ANONYMOUS_MOCKER_EXT(this, operator T, t)(); } \
|
||||
MOCK_METHOD_EXPECTATION(T(), 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()
|
||||
|
|
|
|||
|
|
@ -103,6 +103,54 @@ BOOST_AUTO_TEST_CASE( mock_addition_operator )
|
|||
mock += 1;
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
MOCK_CLASS( mock_class_with_conversion_operator )
|
||||
{
|
||||
MOCK_CONVERSION_OPERATOR( int, conversion )
|
||||
};
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE( mock_conversion_operator )
|
||||
{
|
||||
mock_class_with_conversion_operator mock;
|
||||
MOCK_EXPECT( mock, conversion ).once().returns( 42 );
|
||||
int i = mock;
|
||||
BOOST_CHECK_EQUAL( 42, i );
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
MOCK_CLASS( mock_class_with_const_conversion_operator )
|
||||
{
|
||||
MOCK_CONST_CONVERSION_OPERATOR( int, conversion )
|
||||
};
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE( mock_const_conversion_operator )
|
||||
{
|
||||
mock_class_with_const_conversion_operator mock;
|
||||
MOCK_EXPECT( mock, conversion ).once().returns( 42 );
|
||||
int i = mock;
|
||||
BOOST_CHECK_EQUAL( 42, i );
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
MOCK_CLASS( mock_class_with_non_const_conversion_operator )
|
||||
{
|
||||
MOCK_CONST_CONVERSION_OPERATOR( int, conversion )
|
||||
};
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE( mock_non_const_conversion_operator )
|
||||
{
|
||||
mock_class_with_non_const_conversion_operator mock;
|
||||
MOCK_EXPECT( mock, conversion ).once().returns( 42 );
|
||||
int i = mock;
|
||||
BOOST_CHECK_EQUAL( 42, i );
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
MOCK_CLASS( my_mock )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue