1
2
3
4 package net.sourceforge.pmd;
5
6 import static org.junit.Assert.assertEquals;
7 import static org.junit.Assert.assertTrue;
8 import junit.framework.JUnit4TestAdapter;
9 import net.sourceforge.pmd.Rule;
10 import net.sourceforge.pmd.RuleContext;
11 import net.sourceforge.pmd.RuleViolation;
12 import net.sourceforge.pmd.RuleViolationComparator;
13 import net.sourceforge.pmd.lang.java.ast.DummyJavaNode;
14 import net.sourceforge.pmd.lang.java.rule.JavaRuleViolation;
15 import net.sourceforge.pmd.lang.rule.MockRule;
16
17 import org.junit.Ignore;
18 import org.junit.Test;
19
20 public class RuleViolationTest {
21
22 @Ignore
23 @Test
24 public void testConstructor1() {
25 Rule rule = new MockRule("name", "desc", "msg", "rulesetname");
26 RuleContext ctx = new RuleContext();
27 ctx.setSourceCodeFilename("filename");
28 DummyJavaNode s = new DummyJavaNode(1);
29 s.testingOnly__setBeginLine(2);
30 RuleViolation r = new JavaRuleViolation(rule, ctx, s, rule.getMessage());
31 assertEquals("object mismatch", rule, r.getRule());
32 assertEquals("line number is wrong", 2, r.getBeginLine());
33 assertEquals("filename is wrong", "filename", r.getFilename());
34 }
35
36 @Ignore
37 @Test
38 public void testConstructor2() {
39 Rule rule = new MockRule("name", "desc", "msg", "rulesetname");
40 RuleContext ctx = new RuleContext();
41 ctx.setSourceCodeFilename("filename");
42 DummyJavaNode s = new DummyJavaNode(1);
43 s.testingOnly__setBeginLine(2);
44 RuleViolation r = new JavaRuleViolation(rule, ctx, s, "description");
45 assertEquals("object mismatch", rule, r.getRule());
46 assertEquals("line number is wrong", 2, r.getBeginLine());
47 assertEquals("filename is wrong", "filename", r.getFilename());
48 assertEquals("description is wrong", "description", r.getDescription());
49 }
50
51 @Ignore
52 @Test
53 public void testComparatorWithDifferentFilenames() {
54 Rule rule = new MockRule("name", "desc", "msg", "rulesetname");
55 RuleViolationComparator comp = RuleViolationComparator.INSTANCE;
56 RuleContext ctx = new RuleContext();
57 ctx.setSourceCodeFilename("filename1");
58 DummyJavaNode s = new DummyJavaNode(1);
59 s.testingOnly__setBeginLine(10);
60 RuleViolation r1 = new JavaRuleViolation(rule, ctx, s, "description");
61 ctx.setSourceCodeFilename("filename2");
62 DummyJavaNode s1 = new DummyJavaNode(1);
63 s1.testingOnly__setBeginLine(10);
64 RuleViolation r2 = new JavaRuleViolation(rule, ctx, s1, "description");
65 assertEquals(-1, comp.compare(r1, r2));
66 assertEquals(1, comp.compare(r2, r1));
67 }
68
69 @Ignore
70 @Test
71 public void testComparatorWithSameFileDifferentLines() {
72 Rule rule = new MockRule("name", "desc", "msg", "rulesetname");
73 RuleViolationComparator comp = RuleViolationComparator.INSTANCE;
74 RuleContext ctx = new RuleContext();
75 ctx.setSourceCodeFilename("filename");
76 DummyJavaNode s = new DummyJavaNode(1);
77 s.testingOnly__setBeginLine(10);
78 DummyJavaNode s1 = new DummyJavaNode(1);
79 s1.testingOnly__setBeginLine(20);
80 RuleViolation r1 = new JavaRuleViolation(rule, ctx, s, "description");
81 RuleViolation r2 = new JavaRuleViolation(rule, ctx, s1, "description");
82 assertTrue(comp.compare(r1, r2) < 0);
83 assertTrue(comp.compare(r2, r1) > 0);
84 }
85
86 @Ignore
87 @Test
88 public void testComparatorWithSameFileSameLines() {
89 Rule rule = new MockRule("name", "desc", "msg", "rulesetname");
90 RuleViolationComparator comp = RuleViolationComparator.INSTANCE;
91 RuleContext ctx = new RuleContext();
92 ctx.setSourceCodeFilename("filename");
93 DummyJavaNode s = new DummyJavaNode(1);
94 s.testingOnly__setBeginLine(10);
95 DummyJavaNode s1 = new DummyJavaNode(1);
96 s1.testingOnly__setBeginLine(10);
97 RuleViolation r1 = new JavaRuleViolation(rule, ctx, s, "description");
98 RuleViolation r2 = new JavaRuleViolation(rule, ctx, s1, "description");
99 assertEquals(1, comp.compare(r1, r2));
100 assertEquals(1, comp.compare(r2, r1));
101 }
102
103 public static junit.framework.Test suite() {
104 return new JUnit4TestAdapter(RuleViolationTest.class);
105 }
106 }