From 189da7314d1b29f0e14479210c2fd567305a64d2 Mon Sep 17 00:00:00 2001 From: Roman Ivanov Date: Sat, 24 Oct 2015 06:41:10 -0700 Subject: [PATCH] Issue #2434: Inconvenience to debug UTs after recent changes in BaseCheckTestSupport --- .../checkstyle/BaseCheckTestSupport.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/BaseCheckTestSupport.java b/src/test/java/com/puppycrawl/tools/checkstyle/BaseCheckTestSupport.java index bf0fc342f..00741d201 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/BaseCheckTestSupport.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/BaseCheckTestSupport.java @@ -19,7 +19,7 @@ package com.puppycrawl.tools.checkstyle; -import static java.util.Arrays.asList; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.ByteArrayInputStream; @@ -141,14 +141,37 @@ public class BaseCheckTestSupport { messageFileName, expected); } + /** + * We keep two verify methods with separate logic only for convenience of debuging + * We have minimum amount of multi-file test cases + */ protected void verify(Checker checker, File[] processedFiles, String messageFileName, String... expected) throws Exception { - final Map> expectedMessages = new HashMap<>(1); - expectedMessages.put(messageFileName, asList(expected)); - verify(checker, processedFiles, expectedMessages); + stream.flush(); + final List theFiles = Lists.newArrayList(); + Collections.addAll(theFiles, processedFiles); + final int errs = checker.process(theFiles); + + // process each of the lines + final ByteArrayInputStream inputStream = + new ByteArrayInputStream(stream.toByteArray()); + try (final LineNumberReader lnr = new LineNumberReader( + new InputStreamReader(inputStream, StandardCharsets.UTF_8))) { + + for (int i = 0; i < expected.length; i++) { + final String expectedResult = messageFileName + ":" + expected[i]; + final String actual = lnr.readLine(); + assertEquals("error message " + i, expectedResult, actual); + } + + assertEquals("unexpected output: " + lnr.readLine(), + expected.length, errs); + } + + checker.destroy(); } protected void verify(Checker checker, @@ -160,6 +183,7 @@ public class BaseCheckTestSupport { Collections.addAll(theFiles, processedFiles); final int errs = checker.process(theFiles); + // process each of the lines final Map> actualViolations = getActualViolations(errs); final Map> realExpectedViolations = Maps.filterValues(expectedViolations, new Predicate>() {