From 28e8f33dfdccf2d34d44bea42c28567776313628 Mon Sep 17 00:00:00 2001 From: Ruslan Diachenko Date: Wed, 15 Jul 2015 21:22:02 +0100 Subject: [PATCH] Issue #1289: 'EmptyLineSeparatorCheck' refactored, UT coverage improved --- pom.xml | 1 - .../whitespace/EmptyLineSeparatorCheck.java | 4 +- .../EmptyLineSeparatorCheckTest.java | 44 ++++++++++++++++--- ...LineSeparatorMultipleImportEmptyClass.java | 2 +- .../InputPrePreviousLineEmptiness.java | 6 +++ 5 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 src/test/resources/com/puppycrawl/tools/checkstyle/whitespace/InputPrePreviousLineEmptiness.java diff --git a/pom.xml b/pom.xml index 9cb423d86..df04ceeb0 100644 --- a/pom.xml +++ b/pom.xml @@ -1202,7 +1202,6 @@ .*.checks.whitespace.AbstractParenPadCheck88100 .*.checks.whitespace.EmptyForInitializerPadCheck9193 - .*.checks.whitespace.EmptyLineSeparatorCheck9598 .*.checks.whitespace.GenericWhitespaceCheck8696 .*.checks.whitespace.NoWhitespaceAfterCheck9498 .*.checks.whitespace.NoWhitespaceBeforeCheck90100 diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheck.java index 9602f0544..a8cb7682f 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheck.java @@ -265,9 +265,7 @@ public class EmptyLineSeparatorCheck extends Check { * @param astType token Type */ private void processImport(DetailAST ast, DetailAST nextToken, int astType) { - if (astType != nextToken.getType() && !hasEmptyLineAfter(ast) - || ast.getLineNo() > 1 && !hasEmptyLineBefore(ast) - && ast.getPreviousSibling() == null) { + if (astType != nextToken.getType() && !hasEmptyLineAfter(ast)) { log(nextToken.getLineNo(), MSG_SHOULD_BE_SEPARATED, nextToken.getText()); } if (hasNotAllowedTwoEmptyLinesBefore(ast)) { diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheckTest.java index 84e97676b..d584db1de 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheckTest.java @@ -19,14 +19,15 @@ package com.puppycrawl.tools.checkstyle.checks.whitespace; -import com.puppycrawl.tools.checkstyle.BaseCheckTestSupport; -import com.puppycrawl.tools.checkstyle.DefaultConfiguration; +import static com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyLineSeparatorCheck.MSG_MULTIPLE_LINES; +import static com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyLineSeparatorCheck.MSG_SHOULD_BE_SEPARATED; + +import org.junit.Assert; import org.junit.Test; -import static com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyLineSeparatorCheck -.MSG_MULTIPLE_LINES; -import static com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyLineSeparatorCheck -.MSG_SHOULD_BE_SEPARATED; +import com.puppycrawl.tools.checkstyle.BaseCheckTestSupport; +import com.puppycrawl.tools.checkstyle.DefaultConfiguration; +import com.puppycrawl.tools.checkstyle.api.TokenTypes; public class EmptyLineSeparatorCheckTest extends BaseCheckTestSupport { @@ -109,9 +110,38 @@ public class EmptyLineSeparatorCheckTest DefaultConfiguration checkConfig = createCheckConfig(EmptyLineSeparatorCheck.class); checkConfig.addAttribute("allowMultipleEmptyLines", "false"); final String[] expected = { - + "1: " + getCheckMessage(MSG_SHOULD_BE_SEPARATED, "import"), }; verify(checkConfig, getPath("whitespace/InputEmptyLineSeparatorMultipleImportEmptyClass.java"), expected); } + @Test + public void testGetAcceptableTokens() { + EmptyLineSeparatorCheck emptyLineSeparatorCheckObj = new EmptyLineSeparatorCheck(); + int[] actual = emptyLineSeparatorCheckObj.getAcceptableTokens(); + int[] expected = new int[] { + TokenTypes.PACKAGE_DEF, + TokenTypes.IMPORT, + TokenTypes.CLASS_DEF, + TokenTypes.INTERFACE_DEF, + TokenTypes.ENUM_DEF, + TokenTypes.STATIC_INIT, + TokenTypes.INSTANCE_INIT, + TokenTypes.METHOD_DEF, + TokenTypes.CTOR_DEF, + TokenTypes.VARIABLE_DEF, + }; + Assert.assertNotNull(actual); + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testPrePreviousLineEmpiness() throws Exception { + DefaultConfiguration checkConfig = createCheckConfig(EmptyLineSeparatorCheck.class); + checkConfig.addAttribute("allowMultipleEmptyLines", "false"); + final String[] expected = { + + }; + verify(checkConfig, getPath("whitespace/InputPrePreviousLineEmptiness.java"), expected); + } } diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/whitespace/InputEmptyLineSeparatorMultipleImportEmptyClass.java b/src/test/resources/com/puppycrawl/tools/checkstyle/whitespace/InputEmptyLineSeparatorMultipleImportEmptyClass.java index c61bf3d2f..68b830401 100644 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/whitespace/InputEmptyLineSeparatorMultipleImportEmptyClass.java +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/whitespace/InputEmptyLineSeparatorMultipleImportEmptyClass.java @@ -1,4 +1,4 @@ -package com.puppycrawl.tools.checkstyle.whitespace; +package com.puppycrawl.tools.checkstyle.whitespace;import java.util.List; import java.util.Calendar; import java.util.Date; diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/whitespace/InputPrePreviousLineEmptiness.java b/src/test/resources/com/puppycrawl/tools/checkstyle/whitespace/InputPrePreviousLineEmptiness.java new file mode 100644 index 000000000..c0536f37d --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/whitespace/InputPrePreviousLineEmptiness.java @@ -0,0 +1,6 @@ + +package com.puppycrawl.tools.checkstyle.whitespace; + +public class InputPrePreviousLineEmptiness { + +}