diff options
Diffstat (limited to 'examples/cppunittest/HelperMacrosTest.cpp')
-rw-r--r-- | examples/cppunittest/HelperMacrosTest.cpp | 91 |
1 files changed, 89 insertions, 2 deletions
diff --git a/examples/cppunittest/HelperMacrosTest.cpp b/examples/cppunittest/HelperMacrosTest.cpp index a7b0ddc..f6720f0 100644 --- a/examples/cppunittest/HelperMacrosTest.cpp +++ b/examples/cppunittest/HelperMacrosTest.cpp @@ -1,12 +1,63 @@ -#include "HelperMacrosTest.h" -#include "SubclassedTestCase.h" #include <cppunit/TestResult.h> #include <memory> +#include "FailureException.h" +#include "HelperMacrosTest.h" +#include "SubclassedTestCase.h" /* Note: - no unit test for CPPUNIT_TEST_SUITE_REGISTRATION... */ +class FailTestCase : public CppUnit::TestCase +{ + CPPUNIT_TEST_SUITE( FailTestCase ); + CPPUNIT_TEST_FAIL( testFail ); + CPPUNIT_TEST_SUITE_END(); +public: + void testFail() + { + CPPUNIT_ASSERT_MESSAGE( "Failure", false ); + } +}; + + +class FailToFailTestCase : public CppUnit::TestCase +{ + CPPUNIT_TEST_SUITE( FailToFailTestCase ); + CPPUNIT_TEST_FAIL( testFailToFail ); + CPPUNIT_TEST_SUITE_END(); +public: + void testFailToFail() + { + } +}; + + +class ExceptionTestCase : public CppUnit::TestCase +{ + CPPUNIT_TEST_SUITE( ExceptionTestCase ); + CPPUNIT_TEST_EXCEPTION( testException, FailureException ); + CPPUNIT_TEST_SUITE_END(); +public: + void testException() + { + throw FailureException(); + } +}; + + +class ExceptionNotCaughtTestCase : public CppUnit::TestCase +{ + CPPUNIT_TEST_SUITE( ExceptionNotCaughtTestCase ); + CPPUNIT_TEST_EXCEPTION( testExceptionNotCaught, FailureException ); + CPPUNIT_TEST_SUITE_END(); +public: + void testExceptionNotCaught() + { + } +}; + + CPPUNIT_TEST_SUITE_REGISTRATION( HelperMacrosTest ); @@ -59,6 +110,42 @@ HelperMacrosTest::testSubclassing() void +HelperMacrosTest::testFail() +{ + std::auto_ptr<CppUnit::TestSuite> suite( FailTestCase::suite() ); + suite->run( m_result ); + checkTestResult( 0,0,1 ); +} + + +void +HelperMacrosTest::testFailToFail() +{ + std::auto_ptr<CppUnit::TestSuite> suite( FailToFailTestCase::suite() ); + suite->run( m_result ); + checkTestResult( 1,0,1 ); +} + + +void +HelperMacrosTest::testException() +{ + std::auto_ptr<CppUnit::TestSuite> suite( ExceptionTestCase::suite() ); + suite->run( m_result ); + checkTestResult( 0,0,1 ); +} + + +void +HelperMacrosTest::testExceptionNotCaught() +{ + std::auto_ptr<CppUnit::TestSuite> suite( ExceptionNotCaughtTestCase::suite() ); + suite->run( m_result ); + checkTestResult( 1,0,1 ); +} + + +void HelperMacrosTest::checkTestResult( int expectedFailures, int expectedErrors, int expectedTestsRun ) |