00001 #ifndef UNITTEST_XMLTESTREPORTER_H
00002 #define UNITTEST_XMLTESTREPORTER_H
00003 
00004 #include "DeferredTestReporter.h"
00005 
00006 #include <iosfwd>
00007 
00008 namespace UnitTest
00009 {
00010 
00011 class XmlTestReporter : public DeferredTestReporter
00012 {
00013 public:
00014     explicit XmlTestReporter(std::ostream& ostream);
00015 
00016     virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
00017 
00018 private:
00019     XmlTestReporter(XmlTestReporter const&);
00020     XmlTestReporter& operator=(XmlTestReporter const&);
00021 
00022     void AddXmlElement(std::ostream& os, char const* encoding);
00023     void BeginResults(std::ostream& os, int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
00024     void EndResults(std::ostream& os);
00025     void BeginTest(std::ostream& os, DeferredTestResult const& result);
00026     void AddFailure(std::ostream& os, DeferredTestResult const& result);
00027     void EndTest(std::ostream& os, DeferredTestResult const& result);
00028 
00029     std::ostream& m_ostream;
00030 };
00031 
00032 }
00033 
00034 #endif