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