aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java
diff options
context:
space:
mode:
authorAurimas Liutikas <aurimas@google.com>2017-11-28 20:29:59 -0800
committerAurimas Liutikas <aurimas@google.com>2017-11-28 20:29:59 -0800
commitb4aec831a096b89efed151c9b2c5754d9491e6ea (patch)
treef8c04870544dda72e99139fcc713a66b04514dcc /src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/NPathComplexityCheckTest.java
parentb8aa773e4886dabd0ffc5026420edd061069f044 (diff)
parentdbbd00f58fd36c7c23e24e6652076b735b8e7c0c (diff)
downloadcheckstyle-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.java50
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