Search in sources :

Example 11 with ParametricRuleViolation

use of net.sourceforge.pmd.lang.rule.ParametricRuleViolation in project pmd by pmd.

the class RuleViolationTest method testComparatorWithDifferentFilenames.

@Test
public void testComparatorWithDifferentFilenames() {
    Rule rule = new MockRule("name", "desc", "msg", "rulesetname");
    RuleViolationComparator comp = RuleViolationComparator.INSTANCE;
    RuleContext ctx = new RuleContext();
    ctx.setSourceCodeFilename("filename1");
    DummyNode s = new DummyNode(1);
    s.testingOnlySetBeginLine(10);
    s.testingOnlySetBeginColumn(1);
    RuleViolation r1 = new ParametricRuleViolation<Node>(rule, ctx, s, "description");
    ctx.setSourceCodeFilename("filename2");
    DummyNode s1 = new DummyNode(1);
    s1.testingOnlySetBeginLine(10);
    s1.testingOnlySetBeginColumn(1);
    RuleViolation r2 = new ParametricRuleViolation<Node>(rule, ctx, s1, "description");
    assertEquals(-1, comp.compare(r1, r2));
    assertEquals(1, comp.compare(r2, r1));
}
Also used : ParametricRuleViolation(net.sourceforge.pmd.lang.rule.ParametricRuleViolation) DummyNode(net.sourceforge.pmd.lang.ast.DummyNode) MockRule(net.sourceforge.pmd.lang.rule.MockRule) ParametricRuleViolation(net.sourceforge.pmd.lang.rule.ParametricRuleViolation) MockRule(net.sourceforge.pmd.lang.rule.MockRule) Test(org.junit.Test)

Example 12 with ParametricRuleViolation

use of net.sourceforge.pmd.lang.rule.ParametricRuleViolation in project pmd by pmd.

the class RuleViolationTest method testConstructor1.

@Test
public void testConstructor1() {
    Rule rule = new MockRule("name", "desc", "msg", "rulesetname");
    RuleContext ctx = new RuleContext();
    ctx.setSourceCodeFilename("filename");
    DummyNode s = new DummyNode(1);
    s.testingOnlySetBeginLine(2);
    s.testingOnlySetBeginColumn(1);
    RuleViolation r = new ParametricRuleViolation<Node>(rule, ctx, s, rule.getMessage());
    assertEquals("object mismatch", rule, r.getRule());
    assertEquals("line number is wrong", 2, r.getBeginLine());
    assertEquals("filename is wrong", "filename", r.getFilename());
}
Also used : ParametricRuleViolation(net.sourceforge.pmd.lang.rule.ParametricRuleViolation) DummyNode(net.sourceforge.pmd.lang.ast.DummyNode) MockRule(net.sourceforge.pmd.lang.rule.MockRule) ParametricRuleViolation(net.sourceforge.pmd.lang.rule.ParametricRuleViolation) MockRule(net.sourceforge.pmd.lang.rule.MockRule) Test(org.junit.Test)

Example 13 with ParametricRuleViolation

use of net.sourceforge.pmd.lang.rule.ParametricRuleViolation in project pmd by pmd.

the class RuleViolationTest method testComparatorWithSameFileDifferentLines.

@Test
public void testComparatorWithSameFileDifferentLines() {
    Rule rule = new MockRule("name", "desc", "msg", "rulesetname");
    RuleViolationComparator comp = RuleViolationComparator.INSTANCE;
    RuleContext ctx = new RuleContext();
    ctx.setSourceCodeFilename("filename");
    DummyNode s = new DummyNode(1);
    s.testingOnlySetBeginLine(10);
    s.testingOnlySetBeginColumn(1);
    DummyNode s1 = new DummyNode(1);
    s1.testingOnlySetBeginLine(20);
    s1.testingOnlySetBeginColumn(1);
    RuleViolation r1 = new ParametricRuleViolation<Node>(rule, ctx, s, "description");
    RuleViolation r2 = new ParametricRuleViolation<Node>(rule, ctx, s1, "description");
    assertTrue(comp.compare(r1, r2) < 0);
    assertTrue(comp.compare(r2, r1) > 0);
}
Also used : ParametricRuleViolation(net.sourceforge.pmd.lang.rule.ParametricRuleViolation) DummyNode(net.sourceforge.pmd.lang.ast.DummyNode) MockRule(net.sourceforge.pmd.lang.rule.MockRule) ParametricRuleViolation(net.sourceforge.pmd.lang.rule.ParametricRuleViolation) MockRule(net.sourceforge.pmd.lang.rule.MockRule) Test(org.junit.Test)

Example 14 with ParametricRuleViolation

use of net.sourceforge.pmd.lang.rule.ParametricRuleViolation in project pmd by pmd.

the class AbstractRuleTest method testRuleSuppress.

@Test
public void testRuleSuppress() {
    MyRule r = new MyRule();
    RuleContext ctx = new RuleContext();
    Map<Integer, String> m = new HashMap<>();
    m.put(Integer.valueOf(5), "");
    ctx.setReport(new Report());
    ctx.getReport().suppress(m);
    ctx.setSourceCodeFilename("filename");
    DummyNode n = new DummyNode(1);
    n.testingOnlySetBeginColumn(5);
    n.testingOnlySetBeginLine(5);
    RuleViolation rv = new ParametricRuleViolation(r, ctx, n, "specificdescription");
    ctx.getReport().addRuleViolation(rv);
    assertTrue(ctx.getReport().isEmpty());
}
Also used : ParametricRuleViolation(net.sourceforge.pmd.lang.rule.ParametricRuleViolation) HashMap(java.util.HashMap) DummyNode(net.sourceforge.pmd.lang.ast.DummyNode) ParametricRuleViolation(net.sourceforge.pmd.lang.rule.ParametricRuleViolation) Test(org.junit.Test)

Aggregations

ParametricRuleViolation (net.sourceforge.pmd.lang.rule.ParametricRuleViolation)14 DummyNode (net.sourceforge.pmd.lang.ast.DummyNode)13 Test (org.junit.Test)10 MockRule (net.sourceforge.pmd.lang.rule.MockRule)6 FooRule (net.sourceforge.pmd.FooRule)4 RuleContext (net.sourceforge.pmd.RuleContext)4 HashMap (java.util.HashMap)2 Report (net.sourceforge.pmd.Report)2 Node (net.sourceforge.pmd.lang.ast.Node)2 ReportTest (net.sourceforge.pmd.ReportTest)1 RuleViolation (net.sourceforge.pmd.RuleViolation)1 Ignore (org.junit.Ignore)1