#ifndef UNITTEST_TESTRESULTS_H
 
#define UNITTEST_TESTRESULTS_H
 
 
 
#include "HelperMacros.h"
 
 
 
namespace UnitTest {
 
 
 
   class RequiredCheckTestReporter;
 
   class TestReporter;
 
   class TestDetails;
 
 
 
   class UNITTEST_LINKAGE TestResults
 
   {
 
   public:
 
      explicit TestResults(TestReporter* reporter = 0);
 
 
 
      void OnTestStart(TestDetails const& test);
 
      void OnTestFailure(TestDetails const& test, char const* failure);
 
      void OnTestFinish(TestDetails const& test, float secondsElapsed);
 
 
 
      int GetTotalTestCount() const;
 
      int GetFailedTestCount() const;
 
      int GetFailureCount() const;
 
 
 
   private:
 
      friend class RequiredCheckTestReporter;
 
 
 
      TestReporter* m_testReporter;
 
      int m_totalTestCount;
 
      int m_failedTestCount;
 
      int m_failureCount;
 
 
 
      bool m_currentTestFailed;
 
 
 
      TestResults(TestResults const&);
 
      TestResults& operator =(TestResults const&);
 
   };
 
 
 
}
 
 
 
#endif