1 #include "CompositeTestReporter.h"
2 #include <cstddef>
3
4 namespace UnitTest {
5
CompositeTestReporter()6 CompositeTestReporter::CompositeTestReporter()
7 : m_reporterCount(0)
8 {
9 }
10
GetReporterCount() const11 int CompositeTestReporter::GetReporterCount() const
12 {
13 return m_reporterCount;
14 }
15
AddReporter(TestReporter * reporter)16 bool CompositeTestReporter::AddReporter(TestReporter* reporter)
17 {
18 if (m_reporterCount == kMaxReporters)
19 return false;
20
21 m_reporters[m_reporterCount++] = reporter;
22 return true;
23 }
24
RemoveReporter(TestReporter * reporter)25 bool CompositeTestReporter::RemoveReporter(TestReporter* reporter)
26 {
27 for (int index = 0; index < m_reporterCount; ++index)
28 {
29 if (m_reporters[index] == reporter)
30 {
31 m_reporters[index] = m_reporters[m_reporterCount - 1];
32 --m_reporterCount;
33 return true;
34 }
35 }
36
37 return false;
38 }
39
ReportFailure(TestDetails const & details,char const * failure)40 void CompositeTestReporter::ReportFailure(TestDetails const& details, char const* failure)
41 {
42 for (int index = 0; index < m_reporterCount; ++index)
43 m_reporters[index]->ReportFailure(details, failure);
44 }
45
ReportTestStart(TestDetails const & test)46 void CompositeTestReporter::ReportTestStart(TestDetails const& test)
47 {
48 for (int index = 0; index < m_reporterCount; ++index)
49 m_reporters[index]->ReportTestStart(test);
50 }
51
ReportTestFinish(TestDetails const & test,float secondsElapsed)52 void CompositeTestReporter::ReportTestFinish(TestDetails const& test, float secondsElapsed)
53 {
54 for (int index = 0; index < m_reporterCount; ++index)
55 m_reporters[index]->ReportTestFinish(test, secondsElapsed);
56 }
57
ReportSummary(int totalTestCount,int failedTestCount,int failureCount,float secondsElapsed)58 void CompositeTestReporter::ReportSummary(int totalTestCount,
59 int failedTestCount,
60 int failureCount,
61 float secondsElapsed)
62 {
63 for (int index = 0; index < m_reporterCount; ++index)
64 m_reporters[index]->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed);
65 }
66
67 }
68