1 package test.net.sourceforge.pmd;
2
3 import junit.framework.TestCase;
4 import net.sourceforge.pmd.Rule;
5 import net.sourceforge.pmd.RuleContext;
6 import net.sourceforge.pmd.RuleViolation;
7
8 public class RuleViolationTest extends TestCase {
9
10 public void testConstructor1() {
11 Rule rule = new MockRule("name", "desc", "msg");
12 RuleContext ctx = new RuleContext();
13 ctx.setSourceCodeFilename("filename");
14 RuleViolation r = new RuleViolation(rule, 2, ctx);
15 assertEquals("object mismatch", rule, r.getRule());
16 assertEquals("line number is wrong", 2, r.getLine());
17 assertEquals("filename is wrong", "filename", r.getFilename());
18 }
19
20 public void testConstructor2() {
21 Rule rule = new MockRule("name", "desc", "msg");
22 RuleContext ctx = new RuleContext();
23 ctx.setSourceCodeFilename("filename");
24 RuleViolation r = new RuleViolation(rule, 2, "description", ctx);
25 assertEquals("object mismatch", rule, r.getRule());
26 assertEquals("line number is wrong", 2, r.getLine());
27 assertEquals("filename is wrong", "filename", r.getFilename());
28 assertEquals("description is wrong", "description", r.getDescription());
29 }
30
31 public void testComparatorWithDifferentFilenames() {
32 Rule rule = new MockRule("name", "desc", "msg");
33 RuleViolation.RuleViolationComparator comp = new RuleViolation.RuleViolationComparator();
34 RuleContext ctx = new RuleContext();
35 ctx.setSourceCodeFilename("filename1");
36 RuleViolation r1 = new RuleViolation(rule, 10, "description", ctx);
37 ctx.setSourceCodeFilename("filename2");
38 RuleViolation r2 = new RuleViolation(rule, 20, "description", ctx);
39 assertEquals(-1, comp.compare(r1, r2));
40 assertEquals(1, comp.compare(r2, r1));
41 }
42
43 public void testComparatorWithSameFileDifferentLines() {
44 Rule rule = new MockRule("name", "desc", "msg");
45 RuleViolation.RuleViolationComparator comp = new RuleViolation.RuleViolationComparator();
46 RuleContext ctx = new RuleContext();
47 ctx.setSourceCodeFilename("filename");
48 RuleViolation r1 = new RuleViolation(rule, 10, "description", ctx);
49 RuleViolation r2 = new RuleViolation(rule, 20, "description", ctx);
50 assertTrue(comp.compare(r1, r2) < 0);
51 assertTrue(comp.compare(r2, r1) > 0);
52 }
53
54 public void testComparatorWithSameFileSameLines() {
55 Rule rule = new MockRule("name", "desc", "msg");
56 RuleViolation.RuleViolationComparator comp = new RuleViolation.RuleViolationComparator();
57 RuleContext ctx = new RuleContext();
58 ctx.setSourceCodeFilename("filename");
59 RuleViolation r1 = new RuleViolation(rule, 10, "description", ctx);
60 RuleViolation r2 = new RuleViolation(rule, 10, "description", ctx);
61 assertEquals(0, comp.compare(r1, r2));
62 assertEquals(0, comp.compare(r2, r1));
63 }
64 }
This page was automatically generated by Maven