VariableUsageFinderFunctionTest xref
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.JavaNameOccurrence;
14 import net.sourceforge.pmd.lang.java.symboltable.VariableNameDeclaration;
15 import net.sourceforge.pmd.lang.java.symboltable.VariableUsageFinderFunction;
16 import net.sourceforge.pmd.lang.symboltable.NameDeclaration;
17 import net.sourceforge.pmd.lang.symboltable.NameOccurrence;
18
19 import org.junit.Test;
20 public class VariableUsageFinderFunctionTest {
21
22 @Test
23 public void testLookingForUsed() {
24 ASTVariableDeclaratorId variableDeclarationIdNode = new ASTVariableDeclaratorId(1);
25 variableDeclarationIdNode.setImage("x");
26 VariableNameDeclaration nameDeclaration = new VariableNameDeclaration(variableDeclarationIdNode);
27 List<NameOccurrence> nameOccurrences = new ArrayList<NameOccurrence>();
28 nameOccurrences.add(new JavaNameOccurrence(new DummyJavaNode(2), "x"));
29
30 Map<NameDeclaration, List<NameOccurrence>> declarations = new HashMap<NameDeclaration, List<NameOccurrence>>();
31 declarations.put(nameDeclaration, nameOccurrences);
32
33 List<NameDeclaration> vars = new ArrayList<NameDeclaration>();
34 vars.add(nameDeclaration);
35
36 VariableUsageFinderFunction f = new VariableUsageFinderFunction(declarations);
37 Applier.apply(f, vars.iterator());
38 Map<NameDeclaration, List<NameOccurrence>> p = f.getUsed();
39 assertEquals(1, p.size());
40 }
41
42 public static junit.framework.Test suite() {
43 return new junit.framework.JUnit4TestAdapter(VariableUsageFinderFunctionTest.class);
44 }
45 }