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