View Javadoc
1   package org.apache.maven.plugin.surefire.booterclient;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *     http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
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   * Internal tests use only.
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 }