#include "TestResults.h"
 
#include "TestReporter.h"
 
 
 
#include "TestDetails.h"
 
 
 
namespace UnitTest {
 
 
 
   TestResults::TestResults(TestReporter* testReporter)
 
      : m_testReporter(testReporter)
 
      , m_totalTestCount(0)
 
      , m_failedTestCount(0)
 
      , m_failureCount(0)
 
      , m_currentTestFailed(false)
 
   {}
 
 
 
   void TestResults::OnTestStart(TestDetails const& test)
 
   {
 
      ++m_totalTestCount;
 
      m_currentTestFailed = false;
 
      if (m_testReporter)
 
         m_testReporter->ReportTestStart(test);
 
   }
 
 
 
   void TestResults::OnTestFailure(TestDetails const& test, char const* failure)
 
   {
 
      ++m_failureCount;
 
      if (!m_currentTestFailed)
 
      {
 
         ++m_failedTestCount;
 
         m_currentTestFailed = true;
 
      }
 
 
 
      if (m_testReporter)
 
         m_testReporter->ReportFailure(test, failure);
 
   }
 
 
 
   void TestResults::OnTestFinish(TestDetails const& test, float secondsElapsed)
 
   {
 
      if (m_testReporter)
 
         m_testReporter->ReportTestFinish(test, secondsElapsed);
 
   }
 
 
 
   int TestResults::GetTotalTestCount() const
 
   {
 
      return m_totalTestCount;
 
   }
 
 
 
   int TestResults::GetFailedTestCount() const
 
   {
 
      return m_failedTestCount;
 
   }
 
 
 
   int TestResults::GetFailureCount() const
 
   {
 
      return m_failureCount;
 
   }
 
 
 
 
 
}