1 #ifndef CPPUNITEST_XMLTESTRESULTOUTPUTTERTEST_H
2 #define CPPUNITEST_XMLTESTRESULTOUTPUTTERTEST_H
3 
4 #include <cppunit/extensions/HelperMacros.h>
5 #include <deque>
6 #include <cppunit/Test.h>
7 #include <cppunit/TestFailure.h>
8 #include <cppunit/TestResultCollector.h>
9 
10 
11 /*! \class XmlOutputterTest
12  * \brief Unit tests for XmlOutputter.
13  */
14 class XmlOutputterTest : public CPPUNIT_NS::TestFixture
15 {
16   CPPUNIT_TEST_SUITE( XmlOutputterTest );
17   CPPUNIT_TEST( testWriteXmlResultWithNoTest );
18   CPPUNIT_TEST( testWriteXmlResultWithOneFailure );
19   CPPUNIT_TEST( testWriteXmlResultWithOneError );
20   CPPUNIT_TEST( testWriteXmlResultWithOneSuccess );
21   CPPUNIT_TEST( testWriteXmlResultWithThreeFailureTwoErrorsAndTwoSuccess );
22   CPPUNIT_TEST( testHook );
23   CPPUNIT_TEST_SUITE_END();
24 
25 public:
26   /*! Constructs a XmlOutputterTest object.
27    */
28   XmlOutputterTest();
29 
30   /// Destructor.
31   virtual ~XmlOutputterTest();
32 
33   void setUp();
34   void tearDown();
35   void testWriteXmlResultWithNoTest();
36   void testWriteXmlResultWithOneFailure();
37   void testWriteXmlResultWithOneError();
38   void testWriteXmlResultWithOneSuccess();
39   void testWriteXmlResultWithThreeFailureTwoErrorsAndTwoSuccess();
40 
41   void testHook();
42 
43 private:
44   class MockHook;
45 
46   /// Prevents the use of the copy constructor.
47   XmlOutputterTest( const XmlOutputterTest &copy );
48 
49   /// Prevents the use of the copy operator.
50   void operator =( const XmlOutputterTest &copy );
51 
52   std::string statistics( int tests,
53                           int total,
54                           int error,
55                           int failure );
56 
57   void addTest( std::string testName );
58   void addTestFailure( std::string testName,
59                        std::string message,
60                        CPPUNIT_NS::SourceLine sourceLine = CPPUNIT_NS::SourceLine() );
61   void addTestError( std::string testName,
62                      std::string message,
63                      CPPUNIT_NS::SourceLine sourceLine = CPPUNIT_NS::SourceLine() );
64   void addGenericTestFailure( std::string testName,
65                               CPPUNIT_NS::Message message,
66                               CPPUNIT_NS::SourceLine sourceLine,
67                               bool isError );
68 
69   CPPUNIT_NS::Test *makeDummyTest( std::string testName );
70 
71 private:
72   CPPUNIT_NS::TestResultCollector *m_result;
73   std::deque<CPPUNIT_NS::Test *> m_dummyTests;
74 };
75 
76 
77 
78 #endif  // CPPUNITEST_XMLTESTRESULTOUTPUTTERTEST_H
79