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 }