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