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