1 #ifndef TESTCOLLECTORRESULTTEST_H
2 #define TESTCOLLECTORRESULTTEST_H
3 
4 #include <cppunit/extensions/HelperMacros.h>
5 #include <cppunit/TestFailure.h>
6 #include "SynchronizedTestResult.h"
7 
8 
9 class TestResultCollectorTest : public CPPUNIT_NS::TestFixture,
10                        public SynchronizedTestResult::SynchronizationObjectListener
11 {
12   CPPUNIT_TEST_SUITE( TestResultCollectorTest );
13   CPPUNIT_TEST( testConstructor );
14   CPPUNIT_TEST( testAddTwoErrors );
15   CPPUNIT_TEST( testAddTwoFailures );
16   CPPUNIT_TEST( testStartTest );
17   CPPUNIT_TEST( testWasSuccessfulWithErrors );
18   CPPUNIT_TEST( testWasSuccessfulWithFailures );
19   CPPUNIT_TEST( testWasSuccessfulWithErrorsAndFailures );
20   CPPUNIT_TEST( testWasSuccessfulWithSuccessfulTest );
21   CPPUNIT_TEST( testSynchronizationAddFailure );
22   CPPUNIT_TEST( testSynchronizationStartTest );
23   CPPUNIT_TEST( testSynchronizationRunTests );
24   CPPUNIT_TEST( testSynchronizationTestErrors );
25   CPPUNIT_TEST( testSynchronizationTestFailures );
26   CPPUNIT_TEST( testSynchronizationFailures );
27   CPPUNIT_TEST( testSynchronizationWasSuccessful );
28   CPPUNIT_TEST_SUITE_END();
29 
30 public:
31   TestResultCollectorTest();
32   virtual ~TestResultCollectorTest();
33 
34   virtual void setUp();
35   virtual void tearDown();
36 
37   void testConstructor();
38 
39   void testAddTwoErrors();
40   void testAddTwoFailures();
41   void testStartTest();
42 
43   void testWasSuccessfulWithNoTest();
44   void testWasSuccessfulWithErrors();
45   void testWasSuccessfulWithFailures();
46   void testWasSuccessfulWithErrorsAndFailures();
47   void testWasSuccessfulWithSuccessfulTest();
48 
49   void testSynchronizationAddFailure();
50   void testSynchronizationStartTest();
51   void testSynchronizationRunTests();
52   void testSynchronizationTestErrors();
53   void testSynchronizationTestFailures();
54   void testSynchronizationErrors();
55   void testSynchronizationFailures();
56   void testSynchronizationWasSuccessful();
57 
58   virtual void locked();
59   virtual void unlocked();
60 
61 private:
62   TestResultCollectorTest( const TestResultCollectorTest &copy );
63   void operator =( const TestResultCollectorTest &copy );
64 
65   void checkResult( int failures,
66                     int errors,
67                     int testsRun );
68 
69   void checkFailure( CPPUNIT_NS::TestFailure *failure,
70                      CPPUNIT_NS::Message expectedMessage,
71                      CPPUNIT_NS::Test *expectedTest,
72                      bool expectedIsError );
73 
74   void checkWasSuccessful( bool shouldBeSuccessful );
75 
76   void checkSynchronization();
77 
78   void addFailure( std::string message );
79   void addError( std::string message );
80   void addFailure( std::string message,
81                    CPPUNIT_NS::Test *failedTest,
82                    bool isError,
83                    CPPUNIT_NS::TestResultCollector *result );
84 
85 private:
86   CPPUNIT_NS::TestResultCollector *m_result;
87   SynchronizedTestResult *m_synchronizedResult;
88   CPPUNIT_NS::Test *m_test;
89   CPPUNIT_NS::Test *m_test2;
90   int m_lockCount;
91   int m_unlockCount;
92 };
93 
94 
95 
96 #endif  // TESTCOLLECTORRESULTTEST_H
97