1 #ifndef TESTFAILURETEST_H
2 #define TESTFAILURETEST_H
3 
4 #include <cppunit/extensions/HelperMacros.h>
5 
6 
7 class TestFailureTest : public CPPUNIT_NS::TestFixture
8 {
9   CPPUNIT_TEST_SUITE( TestFailureTest );
10   CPPUNIT_TEST( testConstructorAndGetters );
11   CPPUNIT_TEST( testConstructorAndGettersForError );
12   CPPUNIT_TEST_SUITE_END();
13 
14 public:
15   TestFailureTest();
16   virtual ~TestFailureTest();
17 
18   virtual void setUp();
19   virtual void tearDown();
20 
21   void testConstructorAndGetters();
22   void testConstructorAndGettersForError();
23 
24   void exceptionDestroyed();
25 
26 private:
27   class ObservedException : public CPPUNIT_NS::Exception
28   {
29   public:
ObservedException(TestFailureTest * listener)30     ObservedException( TestFailureTest *listener ) :
31         CPPUNIT_NS::Exception( CPPUNIT_NS::Message("ObservedException" ) ),
32         m_listener( listener )
33     {
34     }
35 
~ObservedException()36     virtual ~ObservedException() throw()
37     {
38       m_listener->exceptionDestroyed();
39     }
40   private:
41     TestFailureTest *m_listener;
42   };
43 
44 
45   TestFailureTest( const TestFailureTest &copy );
46   void operator =( const TestFailureTest &copy );
47   void checkTestFailure( CPPUNIT_NS::Test *test,
48                          CPPUNIT_NS::Exception *error,
49                          bool isError );
50 
51 private:
52   bool m_exceptionDestroyed;
53 };
54 
55 
56 
57 #endif  // TESTFAILURETEST_H
58