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.report.ConsoleOutputReceiver;
24 import org.apache.maven.surefire.report.ReportEntry;
25 import org.apache.maven.surefire.report.RunListener;
26 import org.apache.maven.surefire.report.TestSetReportEntry;
27
28 import java.util.ArrayList;
29 import java.util.List;
30 import java.util.concurrent.atomic.AtomicInteger;
31
32
33
34
35 public class MockReporter
36 implements RunListener, ConsoleLogger, ConsoleOutputReceiver
37 {
38 private final List<String> events = new ArrayList<String>();
39
40 private final List<Object> data = new ArrayList<Object>();
41
42 public static final String SET_STARTING = "SET_STARTED";
43
44 public static final String SET_COMPLETED = "SET_COMPLETED";
45
46 public static final String TEST_STARTING = "TEST_STARTED";
47
48 public static final String TEST_SUCCEEDED = "TEST_COMPLETED";
49
50 public static final String TEST_FAILED = "TEST_FAILED";
51
52 public static final String TEST_ERROR = "TEST_ERROR";
53
54 public static final String TEST_SKIPPED = "TEST_SKIPPED";
55
56 public static final String TEST_ASSUMPTION_FAIL = "TEST_ASSUMPTION_SKIPPED";
57
58 public static final String CONSOLE_OUTPUT = "CONSOLE_OUTPUT";
59
60 public static final String STDOUT = "STDOUT";
61
62 public static final String STDERR = "STDERR";
63
64 private final AtomicInteger testSucceeded = new AtomicInteger();
65
66 private final AtomicInteger testIgnored = new AtomicInteger();
67
68 private final AtomicInteger testFailed = new AtomicInteger();
69
70 @Override
71 public void testSetStarting( TestSetReportEntry report )
72 {
73 events.add( SET_STARTING );
74 data.add( report );
75 }
76
77 @Override
78 public void testSetCompleted( TestSetReportEntry report )
79 {
80 events.add( SET_COMPLETED );
81 data.add( report );
82 }
83
84 @Override
85 public void testStarting( ReportEntry report )
86 {
87 events.add( TEST_STARTING );
88 data.add( report );
89 }
90
91 @Override
92 public void testSucceeded( ReportEntry report )
93 {
94 events.add( TEST_SUCCEEDED );
95 testSucceeded.incrementAndGet();
96 data.add( report );
97 }
98
99 @Override
100 public void testError( ReportEntry report )
101 {
102 events.add( TEST_ERROR );
103 data.add( report );
104 testFailed.incrementAndGet();
105 }
106
107 @Override
108 public void testFailed( ReportEntry report )
109 {
110 events.add( TEST_FAILED );
111 data.add( report );
112 testFailed.incrementAndGet();
113 }
114
115 @Override
116 public void testSkipped( ReportEntry report )
117 {
118 events.add( TEST_SKIPPED );
119 data.add( report );
120 testIgnored.incrementAndGet();
121 }
122
123 @Override
124 public void testExecutionSkippedByUser()
125 {
126 }
127
128 public void testSkippedByUser( ReportEntry report )
129 {
130 testSkipped( report );
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_OUTPUT );
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_OUTPUT );
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_OUTPUT );
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_OUTPUT );
210 data.add( message );
211 }
212
213 @Override
214 public void error( String message, Throwable t )
215 {
216 }
217
218 @Override
219 public void error( Throwable t )
220 {
221 }
222
223 @Override
224 public void writeTestOutput( byte[] buf, int off, int len, boolean stdout )
225 {
226 events.add( stdout ? STDOUT : STDERR );
227 data.add( new String( buf, off, len ) );
228 }
229 }