From a03f8d7ceb5d151d0957114ac7c33c8497adf75c Mon Sep 17 00:00:00 2001 From: mat007 Date: Sun, 30 Aug 2009 21:42:32 +0000 Subject: [PATCH] Strings are surrounded with " by mock::format git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@11 860be788-9bd5-4423-9f1e-828f051e677b --- src/libraries/turtle/check.hpp | 2 +- src/libraries/turtle/constraint.hpp | 2 +- src/libraries/turtle/expectation.hpp | 4 ++-- src/libraries/turtle/format.hpp | 14 ++++++++++++++ src/tests/turtle_test/expectation_test.cpp | 8 ++++---- src/tests/turtle_test/format_test.cpp | 20 +++++++++++++------- 6 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/libraries/turtle/check.hpp b/src/libraries/turtle/check.hpp index 05a0c40..0fe6590 100644 --- a/src/libraries/turtle/check.hpp +++ b/src/libraries/turtle/check.hpp @@ -46,7 +46,7 @@ namespace detail BOOST_DEDUCED_TYPENAME detail::is_functor< T >::type >::type* = 0 ) : functor_( equal( t ).functor_ ) - , desc_ ( detail::format( t ) ) + , desc_ ( mock::format( t ) ) { if( !functor_ ) std::invalid_argument( "invalid functor" ); diff --git a/src/libraries/turtle/constraint.hpp b/src/libraries/turtle/constraint.hpp index d1eefb8..00c0b40 100644 --- a/src/libraries/turtle/constraint.hpp +++ b/src/libraries/turtle/constraint.hpp @@ -35,7 +35,7 @@ namespace mock const T& t ) { return detail::placeholder< Functor >( f, - name + "( " + detail::format( t ) + " )" ); + name + "( " + format( t ) + " )" ); } namespace detail diff --git a/src/libraries/turtle/expectation.hpp b/src/libraries/turtle/expectation.hpp index 9a52199..cb286d7 100644 --- a/src/libraries/turtle/expectation.hpp +++ b/src/libraries/turtle/expectation.hpp @@ -130,9 +130,9 @@ namespace mock } #define MOCK_EXPECTATION_PARAMETER(z, n, d) BOOST_PP_COMMA_IF(n) const_cast< A##n & >( a##n ) -#define MOCK_EXPECTATION_DETAIL(z, n, d) + ", " + detail::format( a##n ) +#define MOCK_EXPECTATION_DETAIL(z, n, d) + ", " + format( a##n ) #define MOCK_EXPECTATION_PARAMETERS(n) \ - detail::format( a0 ) BOOST_PP_REPEAT_FROM_TO(1, n, MOCK_EXPECTATION_DETAIL, BOOST_PP_EMPTY) + format( a0 ) BOOST_PP_REPEAT_FROM_TO(1, n, MOCK_EXPECTATION_DETAIL, BOOST_PP_EMPTY) #define MOCK_EXPECTATION_OPERATOR(z, n, d) \ template< BOOST_PP_ENUM_PARAMS(n, typename A) > \ result_type operator()( BOOST_PP_ENUM_BINARY_PARAMS(n, const A, & a) ) const \ diff --git a/src/libraries/turtle/format.hpp b/src/libraries/turtle/format.hpp index 837df97..e42dc6c 100644 --- a/src/libraries/turtle/format.hpp +++ b/src/libraries/turtle/format.hpp @@ -72,6 +72,20 @@ namespace detail return "?"; } } + + template< typename T > + std::string format( const T& t ) + { + return detail::format( t ); + } + inline std::string format( const std::string& s ) + { + return '"' + s + '"'; + } + inline std::string format( const char* s ) + { + return '"' + std::string( s ) + '"'; + } } #endif // #ifndef MOCK_FORMAT_HPP_INCLUDED diff --git a/src/tests/turtle_test/expectation_test.cpp b/src/tests/turtle_test/expectation_test.cpp index c6f9a77..f3afde4 100644 --- a/src/tests/turtle_test/expectation_test.cpp +++ b/src/tests/turtle_test/expectation_test.cpp @@ -608,8 +608,8 @@ BOOST_AUTO_TEST_CASE( expectation_can_be_serialized_to_be_human_readable ) std::stringstream s; s << e; const std::string expected = "?\n" - "v expect( never() ).with( less( first ) )\n" - ". expect( exactly( 1/2 ) ).with( second )"; + "v expect( never() ).with( less( \"first\" ) )\n" + ". expect( exactly( 1/2 ) ).with( \"second\" )"; BOOST_CHECK_EQUAL( expected, s.str() ); } BOOST_CHECK_NO_THROW( e( "second" ) ); @@ -617,8 +617,8 @@ BOOST_AUTO_TEST_CASE( expectation_can_be_serialized_to_be_human_readable ) std::stringstream s; s << e; const std::string expected = "?\n" - "v expect( never() ).with( less( first ) )\n" - "v expect( exactly( 2/2 ) ).with( second )"; + "v expect( never() ).with( less( \"first\" ) )\n" + "v expect( exactly( 2/2 ) ).with( \"second\" )"; BOOST_CHECK_EQUAL( expected, s.str() ); } e.reset(); diff --git a/src/tests/turtle_test/format_test.cpp b/src/tests/turtle_test/format_test.cpp index 9769953..c17f09f 100644 --- a/src/tests/turtle_test/format_test.cpp +++ b/src/tests/turtle_test/format_test.cpp @@ -26,17 +26,17 @@ namespace BOOST_AUTO_TEST_CASE( type_not_serializable_in_standard_stream_yields_an_interrogation_mark_when_serialized ) { - BOOST_CHECK_EQUAL( "?", mock::detail::format( non_serializable_type() ) ); + BOOST_CHECK_EQUAL( "?", mock::format( non_serializable_type() ) ); } BOOST_AUTO_TEST_CASE( base_type_serializable_in_standard_stream_yields_its_value_when_serialized ) { - BOOST_CHECK_EQUAL( "42", mock::detail::format( 42 ) ); + BOOST_CHECK_EQUAL( "42", mock::format( 42 ) ); } BOOST_AUTO_TEST_CASE( custom_type_serializable_in_standard_stream_yields_its_value_when_serialized ) { - BOOST_CHECK_EQUAL( "serializable_type", mock::detail::format( serializable_type() ) ); + BOOST_CHECK_EQUAL( "serializable_type", mock::format( serializable_type() ) ); } namespace @@ -49,7 +49,7 @@ namespace BOOST_AUTO_TEST_CASE( custom_type_convertible_to_base_type_yields_its_value_when_serialized ) { - BOOST_CHECK_EQUAL( "0", mock::detail::format( convertible_to_int() ) ); + BOOST_CHECK_EQUAL( "0", mock::format( convertible_to_int() ) ); } namespace @@ -69,11 +69,17 @@ namespace BOOST_AUTO_TEST_CASE( custom_type_convertible_to_another_type_serializable_in_standard_stream_yields_its_value_when_serialized ) { - BOOST_CHECK_EQUAL( "serializable", mock::detail::format( convertible_to_serializable() ) ); + BOOST_CHECK_EQUAL( "serializable", mock::format( convertible_to_serializable() ) ); } BOOST_AUTO_TEST_CASE( booleans_are_serialized_as_booleans ) { - BOOST_CHECK_EQUAL( "true", mock::detail::format( true ) ); - BOOST_CHECK_EQUAL( "false", mock::detail::format( false ) ); + BOOST_CHECK_EQUAL( "true", mock::format( true ) ); + BOOST_CHECK_EQUAL( "false", mock::format( false ) ); +} + +BOOST_AUTO_TEST_CASE( strings_are_surrounded_with_double_quotes ) +{ + BOOST_CHECK_EQUAL( "\"string\"", mock::format( "string" ) ); + BOOST_CHECK_EQUAL( "\"string\"", mock::format( std::string( "string" ) ) ); }