Return actions now accept by copy types derived from abstract base types

git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@612 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
mat007 2013-03-30 19:11:52 +00:00
parent 1ddf17d1c1
commit 02e2b4bbfd
2 changed files with 40 additions and 4 deletions

View file

@ -431,8 +431,15 @@ BOOST_FIXTURE_TEST_CASE( triggering_an_expectation_returns_the_set_value, error_
namespace
{
struct A {};
struct B : A {};
struct A
{
virtual void f() = 0;
};
struct B : A
{
virtual void f()
{}
};
}
BOOST_FIXTURE_TEST_CASE( triggering_an_expectation_returns_the_set_auto_ptr_value, error_fixture )
@ -488,6 +495,24 @@ BOOST_FIXTURE_TEST_CASE( triggering_an_expectation_returns_the_set_auto_ptr_valu
BOOST_CHECK_NO_THROW( f() );
CHECK_CALLS( 1 );
}
{
mock::detail::function< A&() > f;
B b;
f.expect().returns( boost::ref( b ) );
BOOST_CHECK_NO_THROW( f() );
CHECK_CALLS( 1 );
}
{
mock::detail::function< A&() > f;
B b;
f.expect().returns( b );
BOOST_CHECK_NO_THROW( f() );
CHECK_CALLS( 1 );
}
//{
// mock::detail::function< A&() > f;
// f.expect().returns( 3 );
//}
}
namespace