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 }