View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.surefire.junitcore;
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.ReporterFactory;
27  import org.apache.maven.surefire.api.report.TestOutputReportEntry;
28  import org.apache.maven.surefire.api.report.TestSetReportEntry;
29  
30  import static java.util.Collections.emptyMap;
31  import static org.mockito.Mockito.mock;
32  
33  /**
34   * Internal tests use only.
35   */
36  final class MockReporter extends ConcurrentRunListener {
37      private final List<String> events = new ArrayList<>();
38  
39      static final String SET_STARTED = "SET_STARTED";
40  
41      static final String SET_COMPLETED = "SET_COMPLETED";
42  
43      static final String TEST_STARTED = "TEST_STARTED";
44  
45      static final String TEST_COMPLETED = "TEST_COMPLETED";
46  
47      static final String TEST_SKIPPED = "TEST_SKIPPED";
48  
49      private final AtomicInteger testSucceeded = new AtomicInteger();
50  
51      private final AtomicInteger testIgnored = new AtomicInteger();
52  
53      private final AtomicInteger testFailed = new AtomicInteger();
54  
55      private final AtomicInteger testError = new AtomicInteger();
56  
57      MockReporter() {
58          super(mock(ReporterFactory.class), false, emptyMap());
59      }
60  
61      @Override
62      public void testSetStarting(TestSetReportEntry report) {
63          events.add(SET_STARTED);
64      }
65  
66      @Override
67      public void testSetCompleted(TestSetReportEntry report) {
68          events.add(SET_COMPLETED);
69      }
70  
71      @Override
72      public void testStarting(ReportEntry report) {
73          events.add(TEST_STARTED);
74      }
75  
76      @Override
77      public void testSucceeded(ReportEntry report) {
78          events.add(TEST_COMPLETED);
79          testSucceeded.incrementAndGet();
80      }
81  
82      @Override
83      protected void checkIfTestSetCanBeReported(TestSet testSetForTest) {}
84  
85      @Override
86      public void testSkipped(ReportEntry report) {
87          events.add(TEST_SKIPPED);
88          testIgnored.incrementAndGet();
89      }
90  
91      @Override
92      public void testExecutionSkippedByUser() {}
93  
94      public int getTestSucceeded() {
95          return testSucceeded.get();
96      }
97  
98      public int getTestFailed() {
99          return testFailed.get();
100     }
101 
102     @Override
103     public void testError(ReportEntry report) {
104         testError.incrementAndGet();
105     }
106 
107     @Override
108     public void testFailed(ReportEntry report) {
109         testFailed.incrementAndGet();
110     }
111 
112     @Override
113     public void testAssumptionFailure(ReportEntry report) {}
114 
115     public boolean containsNotification(String event) {
116         return events.contains(event);
117     }
118 
119     @Override
120     public void writeTestOutput(TestOutputReportEntry reportEntry) {}
121 
122     @Override
123     public boolean isDebugEnabled() {
124         return false;
125     }
126 
127     @Override
128     public void debug(String message) {}
129 
130     @Override
131     public boolean isInfoEnabled() {
132         return false;
133     }
134 
135     @Override
136     public void info(String message) {}
137 
138     @Override
139     public boolean isWarnEnabled() {
140         return false;
141     }
142 
143     @Override
144     public void warning(String message) {}
145 
146     @Override
147     public boolean isErrorEnabled() {
148         return false;
149     }
150 
151     @Override
152     public void error(String message) {}
153 
154     @Override
155     public void error(String message, Throwable t) {}
156 
157     @Override
158     public void error(Throwable t) {}
159 }