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