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  }