Refactored error policy to simplify test frameworks integration

git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@536 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
mat007 2012-07-31 10:36:00 +00:00
parent 032e3b8a70
commit 610405b750
5 changed files with 84 additions and 151 deletions

View file

@ -54,11 +54,11 @@ namespace detail
it != expectations_.end(); ++it )
{
if( ! it->verify() )
error_type::untriggered_expectation(
error_type::fail( "untriggered expectation",
boost::unit_test::lazy_ostream::instance()
<< *this, it->file(), it->line() );
else if( ! it->invoked() )
error_type::expected_call(
error_type::call(
boost::unit_test::lazy_ostream::instance()
<< *this, it->file(), it->line() );
}
@ -73,7 +73,7 @@ namespace detail
if( !it->verify() )
{
valid_ = false;
error_type::verification_failed(
error_type::fail( "verification failed",
boost::unit_test::lazy_ostream::instance()
<< *this, it->file(), it->line() );
}
@ -112,23 +112,23 @@ namespace detail
{
if( ! it->invoke() )
{
error_type::sequence_failed(
error_type::fail( "sequence failed",
MOCK_CONTEXT, it->file(), it->line() );
return error_type::abort();
}
if( ! it->functor() )
{
error_type::missing_action(
error_type::fail( "missing action",
MOCK_CONTEXT, it->file(), it->line() );
return error_type::abort();
}
valid_ = true;
error_type::expected_call(
error_type::call(
MOCK_CONTEXT, it->file(), it->line() );
return it->functor()(
BOOST_PP_ENUM_PARAMS(MOCK_NUM_ARGS, t) );
}
error_type::unexpected_call( MOCK_CONTEXT );
error_type::fail( "unexpected call", MOCK_CONTEXT );
return error_type::abort();
}

View file

@ -45,7 +45,7 @@ namespace detail
}
bool verify( const char* file, int line ) const
{
error_type::checkpoint( file, line );
error_type::pass( file, line );
return impl_->verify();
}
void reset()
@ -54,13 +54,13 @@ namespace detail
}
void reset( const char* file, int line )
{
error_type::checkpoint( file, line );
error_type::pass( file, line );
impl_->reset();
}
expectation_type& expect( const char* file, int line )
{
error_type::checkpoint( file, line );
error_type::pass( file, line );
return impl_->expect();
}
expectation_type& expect()