View Javadoc
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.PMD; 8 import net.sourceforge.pmd.cpd.JavaTokenizer; 9 import net.sourceforge.pmd.cpd.Mark; 10 import net.sourceforge.pmd.cpd.Match; 11 import net.sourceforge.pmd.cpd.MatchAlgorithm; 12 import net.sourceforge.pmd.cpd.SourceCode; 13 import net.sourceforge.pmd.cpd.Tokens; 14 15 import java.io.StringReader; 16 import java.util.HashMap; 17 import java.util.Iterator; 18 import java.util.Map; 19 20 public class MatchAlgorithmTest extends TestCase { 21 22 public static final String LINE_1 = "public class Foo { "; 23 public static final String LINE_2 = " public void bar() {"; 24 public static final String LINE_3 = " System.out.println(\"hello\");"; 25 public static final String LINE_4 = " System.out.println(\"hello\");"; 26 public static final String LINE_5 = " }"; 27 public static final String LINE_6 = "}"; 28 29 public static String getSampleCode() { 30 return 31 LINE_1 + PMD.EOL + 32 LINE_2 + PMD.EOL + 33 LINE_3 + PMD.EOL + 34 LINE_4 + PMD.EOL + 35 LINE_5 + PMD.EOL + 36 LINE_6; 37 } 38 39 public void testSimple() throws Throwable { 40 String code = getSampleCode(); 41 JavaTokenizer tokenizer = new JavaTokenizer(); 42 SourceCode sourceCode = new SourceCode("Foo.java"); 43 Tokens tokens = new Tokens(); 44 tokenizer.tokenize(sourceCode, tokens, new StringReader(code)); 45 assertEquals(29, tokens.size()); 46 Map codeMap = new HashMap(); 47 codeMap.put("Foo.java", sourceCode); 48 49 MatchAlgorithm matchAlgorithm = new MatchAlgorithm(codeMap, tokens); 50 matchAlgorithm.findMatches(5); 51 52 Iterator matches = matchAlgorithm.matches(); 53 Match match = (Match)matches.next(); 54 assertFalse(matches.hasNext()); 55 56 Iterator marks = match.iterator(); 57 Mark mark1 = (Mark)marks.next(); 58 Mark mark2 = (Mark)marks.next(); 59 assertTrue(!marks.hasNext()); 60 61 assertEquals(2, mark2.getBeginLine()); 62 assertEquals(3, mark1.getBeginLine()); 63 assertTrue("Foo.java" == mark1.getTokenSrcID() && "Foo.java" == mark2.getTokenSrcID()); 64 assertEquals(LINE_3, match.getSourceCodeSlice()); 65 } 66 }

This page was automatically generated by Maven