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