152a38012Sejakowatz #include "cppunit/Exception.h" 252a38012Sejakowatz #include "cppunit/Test.h" 352a38012Sejakowatz #include "cppunit/TestFailure.h" 452a38012Sejakowatz 5*58481f0fSOliver Tappe using std::string; 6*58481f0fSOliver Tappe 752a38012Sejakowatz namespace CppUnit { 852a38012Sejakowatz 952a38012Sejakowatz /// Constructs a TestFailure with the given test and exception. TestFailure(Test * failedTest,Exception * thrownException,bool isError)1052a38012SejakowatzTestFailure::TestFailure( Test *failedTest, 1152a38012Sejakowatz Exception *thrownException, 1252a38012Sejakowatz bool isError ) : 1352a38012Sejakowatz m_failedTest( failedTest ), 1452a38012Sejakowatz m_thrownException( thrownException ), 1552a38012Sejakowatz m_isError( isError ) 1652a38012Sejakowatz { 1752a38012Sejakowatz } 1852a38012Sejakowatz 1952a38012Sejakowatz /// Deletes the owned exception. ~TestFailure()2052a38012SejakowatzTestFailure::~TestFailure() 2152a38012Sejakowatz { 2252a38012Sejakowatz delete m_thrownException; 2352a38012Sejakowatz } 2452a38012Sejakowatz 2552a38012Sejakowatz /// Gets the failed test. 2652a38012Sejakowatz Test * failedTest() const2752a38012SejakowatzTestFailure::failedTest() const 2852a38012Sejakowatz { 2952a38012Sejakowatz return m_failedTest; 3052a38012Sejakowatz } 3152a38012Sejakowatz 3252a38012Sejakowatz 3352a38012Sejakowatz /// Gets the thrown exception. Never \c NULL. 3452a38012Sejakowatz Exception * thrownException() const3552a38012SejakowatzTestFailure::thrownException() const 3652a38012Sejakowatz { 3752a38012Sejakowatz return m_thrownException; 3852a38012Sejakowatz } 3952a38012Sejakowatz 4052a38012Sejakowatz 4152a38012Sejakowatz /// Gets the failure location. 4252a38012Sejakowatz SourceLine sourceLine() const4352a38012SejakowatzTestFailure::sourceLine() const 4452a38012Sejakowatz { 4552a38012Sejakowatz return m_thrownException->sourceLine(); 4652a38012Sejakowatz } 4752a38012Sejakowatz 4852a38012Sejakowatz 4952a38012Sejakowatz /// Indicates if the failure is a failed assertion or an error. 5052a38012Sejakowatz bool isError() const5152a38012SejakowatzTestFailure::isError() const 5252a38012Sejakowatz { 5352a38012Sejakowatz return m_isError; 5452a38012Sejakowatz } 5552a38012Sejakowatz 5652a38012Sejakowatz 5752a38012Sejakowatz /// Gets the name of the failed test. 58aa94570aSIngo Weinhold string failedTestName() const5952a38012SejakowatzTestFailure::failedTestName() const 6052a38012Sejakowatz { 6152a38012Sejakowatz return m_failedTest->getName(); 6252a38012Sejakowatz } 6352a38012Sejakowatz 6452a38012Sejakowatz 6552a38012Sejakowatz /// Returns a short description of the failure. 66aa94570aSIngo Weinhold string toString() const6752a38012SejakowatzTestFailure::toString() const 6852a38012Sejakowatz { 6952a38012Sejakowatz return m_failedTest->toString() + ": " + m_thrownException->what(); 7052a38012Sejakowatz } 7152a38012Sejakowatz 7252a38012Sejakowatz 7352a38012Sejakowatz TestFailure * clone() const7452a38012SejakowatzTestFailure::clone() const 7552a38012Sejakowatz { 7652a38012Sejakowatz return new TestFailure( m_failedTest, m_thrownException->clone(), m_isError ); 7752a38012Sejakowatz } 7852a38012Sejakowatz 7952a38012Sejakowatz } // namespace CppUnit 80