From 37fe13f3f12cc159a2a4f25761a89f2291aff74f Mon Sep 17 00:00:00 2001 From: Ruslan Diachenko Date: Wed, 29 Jul 2015 00:36:44 +0100 Subject: [PATCH] Issue #1287: 'BooleanExpressionComplexityCheck' refactored, UT coverage improved --- pom.xml | 1 - .../metrics/BooleanExpressionComplexityCheck.java | 7 ++++--- .../BooleanExpressionComplexityCheckTest.java | 12 ++++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 8a9c1c510..d15f9dabf 100644 --- a/pom.xml +++ b/pom.xml @@ -1127,7 +1127,6 @@ .*.checks.metrics.AbstractClassCouplingCheck8797 .*.checks.metrics.AbstractClassCouplingCheck\$.*78100 - .*.checks.metrics.BooleanExpressionComplexityCheck7480 .*.checks.regexp.CommentSuppressor75100 .*.checks.regexp.DetectorOptions10096 diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheck.java index 4e98527d1..8be250eee 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheck.java @@ -139,7 +139,7 @@ public final class BooleanExpressionComplexityCheck extends Check { context.visitBooleanOperator(); break; default: - throw new IllegalStateException(ast.toString()); + throw new IllegalArgumentException("Unknown type: " + ast); } } @@ -186,7 +186,8 @@ public final class BooleanExpressionComplexityCheck extends Check { */ private void visitMethodDef(DetailAST ast) { contextStack.push(context); - context = new Context(!CheckUtils.isEqualsMethod(ast)); + final boolean check = !CheckUtils.isEqualsMethod(ast); + context = new Context(check); } /** Removes old context. */ @@ -197,7 +198,7 @@ public final class BooleanExpressionComplexityCheck extends Check { /** Creates and pushes new context. */ private void visitExpr() { contextStack.push(context); - context = new Context(context == null || context.isChecking()); + context = new Context(context.isChecking()); } /** diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheckTest.java index 4f4bdab03..d6479c90b 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheckTest.java @@ -25,8 +25,12 @@ import java.io.File; import org.junit.Test; +import antlr.CommonHiddenStreamToken; + import com.puppycrawl.tools.checkstyle.BaseCheckTestSupport; import com.puppycrawl.tools.checkstyle.DefaultConfiguration; +import com.puppycrawl.tools.checkstyle.api.DetailAST; +import com.puppycrawl.tools.checkstyle.api.TokenTypes; public class BooleanExpressionComplexityCheckTest extends BaseCheckTestSupport { @Test @@ -67,4 +71,12 @@ public class BooleanExpressionComplexityCheckTest extends BaseCheckTestSupport { verify(checkConfig, getPath("metrics" + File.separator + "InputBooleanExpressionComplexityNPE.java"), expected); } + + @Test(expected = IllegalArgumentException.class) + public void testWrongToken() { + BooleanExpressionComplexityCheck booleanExpressionComplexityCheckObj = new BooleanExpressionComplexityCheck(); + DetailAST ast = new DetailAST(); + ast.initialize(new CommonHiddenStreamToken(TokenTypes.INTERFACE_DEF, "interface")); + booleanExpressionComplexityCheckObj.visitToken(ast); + } }