1 package test.net.sourceforge.pmd.cpd;
2
3 import junit.framework.TestCase;
4 import net.sourceforge.pmd.cpd.CPDListener;
5 import net.sourceforge.pmd.cpd.CPDNullListener;
6 import net.sourceforge.pmd.cpd.Mark;
7 import net.sourceforge.pmd.cpd.MarkComparator;
8 import net.sourceforge.pmd.cpd.TokenEntry;
9
10 import java.io.File;
11 import java.util.ArrayList;
12 import java.util.List;
13
14 public class MarkComparatorTest extends TestCase {
15
16 private class MyListener implements CPDListener {
17 public void addedFile(int fileCount, File file) {
18 }
19 public void comparisonCountUpdate(long comparisons) {
20 gotCallback = true;
21 }
22 }
23
24 private boolean gotCallback;
25
26 public void testEqualMarksAreEqual() {
27 List code = getCode();
28 MarkComparator comp = new MarkComparator(new CPDNullListener(), code);
29 Mark mark1 = new Mark(code.size(), "/var/Foo.java", 0, 1);
30 Mark mark6 = new Mark(code.size(), "/var/Foo.java", 5, 1);
31 assertEquals(0, comp.compare(mark1, mark6));
32 }
33
34 public void testSameMarkIsEqual() {
35 List code = getCode();
36 MarkComparator comp = new MarkComparator(new CPDNullListener(), code);
37 Mark mark1 = new Mark(code.size(), "/var/Foo.java", 0, 1);
38 assertEquals(0, comp.compare(mark1, mark1));
39 }
40 public void testUnuequalMarksAreUnequal() {
41 List code = getCode();
42 MarkComparator comp = new MarkComparator(new CPDNullListener(), code);
43 Mark mark1 = new Mark(0, "/var/Foo.java", 0, 1);
44 Mark mark5 = new Mark(4, "/var/Foo.java", 4, 1);
45 assertFalse(0 == comp.compare(mark1, mark5));
46 }
47
48 public void testcomparisonCountCallback() {
49 gotCallback = false;
50 List code = getCode();
51 MarkComparator comp = new MarkComparator(new MyListener(), code, 3);
52 Mark mark1 = new Mark(code.size(), "/var/Foo.java", 0, 1);
53 Mark mark2 = new Mark(code.size(), "/var/Foo.java", 1, 1);
54 comp.compare(mark1, mark2);
55 comp.compare(mark1, mark2);
56 comp.compare(mark1, mark2);
57 assertTrue(gotCallback);
58 }
59
60 public void test1() {}
61
62 private List getCode() {
63 List code = new ArrayList();
64 TokenEntry te1 = new TokenEntry("System", 0, "/var/Foo.java", 1);
65 TokenEntry te2 = new TokenEntry(".", 1, "/var/Foo.java", 1);
66 TokenEntry te3 = new TokenEntry("out", 2, "/var/Foo.java", 1);
67 TokenEntry te4 = new TokenEntry(".", 3, "/var/Foo.java", 1);
68 TokenEntry te5 = new TokenEntry("println", 4, "/var/Foo.java", 1);
69 TokenEntry te6 = new TokenEntry("System", 5, "/var/Foo.java", 1);
70 code.add(te1);
71 code.add(te2);
72 code.add(te3);
73 code.add(te4);
74 code.add(te5);
75 code.add(te6);
76 return code;
77 }
78 }
This page was automatically generated by Maven