1 package test.net.sourceforge.pmd.symboltable;
2
3 import junit.framework.TestCase;
4 import net.sourceforge.pmd.ast.ASTVariableDeclaratorId;
5 import net.sourceforge.pmd.ast.SimpleJavaNode;
6 import net.sourceforge.pmd.symboltable.NameDeclaration;
7 import net.sourceforge.pmd.symboltable.NameOccurrence;
8 import net.sourceforge.pmd.symboltable.VariableNameDeclaration;
9 import net.sourceforge.pmd.symboltable.VariableUsageFinderFunction;
10 import net.sourceforge.pmd.util.Applier;
11
12 import java.util.ArrayList;
13 import java.util.HashMap;
14 import java.util.List;
15 import java.util.Map;
16
17 public class VariableUsageFinderFunctionTest extends TestCase {
18
19 public void testLookingForUsed() {
20 ASTVariableDeclaratorId variableDeclarationIdNode = new ASTVariableDeclaratorId(1);
21 variableDeclarationIdNode.setImage("x");
22 NameDeclaration nameDeclaration = new VariableNameDeclaration(variableDeclarationIdNode);
23 List nameOccurrences = new ArrayList();
24 nameOccurrences.add(new NameOccurrence(new SimpleJavaNode(2), "x"));
25
26 Map declarations = new HashMap();
27 declarations.put(nameDeclaration, nameOccurrences);
28
29 List vars = new ArrayList();
30 vars.add(nameDeclaration);
31
32 VariableUsageFinderFunction f = new VariableUsageFinderFunction(declarations);
33 Applier.apply(f, vars.iterator());
34 Map p = f.getUsed();
35 assertEquals(1, p.size());
36 }
37 }