Search in sources :

Example 1 with MockRule

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);
}
Also used : Node(net.sourceforge.pmd.lang.ast.Node) DummyNode(net.sourceforge.pmd.lang.ast.DummyNode) Metric(net.sourceforge.pmd.stat.Metric) MockRule(net.sourceforge.pmd.lang.rule.MockRule) MockRule(net.sourceforge.pmd.lang.rule.MockRule) Test(org.junit.Test)

Example 2 with MockRule

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);
}
Also used : RuleReference(net.sourceforge.pmd.lang.rule.RuleReference) StringProperty(net.sourceforge.pmd.properties.StringProperty) MockRule(net.sourceforge.pmd.lang.rule.MockRule) Test(org.junit.Test)

Example 3 with MockRule

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());
}
Also used : RuleReference(net.sourceforge.pmd.lang.rule.RuleReference) StringProperty(net.sourceforge.pmd.properties.StringProperty) MockRule(net.sourceforge.pmd.lang.rule.MockRule) Test(org.junit.Test)

Example 4 with MockRule

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());
}
Also used : RuleReference(net.sourceforge.pmd.lang.rule.RuleReference) StringProperty(net.sourceforge.pmd.properties.StringProperty) MockRule(net.sourceforge.pmd.lang.rule.MockRule) Test(org.junit.Test)

Example 5 with MockRule

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());
    }
}
Also used : RuleReference(net.sourceforge.pmd.lang.rule.RuleReference) MockRule(net.sourceforge.pmd.lang.rule.MockRule) MockRule(net.sourceforge.pmd.lang.rule.MockRule) Test(org.junit.Test)

Aggregations

MockRule (net.sourceforge.pmd.lang.rule.MockRule)25 Test (org.junit.Test)24 DummyNode (net.sourceforge.pmd.lang.ast.DummyNode)10 ParametricRuleViolation (net.sourceforge.pmd.lang.rule.ParametricRuleViolation)7 RuleReference (net.sourceforge.pmd.lang.rule.RuleReference)6 Node (net.sourceforge.pmd.lang.ast.Node)5 StringProperty (net.sourceforge.pmd.properties.StringProperty)3 Renderer (net.sourceforge.pmd.renderers.Renderer)2 XMLRenderer (net.sourceforge.pmd.renderers.XMLRenderer)2 ArrayList (java.util.ArrayList)1 Random (java.util.Random)1 XPathRule (net.sourceforge.pmd.lang.rule.XPathRule)1 RuleFactory (net.sourceforge.pmd.rules.RuleFactory)1 Metric (net.sourceforge.pmd.stat.Metric)1 Ignore (org.junit.Ignore)1 Element (org.w3c.dom.Element)1