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