#include "CompositeTestReporter.h" #include namespace UnitTest { CompositeTestReporter::CompositeTestReporter() : m_reporterCount(0) { } int CompositeTestReporter::GetReporterCount() const { return m_reporterCount; } bool CompositeTestReporter::AddReporter(TestReporter* reporter) { if (m_reporterCount == kMaxReporters) return false; m_reporters[m_reporterCount++] = reporter; return true; } bool CompositeTestReporter::RemoveReporter(TestReporter* reporter) { for (int index = 0; index < m_reporterCount; ++index) { if (m_reporters[index] == reporter) { m_reporters[index] = m_reporters[m_reporterCount - 1]; --m_reporterCount; return true; } } return false; } void CompositeTestReporter::ReportFailure(TestDetails const& details, char const* failure) { for (int index = 0; index < m_reporterCount; ++index) m_reporters[index]->ReportFailure(details, failure); } void CompositeTestReporter::ReportTestStart(TestDetails const& test) { for (int index = 0; index < m_reporterCount; ++index) m_reporters[index]->ReportTestStart(test); } void CompositeTestReporter::ReportTestFinish(TestDetails const& test, float secondsElapsed) { for (int index = 0; index < m_reporterCount; ++index) m_reporters[index]->ReportTestFinish(test, secondsElapsed); } void CompositeTestReporter::ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed) { for (int index = 0; index < m_reporterCount; ++index) m_reporters[index]->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed); } }