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.SourceCode; 10 import net.sourceforge.pmd.cpd.Tokenizer; 11 import net.sourceforge.pmd.cpd.Tokens; 12 13 import java.io.StringReader; 14 15 public class JavaTokensTokenizerTest extends TestCase { 16 17 public void test1() throws Throwable { 18 Tokenizer tokenizer = new JavaTokenizer(); 19 SourceCode sourceCode = new SourceCode("1"); 20 String data = "public class Foo {}"; 21 Tokens tokens = new Tokens(); 22 sourceCode.readSource(new StringReader(data)); 23 tokenizer.tokenize(sourceCode, tokens); 24 assertEquals(6, tokens.size()); 25 assertEquals("public class Foo {}", sourceCode.getSlice(1, 1)); 26 } 27 28 public void test2() throws Throwable { 29 Tokenizer t = new JavaTokenizer(); 30 SourceCode sourceCode = new SourceCode("1"); 31 String data = "public class Foo {" + PMD.EOL + "public void bar() {}" + PMD.EOL + "public void buz() {}" + PMD.EOL + "}"; 32 Tokens tokens = new Tokens(); 33 sourceCode.readSource(new StringReader(data)); 34 t.tokenize(sourceCode, tokens); 35 assertEquals("public class Foo {" + PMD.EOL + "public void bar() {}", sourceCode.getSlice(1,2)); 36 } 37 38 public void testDiscardSemicolons() throws Throwable { 39 Tokenizer t = new JavaTokenizer(); 40 SourceCode sourceCode = new SourceCode("1"); 41 String data = "public class Foo {private int x;}"; 42 Tokens tokens = new Tokens(); 43 sourceCode.readSource(new StringReader(data)); 44 t.tokenize(sourceCode, tokens); 45 assertEquals(9, tokens.size()); 46 } 47 48 public void testDiscardImports() throws Throwable { 49 Tokenizer t = new JavaTokenizer(); 50 SourceCode sourceCode = new SourceCode("1"); 51 String data = "import java.io.File;" + PMD.EOL + "public class Foo {}"; 52 Tokens tokens = new Tokens(); 53 sourceCode.readSource(new StringReader(data)); 54 t.tokenize(sourceCode, tokens); 55 assertEquals(6, tokens.size()); 56 } 57 58 public void testDiscardPkgStmts() throws Throwable { 59 Tokenizer t = new JavaTokenizer(); 60 SourceCode sourceCode = new SourceCode("1"); 61 String data = "package foo.bar.baz;" + PMD.EOL + "public class Foo {}"; 62 Tokens tokens = new Tokens(); 63 sourceCode.readSource(new StringReader(data)); 64 t.tokenize(sourceCode, tokens); 65 assertEquals(6, tokens.size()); 66 } 67 } 68 69