1 package test.net.sourceforge.pmd.symboltable;
2
3 import net.sourceforge.pmd.PMD;
4 import net.sourceforge.pmd.ast.ASTMethodDeclaration;
5 import net.sourceforge.pmd.symboltable.MethodScope;
6 import net.sourceforge.pmd.symboltable.NameOccurrence;
7 import net.sourceforge.pmd.symboltable.VariableNameDeclaration;
8
9 import java.util.List;
10 import java.util.Map;
11
12 public class MethodScopeTest extends STBBaseTst {
13
14 public void testMethodParameterOccurrenceRecorded() {
15 parseCode(TEST1);
16 Map m = ((ASTMethodDeclaration) (acu.findChildrenOfType(ASTMethodDeclaration.class)).get(0)).getScope().getVariableDeclarations();
17 VariableNameDeclaration vnd = (VariableNameDeclaration) m.keySet().iterator().next();
18 assertEquals("bar", vnd.getImage());
19 List occs = (List) m.get(vnd);
20 NameOccurrence occ = (NameOccurrence) occs.get(0);
21 assertEquals(3, occ.getLocation().getBeginLine());
22 }
23
24 public void testMethodName() {
25 parseCode(TEST1);
26 ASTMethodDeclaration meth = (ASTMethodDeclaration) (acu.findChildrenOfType(ASTMethodDeclaration.class)).get(0);
27 MethodScope ms = (MethodScope) meth.getScope();
28 assertEquals(ms.getName(), "foo");
29 }
30
31 public static final String TEST1 =
32 "public class Foo {" + PMD.EOL +
33 " void foo(int bar) {" + PMD.EOL +
34 " bar = 2;" + PMD.EOL +
35 " }" + PMD.EOL +
36 "}";
37
38 }