diff --git a/src/libraries/turtle/constraints.hpp b/src/libraries/turtle/constraints.hpp index 2b80060..74a58ed 100644 --- a/src/libraries/turtle/constraints.hpp +++ b/src/libraries/turtle/constraints.hpp @@ -44,6 +44,7 @@ namespace mock const constraint< detail::N > N; MOCK_CONSTRAINT(any, true && &actual) + MOCK_CONSTRAINT(affirm, !! actual) MOCK_CONSTRAINT(negate, ! actual) MOCK_CONSTRAINT(evaluate, actual()) diff --git a/src/tests/turtle_test/constraints_test.cpp b/src/tests/turtle_test/constraints_test.cpp index 6d82b95..05af23f 100644 --- a/src/tests/turtle_test/constraints_test.cpp +++ b/src/tests/turtle_test/constraints_test.cpp @@ -25,6 +25,7 @@ BOOST_AUTO_TEST_CASE( all_comparison_constraints_can_be_instanciated ) BOOST_AUTO_TEST_CASE( constraints_can_be_negated_using_the_not_operator ) { ! mock::any; + ! mock::affirm; ! mock::negate; ! mock::evaluate; ! mock::equal( 0 ); @@ -231,6 +232,14 @@ BOOST_AUTO_TEST_CASE( retrieve_uses_assignment_operator ) mock::retrieve( b ).f_( a ); } +BOOST_AUTO_TEST_CASE( affirm ) +{ + int* i = 0; + int j; + BOOST_CHECK( ! mock::affirm.f_( i ) ); + BOOST_CHECK( mock::affirm.f_( &j ) ); +} + BOOST_AUTO_TEST_CASE( negate ) { int* i = 0;