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