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