Blame include/cppunit/Asserter.h

Packit 8c9aa0
#ifndef CPPUNIT_ASSERTER_H
Packit 8c9aa0
#define CPPUNIT_ASSERTER_H
Packit 8c9aa0
Packit 8c9aa0
#include <cppunit/AdditionalMessage.h>
Packit 8c9aa0
#include <cppunit/SourceLine.h>
Packit 8c9aa0
#include <string>
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_NS_BEGIN
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
class Message;
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
/*! \brief A set of functions to help writing assertion macros.
Packit 8c9aa0
 * \ingroup CreatingNewAssertions
Packit 8c9aa0
 *
Packit 8c9aa0
 * Here is an example of assertion, a simplified version of the
Packit 8c9aa0
 * actual assertion implemented in examples/cppunittest/XmlUniformiser.h:
Packit 8c9aa0
 * \code
Packit 8c9aa0
 * #include <cppunit/SourceLine.h>
Packit 8c9aa0
 * #include <cppunit/TestAssert.h>
Packit 8c9aa0
 * 
Packit 8c9aa0
 * void 
Packit 8c9aa0
 * checkXmlEqual( std::string expectedXml,
Packit 8c9aa0
 *                std::string actualXml,
Packit 8c9aa0
 *                CppUnit::SourceLine sourceLine )
Packit 8c9aa0
 * {
Packit 8c9aa0
 *   std::string expected = XmlUniformiser( expectedXml ).stripped();
Packit 8c9aa0
 *   std::string actual = XmlUniformiser( actualXml ).stripped();
Packit 8c9aa0
 * 
Packit 8c9aa0
 *   if ( expected == actual )
Packit 8c9aa0
 *     return;
Packit 8c9aa0
 * 
Packit 8c9aa0
 *   ::CppUnit::Asserter::failNotEqual( expected,
Packit 8c9aa0
 *                                      actual,
Packit 8c9aa0
 *                                      sourceLine );
Packit 8c9aa0
 * }
Packit 8c9aa0
 * 
Packit 8c9aa0
 * /// Asserts that two XML strings are equivalent.
Packit 8c9aa0
 * #define CPPUNITTEST_ASSERT_XML_EQUAL( expected, actual ) \
Packit 8c9aa0
 *     checkXmlEqual( expected, actual,                     \
Packit 8c9aa0
 *                    CPPUNIT_SOURCELINE() )
Packit 8c9aa0
 * \endcode
Packit 8c9aa0
 */
