diff options
author | Aurimas Liutikas <aurimas@google.com> | 2017-11-28 20:29:59 -0800 |
---|---|---|
committer | Aurimas Liutikas <aurimas@google.com> | 2017-11-28 20:29:59 -0800 |
commit | b4aec831a096b89efed151c9b2c5754d9491e6ea (patch) | |
tree | f8c04870544dda72e99139fcc713a66b04514dcc /src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java | |
parent | b8aa773e4886dabd0ffc5026420edd061069f044 (diff) | |
parent | dbbd00f58fd36c7c23e24e6652076b735b8e7c0c (diff) | |
download | checkstyle-b4aec831a096b89efed151c9b2c5754d9491e6ea.tar.gz |
Merge Checkstyle 8.5 into aosp/master
Test: None
Diffstat (limited to 'src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java')
-rw-r--r-- | src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java | 50 |
1 files changed, 42 insertions, 8 deletions
diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java index f52b5a9ec..b72b3f6b7 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java @@ -21,6 +21,7 @@ package com.puppycrawl.tools.checkstyle.checks.metrics; import static com.puppycrawl.tools.checkstyle.checks.metrics.NPathComplexityCheck.MSG_KEY; +import java.util.Collection; import java.util.SortedSet; import org.junit.Assert; @@ -29,9 +30,11 @@ import org.junit.Test; import antlr.CommonHiddenStreamToken; import com.puppycrawl.tools.checkstyle.AbstractModuleTestSupport; import com.puppycrawl.tools.checkstyle.DefaultConfiguration; +import com.puppycrawl.tools.checkstyle.api.Context; import com.puppycrawl.tools.checkstyle.api.DetailAST; import com.puppycrawl.tools.checkstyle.api.LocalizedMessage; import com.puppycrawl.tools.checkstyle.api.TokenTypes; +import com.puppycrawl.tools.checkstyle.internal.utils.TestUtil; import com.puppycrawl.tools.checkstyle.utils.CommonUtils; // -@cs[AbbreviationAsWordInName] Can't change check name @@ -44,7 +47,7 @@ public class NPathComplexityCheckTest extends AbstractModuleTestSupport { @Test public void testCalculation() throws Exception { final DefaultConfiguration checkConfig = - createCheckConfig(NPathComplexityCheck.class); + createModuleConfig(NPathComplexityCheck.class); checkConfig.addAttribute("max", "0"); final String[] expected = { @@ -65,7 +68,7 @@ public class NPathComplexityCheckTest extends AbstractModuleTestSupport { @Test public void testCalculation2() throws Exception { final DefaultConfiguration checkConfig = - createCheckConfig(NPathComplexityCheck.class); + createModuleConfig(NPathComplexityCheck.class); checkConfig.addAttribute("max", "0"); final String[] expected = { @@ -91,7 +94,7 @@ public class NPathComplexityCheckTest extends AbstractModuleTestSupport { @Test public void testIntegerOverflow() throws Exception { final DefaultConfiguration checkConfig = - createCheckConfig(NPathComplexityCheck.class); + createModuleConfig(NPathComplexityCheck.class); checkConfig.addAttribute("max", "0"); @@ -105,9 +108,40 @@ public class NPathComplexityCheckTest extends AbstractModuleTestSupport { } @Test + @SuppressWarnings("unchecked") + public void testStatefulFieldsClearedOnBeginTree1() throws Exception { + final DetailAST ast = new DetailAST(); + ast.setType(TokenTypes.LITERAL_ELSE); + + final NPathComplexityCheck check = new NPathComplexityCheck(); + Assert.assertTrue("Stateful field is not cleared after beginTree", + TestUtil.isStatefulFieldClearedDuringBeginTree(check, ast, "rangeValues", + rangeValues -> ((Collection<Context>) rangeValues).isEmpty())); + Assert.assertTrue("Stateful field is not cleared after beginTree", + TestUtil.isStatefulFieldClearedDuringBeginTree(check, ast, "expressionValues", + expressionValues -> ((Collection<Context>) expressionValues).isEmpty())); + } + + @Test + @SuppressWarnings("unchecked") + public void testStatefulFieldsClearedOnBeginTree2() throws Exception { + final DetailAST ast = new DetailAST(); + ast.setType(TokenTypes.LITERAL_RETURN); + ast.setLineNo(5); + final DetailAST child = new DetailAST(); + child.setType(TokenTypes.SEMI); + ast.addChild(child); + + final NPathComplexityCheck check = new NPathComplexityCheck(); + Assert.assertTrue("Stateful field is not cleared after beginTree", + TestUtil.isStatefulFieldClearedDuringBeginTree(check, ast, "isAfterValues", + isAfterValues -> ((Collection<Context>) isAfterValues).isEmpty())); + } + + @Test public void testDefaultConfiguration() throws Exception { final DefaultConfiguration checkConfig = - createCheckConfig(NPathComplexityCheck.class); + createModuleConfig(NPathComplexityCheck.class); createChecker(checkConfig); final String[] expected = CommonUtils.EMPTY_STRING_ARRAY; @@ -136,8 +170,8 @@ public class NPathComplexityCheckTest extends AbstractModuleTestSupport { TokenTypes.LITERAL_RETURN, TokenTypes.LITERAL_DEFAULT, }; - Assert.assertNotNull(actual); - Assert.assertArrayEquals(expected, actual); + Assert.assertNotNull("Acceptable tokens should not be null", actual); + Assert.assertArrayEquals("Invalid acceptable tokens", expected, actual); } @Test @@ -162,8 +196,8 @@ public class NPathComplexityCheckTest extends AbstractModuleTestSupport { TokenTypes.LITERAL_RETURN, TokenTypes.LITERAL_DEFAULT, }; - Assert.assertNotNull(actual); - Assert.assertArrayEquals(expected, actual); + Assert.assertNotNull("Required tokens should not be null", actual); + Assert.assertArrayEquals("Invalid required tokens", expected, actual); } @Test |