KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > net > sourceforge > pmd > symboltable > SourceFileScopeTest


1 package test.net.sourceforge.pmd.symboltable;
2
3 import net.sourceforge.pmd.PMD;
4 import net.sourceforge.pmd.ast.ASTCompilationUnit;
5 import net.sourceforge.pmd.symboltable.ClassNameDeclaration;
6
7 import java.util.Iterator JavaDoc;
8 import java.util.Map JavaDoc;
9
10 public class SourceFileScopeTest extends STBBaseTst {
11
12     public void testClassDeclAppears() {
13         parseCode(TEST1);
14         Map JavaDoc m = acu.getScope().getClassDeclarations();
15         ClassNameDeclaration classNameDeclaration = (ClassNameDeclaration) m.keySet().iterator().next();
16         assertEquals(classNameDeclaration.getImage(), "Foo");
17     }
18
19     public void testPackageIsEmptyString() {
20         parseCode(TEST1);
21         ASTCompilationUnit decl = (ASTCompilationUnit) (acu.findChildrenOfType(ASTCompilationUnit.class)).get(0);
22         assertEquals(decl.getScope().getEnclosingSourceFileScope().getPackageName(), "");
23     }
24
25     public void testPackageNameFound() {
26         parseCode(TEST2);
27         ASTCompilationUnit decl = (ASTCompilationUnit) (acu.findChildrenOfType(ASTCompilationUnit.class)).get(0);
28         assertEquals(decl.getScope().getEnclosingSourceFileScope().getPackageName(), "foo.bar");
29     }
30
31     public void testNestedClasses() {
32         parseCode(TEST3);
33         Map JavaDoc m = acu.getScope().getClassDeclarations();
34         Iterator JavaDoc iterator = m.keySet().iterator();
35         ClassNameDeclaration classNameDeclaration = (ClassNameDeclaration) iterator.next();
36         assertEquals(classNameDeclaration.getImage(), "Foo");
37         assertFalse(iterator.hasNext());
38     }
39
40     private static final String JavaDoc TEST1 =
41             "public class Foo {}" + PMD.EOL;
42
43     private static final String JavaDoc TEST2 =
44             "package foo.bar;" + PMD.EOL +
45             "public class Foo {" + PMD.EOL +
46             "}" + PMD.EOL;
47
48     private static final String JavaDoc TEST3 =
49             "public class Foo {" + PMD.EOL +
50             " public class Bar {" + PMD.EOL +
51             " }" + PMD.EOL +
52             "}" + PMD.EOL;
53
54 }
55
Popular Tags