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