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 ; 8 import java.util.Map ; 9 10 public class SourceFileScopeTest extends STBBaseTst { 11 12 public void testClassDeclAppears() { 13 parseCode(TEST1); 14 Map 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 m = acu.getScope().getClassDeclarations(); 34 Iterator 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 TEST1 = 41 "public class Foo {}" + PMD.EOL; 42 43 private static final String TEST2 = 44 "package foo.bar;" + PMD.EOL + 45 "public class Foo {" + PMD.EOL + 46 "}" + PMD.EOL; 47 48 private static final String TEST3 = 49 "public class Foo {" + PMD.EOL + 50 " public class Bar {" + PMD.EOL + 51 " }" + PMD.EOL + 52 "}" + PMD.EOL; 53 54 } 55 | Popular Tags |