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  }