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 © ); 48 49 /// Prevents the use of the copy operator. 50 void operator =( const XmlOutputterTest © ); 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