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