1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
#ifndef CPPUNIT_ASSERTER_H
#define CPPUNIT_ASSERTER_H
#include <cppunit/Portability.h>
#include <cppunit/SourceLine.h>
#include <string>
namespace CppUnit
{
/*! \brief A set of functions to help writing assertion macros.
* \ingroup CreatingNewAssertions
*
* Here is an example of assertion, a simplified version of the
* actual assertion implemented in examples/cppunittest/XmlUniformiser.h:
* \code
* #include <cppunit/SourceLine.h>
* #include <cppunit/TestAssert.h>
*
* void
* checkXmlEqual( std::string expectedXml,
* std::string actualXml,
* CppUnit::SourceLine sourceLine )
* {
* std::string expected = XmlUniformiser( expectedXml ).stripped();
* std::string actual = XmlUniformiser( actualXml ).stripped();
*
* if ( expected == actual )
* return;
*
* ::CppUnit::Asserter::failNotEqual( expected,
* actual,
* sourceLine );
* }
*
* /// Asserts that two XML strings are equivalent.
* #define CPPUNITTEST_ASSERT_XML_EQUAL( expected, actual ) \
* checkXmlEqual( expected, actual, \
* CPPUNIT_SOURCELINE() )
* \endcode
*/
namespace Asserter
{
/*! Throws a Exception with the specified message and location.
*/
void CPPUNIT_API fail( std::string message,
SourceLine sourceLine = SourceLine() );
/*! Throws a Exception with the specified message and location.
* \param shouldFail if \c true then the exception is thrown. Otherwise
* nothing happen.
* \param message Message explaining the assertion failiure.
* \param sourceLine Location of the assertion.
*/
void CPPUNIT_API failIf( bool shouldFail,
std::string message,
SourceLine sourceLine = SourceLine() );
/*! Throws a NotEqualException with the specified message and location.
* \param expected Text describing the expected value.
* \param actual Text describing the actual value.
* \param additionalMessage Additional message. Usually used to report
* where the "difference" is located.
* \param sourceLine Location of the assertion.
*/
void CPPUNIT_API failNotEqual( std::string expected,
std::string actual,
SourceLine sourceLine = SourceLine(),
std::string additionalMessage ="" );
/*! Throws a NotEqualException with the specified message and location.
* \param shouldFail if \c true then the exception is thrown. Otherwise
* nothing happen.
* \param expected Text describing the expected value.
* \param actual Text describing the actual value.
* \param additionalMessage Additional message. Usually used to report
* where the "difference" is located.
* \param sourceLine Location of the assertion.
*/
void CPPUNIT_API failNotEqualIf( bool shouldFail,
std::string expected,
std::string actual,
SourceLine sourceLine = SourceLine(),
std::string additionalMessage ="" );
} // namespace Asserter
} // namespace CppUnit
#endif // CPPUNIT_ASSERTER_H