1414import java .util .ArrayList ;
1515import java .util .LinkedList ;
1616import java .util .List ;
17+ import java .util .Objects ;
1718import java .util .Properties ;
1819import java .util .stream .Stream ;
1920import org .apache .commons .io .IOUtils ;
2223import org .hamcrest .Matchers ;
2324import org .junit .jupiter .params .ParameterizedTest ;
2425import org .junit .jupiter .params .provider .MethodSource ;
25- import org .mockito .Mockito ;
26- import org .mockito .invocation .InvocationOnMock ;
27- import org .mockito .stubbing .Answer ;
2826import org .xml .sax .InputSource ;
2927
3028/**
@@ -42,17 +40,17 @@ final class ChecksTest {
4240 @ MethodSource ("checks" )
4341 @ SuppressWarnings ("PMD.JUnitAssertionsShouldIncludeMessage" )
4442 void testCheckstyleTruePositive (final String dir ) throws Exception {
45- final AuditListener listener = Mockito .mock (AuditListener .class );
4643 final Collector collector = new ChecksTest .Collector ();
47- Mockito .doAnswer (collector ).when (listener )
48- .addError (Mockito .any (AuditEvent .class ));
44+ final AuditListener listener = new FakeAuditListener (collector );
4945 this .check (dir , "/Invalid.java" , listener );
5046 final String [] violations = IOUtils .toString (
51- this .getClass ().getResourceAsStream (
52- String .format ("%s/violations.txt" , dir )
47+ Objects .requireNonNull (
48+ this .getClass ().getResourceAsStream (
49+ String .format ("%s/violations.txt" , dir )
50+ )
5351 ),
5452 StandardCharsets .UTF_8
55- ).split ("\n " );
53+ ).split ("\n " );
5654 for (final String line : violations ) {
5755 final String [] sectors = line .split (":" );
5856 final Integer pos = Integer .valueOf (sectors [0 ]);
@@ -91,18 +89,14 @@ void testCheckstyleTruePositive(final String dir) throws Exception {
9189 @ ParameterizedTest
9290 @ MethodSource ("checks" )
9391 void testCheckstyleTrueNegative (final String dir ) throws Exception {
94- final AuditListener listener = Mockito .mock (AuditListener .class );
9592 final Collector collector = new ChecksTest .Collector ();
96- Mockito .doAnswer (collector ).when (listener )
97- .addError (Mockito .any (AuditEvent .class ));
93+ final AuditListener listener = new FakeAuditListener (collector );
9894 this .check (dir , "/Valid.java" , listener );
9995 MatcherAssert .assertThat (
10096 "Log should be empty for valid files" ,
10197 collector .summary (),
10298 Matchers .equalTo ("" )
10399 );
104- Mockito .verify (listener , Mockito .times (0 ))
105- .addError (Mockito .any (AuditEvent .class ));
106100 }
107101
108102 /**
@@ -180,17 +174,14 @@ private static Stream<String> checks() {
180174 *
181175 * @since 0.1
182176 */
183- private static final class Collector implements Answer <Object > {
184-
177+ private static final class Collector {
185178 /**
186179 * List of events received.
187180 */
188181 private final List <AuditEvent > events = new LinkedList <>();
189182
190- @ Override
191- public Object answer (final InvocationOnMock invocation ) {
192- this .events .add ((AuditEvent ) invocation .getArguments ()[0 ]);
193- return null ;
183+ public void add (final AuditEvent event ) {
184+ this .events .add (event );
194185 }
195186
196187 /**
@@ -237,4 +228,54 @@ public String summary() {
237228 }
238229 }
239230
231+ /**
232+ * Fake Audit Listener.
233+ *
234+ * Just to set an event on addError() to a mocked Collector.
235+ *
236+ * @since 0.24.1
237+ */
238+ private static final class FakeAuditListener implements AuditListener {
239+ /**
240+ * Mocked collector.
241+ */
242+ private final ChecksTest .Collector collector ;
243+
244+ FakeAuditListener (final ChecksTest .Collector collect ) {
245+ this .collector = collect ;
246+ }
247+
248+ @ Override
249+ public void auditStarted (final AuditEvent event ) {
250+ // Intentionally left blank
251+ }
252+
253+ @ Override
254+ public void auditFinished (final AuditEvent event ) {
255+ // Intentionally left blank
256+ }
257+
258+ @ Override
259+ public void fileStarted (final AuditEvent event ) {
260+ // Intentionally left blank
261+ }
262+
263+ @ Override
264+ public void fileFinished (final AuditEvent event ) {
265+ // Intentionally left blank
266+ }
267+
268+ @ Override
269+ public void addError (final AuditEvent event ) {
270+ this .collector .add (event );
271+ }
272+
273+ @ Override
274+ public void addException (
275+ final AuditEvent event ,
276+ final Throwable throwable
277+ ) {
278+ // Intentionally left blank
279+ }
280+ }
240281}
0 commit comments