use of net.sourceforge.pmd.lang.rule.MockRule in project pmd by pmd.
the class ReportTest method testListener.
@Test
public void testListener() {
Report rpt = new Report();
rpt.addListener(this);
violationSemaphore = false;
RuleContext ctx = new RuleContext();
ctx.setSourceCodeFilename("file");
Node s = getNode(5, 5);
Rule rule1 = new MockRule("name", "desc", "msg", "rulesetname");
rpt.addRuleViolation(new ParametricRuleViolation<>(rule1, ctx, s, rule1.getMessage()));
assertTrue(violationSemaphore);
metricSemaphore = false;
rpt.addMetric(new Metric("test", 0, 0.0, 0.0, 0.0, 0.0, 0.0));
assertTrue("no metric", metricSemaphore);
}
use of net.sourceforge.pmd.lang.rule.MockRule in project pmd by pmd.
the class RuleReferenceTest method testOverride.
@Test
public void testOverride() {
final StringProperty PROPERTY1_DESCRIPTOR = new StringProperty("property1", "Test property", null, 0f);
MockRule rule = new MockRule();
rule.definePropertyDescriptor(PROPERTY1_DESCRIPTOR);
rule.setLanguage(LanguageRegistry.getLanguage(Dummy2LanguageModule.NAME));
rule.setName("name1");
rule.setProperty(PROPERTY1_DESCRIPTOR, "value1");
rule.setMessage("message1");
rule.setDescription("description1");
rule.addExample("example1");
rule.setExternalInfoUrl("externalInfoUrl1");
rule.setPriority(RulePriority.HIGH);
final StringProperty PROPERTY2_DESCRIPTOR = new StringProperty("property2", "Test property", null, 0f);
RuleReference ruleReference = new RuleReference();
ruleReference.setRule(rule);
ruleReference.definePropertyDescriptor(PROPERTY2_DESCRIPTOR);
ruleReference.setLanguage(LanguageRegistry.getLanguage(DummyLanguageModule.NAME));
ruleReference.setMinimumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.3"));
ruleReference.setMaximumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.7"));
ruleReference.setDeprecated(true);
ruleReference.setName("name2");
ruleReference.setProperty(PROPERTY1_DESCRIPTOR, "value2");
ruleReference.setProperty(PROPERTY2_DESCRIPTOR, "value3");
ruleReference.setMessage("message2");
ruleReference.setDescription("description2");
ruleReference.addExample("example2");
ruleReference.setExternalInfoUrl("externalInfoUrl2");
ruleReference.setPriority(RulePriority.MEDIUM_HIGH);
validateOverridenValues(PROPERTY1_DESCRIPTOR, PROPERTY2_DESCRIPTOR, ruleReference);
}
use of net.sourceforge.pmd.lang.rule.MockRule in project pmd by pmd.
the class RuleReferenceTest method testDeepCopyOverride.
@Test
public void testDeepCopyOverride() {
final StringProperty PROPERTY1_DESCRIPTOR = new StringProperty("property1", "Test property", null, 0f);
MockRule rule = new MockRule();
rule.definePropertyDescriptor(PROPERTY1_DESCRIPTOR);
rule.setLanguage(LanguageRegistry.getLanguage(Dummy2LanguageModule.NAME));
rule.setName("name1");
rule.setProperty(PROPERTY1_DESCRIPTOR, "value1");
rule.setMessage("message1");
rule.setDescription("description1");
rule.addExample("example1");
rule.setExternalInfoUrl("externalInfoUrl1");
rule.setPriority(RulePriority.HIGH);
final StringProperty PROPERTY2_DESCRIPTOR = new StringProperty("property2", "Test property", null, 0f);
RuleReference ruleReference = new RuleReference();
ruleReference.setRule(rule);
ruleReference.definePropertyDescriptor(PROPERTY2_DESCRIPTOR);
ruleReference.setLanguage(LanguageRegistry.getLanguage(DummyLanguageModule.NAME));
ruleReference.setMinimumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.3"));
ruleReference.setMaximumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.7"));
ruleReference.setDeprecated(true);
ruleReference.setName("name2");
ruleReference.setProperty(PROPERTY1_DESCRIPTOR, "value2");
ruleReference.setProperty(PROPERTY2_DESCRIPTOR, "value3");
ruleReference.setMessage("message2");
ruleReference.setDescription("description2");
ruleReference.addExample("example2");
ruleReference.setExternalInfoUrl("externalInfoUrl2");
ruleReference.setPriority(RulePriority.MEDIUM_HIGH);
validateOverridenValues(PROPERTY1_DESCRIPTOR, PROPERTY2_DESCRIPTOR, (RuleReference) ruleReference.deepCopy());
}
use of net.sourceforge.pmd.lang.rule.MockRule in project pmd by pmd.
the class RuleReferenceTest method testNotOverride.
@Test
public void testNotOverride() {
final StringProperty PROPERTY1_DESCRIPTOR = new StringProperty("property1", "Test property", null, 0f);
MockRule rule = new MockRule();
rule.definePropertyDescriptor(PROPERTY1_DESCRIPTOR);
rule.setLanguage(LanguageRegistry.getLanguage(DummyLanguageModule.NAME));
rule.setMinimumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.3"));
rule.setMaximumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.7"));
rule.setName("name1");
rule.setProperty(PROPERTY1_DESCRIPTOR, "value1");
rule.setMessage("message1");
rule.setDescription("description1");
rule.addExample("example1");
rule.setExternalInfoUrl("externalInfoUrl1");
rule.setPriority(RulePriority.HIGH);
RuleReference ruleReference = new RuleReference();
ruleReference.setRule(rule);
ruleReference.setLanguage(LanguageRegistry.getLanguage(DummyLanguageModule.NAME));
ruleReference.setMinimumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.3"));
ruleReference.setMaximumLanguageVersion(LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.7"));
ruleReference.setDeprecated(false);
ruleReference.setName("name1");
ruleReference.setProperty(PROPERTY1_DESCRIPTOR, "value1");
ruleReference.setMessage("message1");
ruleReference.setDescription("description1");
ruleReference.addExample("example1");
ruleReference.setExternalInfoUrl("externalInfoUrl1");
ruleReference.setPriority(RulePriority.HIGH);
assertEquals("Override failed", LanguageRegistry.getLanguage(DummyLanguageModule.NAME), ruleReference.getLanguage());
assertNull("Override failed", ruleReference.getOverriddenLanguage());
assertEquals("Override failed", LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.3"), ruleReference.getMinimumLanguageVersion());
assertNull("Override failed", ruleReference.getOverriddenMinimumLanguageVersion());
assertEquals("Override failed", LanguageRegistry.getLanguage(DummyLanguageModule.NAME).getVersion("1.7"), ruleReference.getMaximumLanguageVersion());
assertNull("Override failed", ruleReference.getOverriddenMaximumLanguageVersion());
assertEquals("Override failed", false, ruleReference.isDeprecated());
assertNull("Override failed", ruleReference.isOverriddenDeprecated());
assertEquals("Override failed", "name1", ruleReference.getName());
assertNull("Override failed", ruleReference.getOverriddenName());
assertEquals("Override failed", "value1", ruleReference.getProperty(PROPERTY1_DESCRIPTOR));
assertEquals("Override failed", "message1", ruleReference.getMessage());
assertNull("Override failed", ruleReference.getOverriddenMessage());
assertEquals("Override failed", "description1", ruleReference.getDescription());
assertNull("Override failed", ruleReference.getOverriddenDescription());
assertEquals("Override failed", 1, ruleReference.getExamples().size());
assertEquals("Override failed", "example1", ruleReference.getExamples().get(0));
assertNull("Override failed", ruleReference.getOverriddenExamples());
assertEquals("Override failed", "externalInfoUrl1", ruleReference.getExternalInfoUrl());
assertNull("Override failed", ruleReference.getOverriddenExternalInfoUrl());
assertEquals("Override failed", RulePriority.HIGH, ruleReference.getPriority());
assertNull("Override failed", ruleReference.getOverriddenPriority());
}
use of net.sourceforge.pmd.lang.rule.MockRule in project pmd by pmd.
the class RuleSetTest method testAddRuleSetByReferenceAllRule.
@Test
public void testAddRuleSetByReferenceAllRule() {
RuleSet set2 = createRuleSetBuilder("ruleset2").withFileName("foo").addRule(new MockRule("name", "desc", "msg", "rulesetname")).addRule(new MockRule("name2", "desc", "msg", "rulesetname")).build();
RuleSet set1 = createRuleSetBuilder("ruleset1").addRuleSetByReference(set2, true).build();
assertEquals("wrong rule size", 2, set1.getRules().size());
for (Rule rule : set1.getRules()) {
assertTrue("not a rule reference", rule instanceof RuleReference);
RuleReference ruleReference = (RuleReference) rule;
assertEquals("wrong ruleset file name", "foo", ruleReference.getRuleSetReference().getRuleSetFileName());
assertTrue("not all rule reference", ruleReference.getRuleSetReference().isAllRules());
}
}
Aggregations