1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.surefire.booterclient;
20
21 import java.util.ArrayList;
22 import java.util.List;
23 import java.util.concurrent.atomic.AtomicInteger;
24
25 import org.apache.maven.surefire.api.report.ReportEntry;
26 import org.apache.maven.surefire.api.report.TestOutputReportEntry;
27 import org.apache.maven.surefire.api.report.TestReportListener;
28 import org.apache.maven.surefire.api.report.TestSetReportEntry;
29
30
31
32
33 public class MockReporter implements TestReportListener<TestOutputReportEntry> {
34 private final List<String> events = new ArrayList<>();
35
36 private final List<Object> data = new ArrayList<>();
37
38 public static final String SET_STARTING = "SET_STARTED";
39
40 public static final String SET_COMPLETED = "SET_COMPLETED";
41
42 public static final String TEST_STARTING = "TEST_STARTED";
43
44 public static final String TEST_SUCCEEDED = "TEST_COMPLETED";
45
46 public static final String TEST_FAILED = "TEST_FAILED";
47
48 public static final String TEST_ERROR = "TEST_ERROR";
49
50 public static final String TEST_SKIPPED = "TEST_SKIPPED";
51
52 public static final String TEST_ASSUMPTION_FAIL = "TEST_ASSUMPTION_SKIPPED";
53
54 public static final String CONSOLE_INFO = "CONSOLE_INFO";
55
56 public static final String CONSOLE_WARN = "CONSOLE_WARN";
57
58 public static final String CONSOLE_DEBUG = "CONSOLE_DEBUG";
59
60 public static final String CONSOLE_ERR = "CONSOLE_ERR";
61
62 public static final String STDOUT = "STDOUT";
63
64 public static final String STDERR = "STDERR";
65
66 private final AtomicInteger testSucceeded = new AtomicInteger();
67
68 private final AtomicInteger testIgnored = new AtomicInteger();
69
70 private final AtomicInteger testFailed = new AtomicInteger();
71
72 @Override
73 public void testSetStarting(TestSetReportEntry report) {
74 events.add(SET_STARTING);
75 data.add(report);
76 }
77
78 @Override
79 public void testSetCompleted(TestSetReportEntry report) {
80 events.add(SET_COMPLETED);
81 data.add(report);
82 }
83
84 @Override
85 public void testStarting(ReportEntry report) {
86 events.add(TEST_STARTING);
87 data.add(report);
88 }
89
90 @Override
91 public void testSucceeded(ReportEntry report) {
92 events.add(TEST_SUCCEEDED);
93 testSucceeded.incrementAndGet();
94 data.add(report);
95 }
96
97 @Override
98 public void testError(ReportEntry report) {
99 events.add(TEST_ERROR);
100 data.add(report);
101 testFailed.incrementAndGet();
102 }
103
104 @Override
105 public void testFailed(ReportEntry report) {
106 events.add(TEST_FAILED);
107 data.add(report);
108 testFailed.incrementAndGet();
109 }
110
111 @Override
112 public void testSkipped(ReportEntry report) {
113 events.add(TEST_SKIPPED);
114 data.add(report);
115 testIgnored.incrementAndGet();
116 }
117
118 @Override
119 public void testExecutionSkippedByUser() {}
120
121 public List<String> getEvents() {
122 return events;
123 }
124
125 public List getData() {
126 return data;
127 }
128
129 public String getFirstEvent() {
130 return events.get(0);
131 }
132
133 public ReportEntry getFirstData() {
134 return (ReportEntry) data.get(0);
135 }
136
137 @Override
138 public void testAssumptionFailure(ReportEntry report) {
139 events.add(TEST_ASSUMPTION_FAIL);
140 data.add(report);
141 testIgnored.incrementAndGet();
142 }
143
144 @Override
145 public boolean isDebugEnabled() {
146 return true;
147 }
148
149 @Override
150 public void debug(String message) {
151 events.add(CONSOLE_DEBUG);
152 data.add(message);
153 }
154
155 @Override
156 public boolean isInfoEnabled() {
157 return true;
158 }
159
160 @Override
161 public void info(String message) {
162 events.add(CONSOLE_INFO);
163 data.add(message);
164 }
165
166 @Override
167 public boolean isWarnEnabled() {
168 return true;
169 }
170
171 @Override
172 public void warning(String message) {
173 events.add(CONSOLE_WARN);
174 data.add(message);
175 }
176
177 @Override
178 public boolean isErrorEnabled() {
179 return true;
180 }
181
182 @Override
183 public void error(String message) {
184 events.add(CONSOLE_ERR);
185 data.add(message);
186 }
187
188 @Override
189 public void error(String message, Throwable t) {
190 error(message);
191 }
192
193 @Override
194 public void error(Throwable t) {
195 error(t.getLocalizedMessage());
196 }
197
198 @Override
199 public void writeTestOutput(TestOutputReportEntry reportEntry) {
200 events.add(reportEntry.isStdOut() ? STDOUT : STDERR);
201 String output = reportEntry.getLog();
202 data.add(reportEntry.isNewLine() ? output + "\n" : output);
203 }
204 }