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