From 1dd516665b4c3e40c9f8cba6a5029fbdf26fc48c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Sun, 6 Feb 2022 13:58:27 +0100 Subject: [PATCH] Fix last test --- docs/pages/release_notes.md | 3 +++ .../sourceforge/pmd/lang/apex/SuppressWarningsTest.java | 6 ++++++ .../pmd/lang/apex/rule/AbstractApexRuleTest.java | 9 ++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index b607e5fa9d..9d7287c27a 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -35,6 +35,9 @@ It is now forbidden to report a violation: - With a `null` message - With a `null` set of format arguments (prefer a zero-length array) +Note that the message is set from the XML rule declaration, so this is only relevant +if you instantiate rules manually. + {% jdoc core::RuleContext %} now requires setting the current rule before calling {% jdoc core::lang.rule.Rule#apply(java.util.List, core::RuleContext)}. This is done automatically by `RuleSet#apply` and such. Creating and configuring a diff --git a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/SuppressWarningsTest.java b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/SuppressWarningsTest.java index f98c1af402..d1fd518512 100644 --- a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/SuppressWarningsTest.java +++ b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/SuppressWarningsTest.java @@ -21,6 +21,12 @@ import net.sourceforge.pmd.testframework.RuleTst; public class SuppressWarningsTest extends RuleTst { private static class BarRule extends AbstractApexRule { + + @Override + public String getMessage() { + return "a message"; + } + @Override public Object visit(ASTUserClass clazz, Object ctx) { if (clazz.getImage().equalsIgnoreCase("bar")) { diff --git a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRuleTest.java b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRuleTest.java index 896f647c18..e0d0bc2737 100644 --- a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRuleTest.java +++ b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRuleTest.java @@ -45,14 +45,21 @@ public class AbstractApexRuleTest extends ApexParserTestBase { private void run(String code) { ApexNode node = parse(code); + TopLevelRule rule = new TopLevelRule(); RuleContext ctx = new RuleContext(); ctx.setLanguageVersion(apex.getDefaultVersion()); - TopLevelRule rule = new TopLevelRule(); + ctx.setCurrentRule(rule); rule.apply(Collections.singletonList(node), ctx); assertEquals(1, ctx.getReport().size()); } private static class TopLevelRule extends AbstractApexRule { + + @Override + public String getMessage() { + return "a message"; + } + @Override public Object visit(ASTUserClass node, Object data) { addViolation(data, node);