1   /***
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3   */
4   package test.net.sourceforge.pmd.symboltable;
5   
6   import junit.framework.TestCase;
7   import net.sourceforge.pmd.PMD;
8   import net.sourceforge.pmd.TargetJDK1_4;
9   import net.sourceforge.pmd.ast.ASTCompilationUnit;
10  import net.sourceforge.pmd.ast.ASTInitializer;
11  import net.sourceforge.pmd.ast.ASTVariableDeclaratorId;
12  import net.sourceforge.pmd.ast.JavaParser;
13  import net.sourceforge.pmd.symboltable.SymbolFacade;
14  
15  import java.io.StringReader;
16  import java.util.List;
17  
18  public class AcceptanceTest extends TestCase {
19  
20      public void testClashingSymbols() {
21          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST1));
22          ASTCompilationUnit c = parser.CompilationUnit();
23          SymbolFacade stb = new SymbolFacade();
24          stb.initializeWith(c);
25      }
26  
27      public void testInitializer() {
28          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST_NON_STATIC_INITIALIZER));
29          ASTCompilationUnit c = parser.CompilationUnit();
30          ASTInitializer a = (ASTInitializer)(c.findChildrenOfType(ASTInitializer.class)).get(0);
31          assertFalse(a.isStatic());
32      }
33  
34      public void testStaticInitializer() {
35          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST_STATIC_INITIALIZER));
36          ASTCompilationUnit c = parser.CompilationUnit();
37          ASTInitializer a = (ASTInitializer)(c.findChildrenOfType(ASTInitializer.class)).get(0);
38          assertTrue(a.isStatic());
39      }
40  
41      public void testFindFieldDecl() {
42          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST4));
43          ASTCompilationUnit c = parser.CompilationUnit();
44          SymbolFacade stb = new SymbolFacade();
45          stb.initializeWith(c);
46          List children = c.findChildrenOfType(ASTVariableDeclaratorId.class);
47          ASTVariableDeclaratorId v1 = (ASTVariableDeclaratorId)children.get(0);
48      }
49  
50      private static final String TEST1 =
51      "import java.io.*;" + PMD.EOL +
52      "public class Foo  {" + PMD.EOL +
53      " void buz( ) {" + PMD.EOL +
54      "  Object o = new Serializable() { int x; };" + PMD.EOL +
55      "  Object o1 = new Serializable() { int x; };" + PMD.EOL +
56      " }" + PMD.EOL  +
57      "}" + PMD.EOL;
58  
59      private static final String TEST_NON_STATIC_INITIALIZER =
60      "public class Foo  {" + PMD.EOL +
61      " {} " + PMD.EOL +
62      "}" + PMD.EOL;
63  
64      private static final String TEST_STATIC_INITIALIZER =
65      "public class Foo  {" + PMD.EOL +
66      " static {} " + PMD.EOL +
67      "}" + PMD.EOL;
68  
69      private static final String TEST4 =
70      "public class Foo  {" + PMD.EOL +
71      " String bar; " + PMD.EOL +
72      " String baz; " + PMD.EOL +
73      "}" + PMD.EOL;
74  
75  }