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 }