Packit 8c9aa0
Packit 8c9aa0
#if defined __GNUC__
Packit 8c9aa0
#   define NORETURN __attribute__((noreturn))
Packit 8c9aa0
#else
Packit 8c9aa0
#   define NORETURN
Packit 8c9aa0
#endif
Packit 8c9aa0
Packit 8c9aa0
struct Asserter
Packit 8c9aa0
{
Packit 8c9aa0
  /*! \brief Throws a Exception with the specified message and location.
Packit 8c9aa0
   */
Packit 8c9aa0
  NORETURN static void CPPUNIT_API fail( const Message &message, 
Packit 8c9aa0
                                const SourceLine &sourceLine = SourceLine() );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Throws a Exception with the specified message and location.
Packit 8c9aa0
   * \deprecated Use fail( Message, SourceLine ) instead.
Packit 8c9aa0
   */
Packit 8c9aa0
  NORETURN static void CPPUNIT_API fail( std::string message, 
Packit 8c9aa0
                                const SourceLine &sourceLine = SourceLine() );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Throws a Exception with the specified message and location.
Packit 8c9aa0
   * \param shouldFail if \c true then the exception is thrown. Otherwise
Packit 8c9aa0
   *                   nothing happen.
Packit 8c9aa0
   * \param message Message explaining the assertion failiure.
Packit 8c9aa0
   * \param sourceLine Location of the assertion.
Packit 8c9aa0
   */
Packit 8c9aa0
  static void CPPUNIT_API failIf( bool shouldFail, 
Packit 8c9aa0
                                  const Message &message, 
Packit 8c9aa0
                                  const SourceLine &sourceLine = SourceLine() );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Throws a Exception with the specified message and location.
Packit 8c9aa0
   * \deprecated Use failIf( bool, Message, SourceLine ) instead.
Packit 8c9aa0
   * \param shouldFail if \c true then the exception is thrown. Otherwise
Packit 8c9aa0
   *                   nothing happen.
Packit 8c9aa0
   * \param message Message explaining the assertion failiure.
Packit 8c9aa0
   * \param sourceLine Location of the assertion.
Packit 8c9aa0
   */
Packit 8c9aa0
  static void CPPUNIT_API failIf( bool shouldFail, 
Packit 8c9aa0
                                  std::string message, 
Packit 8c9aa0
                                  const SourceLine &sourceLine = SourceLine() );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Returns a expected value string for a message, case equal than
Packit 8c9aa0
   * Typically used to create 'not equal' message, or to check that a message
Packit 8c9aa0
   * contains the expected content when writing unit tests for your custom 
Packit 8c9aa0
   * assertions.
Packit 8c9aa0
   *
Packit 8c9aa0
   * \param expectedValue String that represents the expected value.
Packit 8c9aa0
   * \return \a expectedValue prefixed with "Expected: ".
Packit 8c9aa0
   * \deprecated Use makeExpectedEqual instead
Packit 8c9aa0
   * \see makeActual().
Packit 8c9aa0
   */
Packit 8c9aa0
  static std::string CPPUNIT_API makeExpected( const std::string &expectedValue );
Packit 8c9aa0
  /*! \brief Returns a expected value string for a message, case equal than
Packit 8c9aa0
   * Typically used to create 'not equal' message, or to check that a message
Packit 8c9aa0
   * contains the expected content when writing unit tests for your custom 
Packit 8c9aa0
   * assertions.
Packit 8c9aa0
   *
Packit 8c9aa0
   * \param expectedValue String that represents the expected value.
Packit 8c9aa0
   * \return \a expectedValue prefixed with "Expected: ".
Packit 8c9aa0
   * \see makeActual().
Packit 8c9aa0
   */
Packit 8c9aa0
  static std::string CPPUNIT_API makeExpectedEqual( const std::string &expectedValue );
Packit 8c9aa0
  /*! \brief Returns a expected value string for a message, case less than.
Packit 8c9aa0
   *
Packit 8c9aa0
   * \param expectedValue String that represents the expected value.
Packit 8c9aa0
   * \return \a expectedValue prefixed with "Expected less than: ".
Packit 8c9aa0
   * \see makeExpectedEqual().
Packit 8c9aa0
   */
Packit 8c9aa0
  static std::string CPPUNIT_API makeExpectedLess( const std::string &expectedValue );
Packit 8c9aa0
  /*! \brief Returns a expected value string for a message, case less or equal than.
Packit 8c9aa0
   *
Packit 8c9aa0
   * \param expectedValue String that represents the expected value.
Packit 8c9aa0
   * \return \a expectedValue prefixed with "Expected: ".
Packit 8c9aa0
   * \see makeExpectedEqual().
Packit 8c9aa0
   */
Packit 8c9aa0
  static std::string CPPUNIT_API makeExpectedLessEqual( const std::string &expectedValue );
Packit 8c9aa0
  /*! \brief Returns a expected value string for a message, case greater than.
Packit 8c9aa0
   *
Packit 8c9aa0
   * \param expectedValue String that represents the expected value.
Packit 8c9aa0
   * \return \a expectedValue prefixed with "Expected: ".
Packit 8c9aa0
   * \see makeExpectedEqual().
Packit 8c9aa0
   */
Packit 8c9aa0
  static std::string CPPUNIT_API makeExpectedGreater( const std::string &expectedValue );
Packit 8c9aa0
  /*! \brief Returns a expected value string for a message, greater or equal than.
Packit 8c9aa0
   *
Packit 8c9aa0
   * \param expectedValue String that represents the expected value.
Packit 8c9aa0
   * \return \a expectedValue prefixed with "Expected: ".
Packit 8c9aa0
   * \see makeExpectedEqual().
Packit 8c9aa0
   */
Packit 8c9aa0
  static std::string CPPUNIT_API makeExpectedGreaterEqual( const std::string &expectedValue );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Returns an actual value string for a message.
Packit 8c9aa0
   * Typically used to create 'not equal' message, or to check that a message
Packit 8c9aa0
   * contains the expected content when writing unit tests for your custom 
Packit 8c9aa0
   * assertions.
Packit 8c9aa0
   *
Packit 8c9aa0
   * \param actualValue String that represents the actual value.
Packit 8c9aa0
   * \return \a actualValue prefixed with "Actual  : ".
Packit 8c9aa0
   * \see makeExpected().
Packit 8c9aa0
   */
Packit 8c9aa0
  static std::string CPPUNIT_API makeActual( const std::string &actualValue );
Packit 8c9aa0
Packit 8c9aa0
  /*!
Packit 8c9aa0
   * \deprecated Use makeMessage instead
Packit 8c9aa0
   */ 
Packit 8c9aa0
  static Message CPPUNIT_API makeNotEqualMessage( const std::string &expectedValue,
Packit 8c9aa0
                                                  const std::string &actualValue,
Packit 8c9aa0
                                                  const AdditionalMessage &additionalMessage = AdditionalMessage(),
Packit 8c9aa0
                                                  const std::string &shortDescription = "equality assertion failed");
Packit 8c9aa0
Packit 8c9aa0
  static Message CPPUNIT_API makeMessage( const std::string &expectedValue,
Packit 8c9aa0
                                                  const std::string &actualValue,
Packit 8c9aa0
                                                  const std::string &shortDescription,
Packit 8c9aa0
                                                  const AdditionalMessage &additionalMessage = AdditionalMessage());
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Throws an Exception with the specified message and location.
Packit 8c9aa0
   * \param expected Text describing the expected value.
Packit 8c9aa0
   * \param actual Text describing the actual value.
Packit 8c9aa0
   * \param sourceLine Location of the assertion.
Packit 8c9aa0
   * \param additionalMessage Additional message. Usually used to report
Packit 8c9aa0
   *                          what are the differences between the expected and actual value.
Packit 8c9aa0
   * \param shortDescription Short description for the failure message.
Packit 8c9aa0
   */
Packit 8c9aa0
  NORETURN static void CPPUNIT_API failNotEqual( std::string expected, 
Packit 8c9aa0
                                        std::string actual, 
Packit 8c9aa0
                                        const SourceLine &sourceLine,
Packit 8c9aa0
                                        const AdditionalMessage &additionalMessage = AdditionalMessage(),
Packit 8c9aa0
                                        std::string shortDescription = "equality assertion failed" );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Throws an Exception with the specified message and location.
Packit 8c9aa0
   * \param expected Text describing the expected value.
Packit 8c9aa0
   * \param actual Text describing the actual value.
Packit 8c9aa0
   * \param sourceLine Location of the assertion.
Packit 8c9aa0
   * \param additionalMessage Additional message. Usually used to report
Packit 8c9aa0
   *                          what are the differences between the expected and actual value.
Packit 8c9aa0
   * \param shortDescription Short description for the failure message.
Packit 8c9aa0
   */
Packit 8c9aa0
  static void CPPUNIT_API failNotLess( std::string expected, 
Packit 8c9aa0
                                        std::string actual, 
Packit 8c9aa0
                                        const SourceLine &sourceLine,
Packit 8c9aa0
                                        const AdditionalMessage &additionalMessage = AdditionalMessage(),
Packit 8c9aa0
                                        std::string shortDescription = "less assertion failed" );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Throws an Exception with the specified message and location.
Packit 8c9aa0
   * \param expected Text describing the expected value.
Packit 8c9aa0
   * \param actual Text describing the actual value.
Packit 8c9aa0
   * \param sourceLine Location of the assertion.
Packit 8c9aa0
   * \param additionalMessage Additional message. Usually used to report
Packit 8c9aa0
   *                          what are the differences between the expected and actual value.
Packit 8c9aa0
   * \param shortDescription Short description for the failure message.
Packit 8c9aa0
   */
Packit 8c9aa0
  static void CPPUNIT_API failNotGreater( std::string expected, 
Packit 8c9aa0
                                        std::string actual, 
Packit 8c9aa0
                                        const SourceLine &sourceLine,
Packit 8c9aa0
                                        const AdditionalMessage &additionalMessage = AdditionalMessage(),
Packit 8c9aa0
                                        std::string shortDescription = "greater assertion failed" );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Throws an Exception with the specified message and location.
Packit 8c9aa0
   * \param expected Text describing the expected value.
Packit 8c9aa0
   * \param actual Text describing the actual value.
Packit 8c9aa0
   * \param sourceLine Location of the assertion.
Packit 8c9aa0
   * \param additionalMessage Additional message. Usually used to report
Packit 8c9aa0
   *                          what are the differences between the expected and actual value.
Packit 8c9aa0
   * \param shortDescription Short description for the failure message.
Packit 8c9aa0
   */
Packit 8c9aa0
  static void CPPUNIT_API failNotLessEqual( std::string expected, 
Packit 8c9aa0
                                        std::string actual, 
Packit 8c9aa0
                                        const SourceLine &sourceLine,
Packit 8c9aa0
                                        const AdditionalMessage &additionalMessage = AdditionalMessage(),
Packit 8c9aa0
                                        std::string shortDescription = "less equal assertion failed" );
Packit 8c9aa0
Packit 8c9aa0
  /*! \brief Throws an Exception with the specified message and location.
Packit 8c9aa0
   * \param expected Text describing the expected value.
Packit 8c9aa0
   * \param actual Text describing the actual value.
Packit 8c9aa0
   * \param sourceLine Location of the assertion.
Packit 8c9aa0
   * \param additionalMessage Additional message. Usually used to report
Packit 8c9aa0
   *                          what are the differences between the expected and actual value.
Packit 8c9aa0
   * \param shortDescription Short description for the failure message.
Packit 8c9aa0
   */
Packit 8c9aa0
  static void CPPUNIT_API failNotGreaterEqual( std::string expected, 
Packit 8c9aa0
                                        std::string actual, 
Packit 8c9aa0
                                        const SourceLine &sourceLine,
Packit 8c9aa0
                                        const AdditionalMessage &additionalMessage = AdditionalMessage(),
Packit 8c9aa0
                                        std::string shortDescription = "greater equal assertion failed" );  /*! \brief Throws an Exception with the specified message and location.
Packit 8c9aa0
Packit 8c9aa0
   * \param shouldFail if \c true then the exception is thrown. Otherwise
Packit 8c9aa0
   *                   nothing happen.
Packit 8c9aa0
   * \param expected Text describing the expected value.
Packit 8c9aa0
   * \param actual Text describing the actual value.
Packit 8c9aa0
   * \param sourceLine Location of the assertion.
Packit 8c9aa0
   * \param additionalMessage Additional message. Usually used to report
Packit 8c9aa0
   *                          where the "difference" is located.
Packit 8c9aa0
   * \param shortDescription Short description for the failure message.
Packit 8c9aa0
   */
Packit 8c9aa0
  static void CPPUNIT_API failNotEqualIf( bool shouldFail,
Packit 8c9aa0
                                          std::string expected, 
Packit 8c9aa0
                                          std::string actual, 
Packit 8c9aa0
                                          const SourceLine &sourceLine,
Packit 8c9aa0
                                          const AdditionalMessage &additionalMessage = AdditionalMessage(),
Packit 8c9aa0
                                          std::string shortDescription = "equality assertion failed" );
Packit 8c9aa0
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_NS_END
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
#endif  // CPPUNIT_ASSERTER_H