From 4b45d1a7e6322371e37d34a44ae762ec1e325835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Thu, 6 Apr 2017 23:38:51 +0200 Subject: [PATCH 1/3] Rules handles AllocationExpressions --- .../rule/junit/JUnitTestsShouldIncludeAssertRule.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/junit/JUnitTestsShouldIncludeAssertRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/junit/JUnitTestsShouldIncludeAssertRule.java index 9056cc65ea..a3989d0a8f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/junit/JUnitTestsShouldIncludeAssertRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/junit/JUnitTestsShouldIncludeAssertRule.java @@ -138,9 +138,17 @@ public class JUnitTestsShouldIncludeAssertRule extends AbstractJUnitRule { Map> expectables) { if (expression != null) { + ASTPrimaryExpression pe = expression.getFirstChildOfType(ASTPrimaryExpression.class); if (pe != null) { - String img = pe.jjtGetChild(0).jjtGetChild(0).getImage(); + Node subChild = pe.jjtGetChild(0).jjtGetChild(0); + + // case of eg AllocationExpression + if (!(subChild instanceof ASTName)) { + return false; + } + + String img = subChild.getImage(); if (img.indexOf(".") == -1) { return false; } @@ -160,4 +168,3 @@ public class JUnitTestsShouldIncludeAssertRule extends AbstractJUnitRule { return false; } } - From 2c79299ecb6834a7ddffa74d41358f57e49ef67b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Thu, 6 Apr 2017 23:39:42 +0200 Subject: [PATCH 2/3] Added test case --- .../JUnitTestsShouldIncludeAssertRule.java | 4 ++-- .../junit/xml/JUnitTestsShouldIncludeAssert.xml | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/junit/JUnitTestsShouldIncludeAssertRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/junit/JUnitTestsShouldIncludeAssertRule.java index a3989d0a8f..82e1c02a3c 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/junit/JUnitTestsShouldIncludeAssertRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/junit/JUnitTestsShouldIncludeAssertRule.java @@ -142,12 +142,12 @@ public class JUnitTestsShouldIncludeAssertRule extends AbstractJUnitRule { ASTPrimaryExpression pe = expression.getFirstChildOfType(ASTPrimaryExpression.class); if (pe != null) { Node subChild = pe.jjtGetChild(0).jjtGetChild(0); - + // case of eg AllocationExpression if (!(subChild instanceof ASTName)) { return false; } - + String img = subChild.getImage(); if (img.indexOf(".") == -1) { return false; diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/junit/xml/JUnitTestsShouldIncludeAssert.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/junit/xml/JUnitTestsShouldIncludeAssert.xml index 4ef280593f..00d48dc19d 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/junit/xml/JUnitTestsShouldIncludeAssert.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/junit/xml/JUnitTestsShouldIncludeAssert.xml @@ -312,4 +312,21 @@ public class SimpleExpectedExceptionTest { } ]]> + + #330 Rule treats AllocationExpression correctly + 1 + + + From 30d230183a16ff682de35cb4c13d5b2d0982bbc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= Date: Thu, 6 Apr 2017 22:32:26 -0300 Subject: [PATCH 3/3] Update changelog, refs #331 --- src/site/markdown/overview/changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/site/markdown/overview/changelog.md b/src/site/markdown/overview/changelog.md index 59fc593510..d292ddc42b 100644 --- a/src/site/markdown/overview/changelog.md +++ b/src/site/markdown/overview/changelog.md @@ -468,6 +468,7 @@ You need to use this, if you have a large project with many files, and you hit t * [#1555](https://sourceforge.net/p/pmd/bugs/1555/): \[java] UnnecessaryFullyQualifiedName: Really necessary fully qualified name * java-junit * [#285](https://github.com/pmd/pmd/issues/285): \[java] JUnitTestsShouldIncludeAssertRule should support @Rule as well as @Test(expected = ...) + * [#330](https://github.com/pmd/pmd/issues/330): \[java] NPE applying rule JUnitTestsShouldIncludeAssert * java-logging-java * [#1541](https://sourceforge.net/p/pmd/bugs/1541/): \[java] InvalidSlf4jMessageFormat: False positive with placeholder and exception * [#1551](https://sourceforge.net/p/pmd/bugs/1551/): \[java] InvalidSlf4jMessageFormat: fails with NPE @@ -560,4 +561,5 @@ You need to use this, if you have a large project with many files, and you hit t * [#314](https://github.com/pmd/pmd/pull/314): \[vf] Bug fixes for incorrect Id detection and escaping * [#316](https://github.com/pmd/pmd/pull/316): \[apex] Ignoring certain rules in Batch classes, Queueable, and install scripts * [#317](https://github.com/pmd/pmd/pull/317): \[apex] Add support for safe ID assignment from URL param +* [#331](https://github.com/pmd/pmd/pull/331): \[java] JunitTestsShouldIncludeAssertRule now handles AllocationExpression correctly