1 package test.net.sourceforge.pmd.dfa;
2
3 import org.junit.Test;
4
5 import net.sourceforge.pmd.PMD;
6 import net.sourceforge.pmd.ast.ASTCompilationUnit;
7 import net.sourceforge.pmd.ast.ASTMethodDeclarator;
8 import net.sourceforge.pmd.dfa.DataFlowNode;
9 import net.sourceforge.pmd.dfa.IDataFlowNode;
10 import net.sourceforge.pmd.dfa.variableaccess.VariableAccess;
11 import test.net.sourceforge.pmd.testframework.ParserTst;
12
13 import java.util.Iterator;
14 import java.util.List;
15
16 public class GeneralFiddlingTest extends ParserTst {
17
18 @Test
19 public void test1() throws Throwable {
20 ASTCompilationUnit acu = buildDFA(TEST1);
21 ASTMethodDeclarator meth = acu.findChildrenOfType(ASTMethodDeclarator.class).get(0);
22 IDataFlowNode n = meth.getDataFlowNode();
23 List f = n.getFlow();
24 for (Iterator i = f.iterator(); i.hasNext();) {
25 DataFlowNode dfan = (DataFlowNode) i.next();
26 System.out.println(dfan);
27 List va = dfan.getVariableAccess();
28 for (Iterator j = va.iterator(); j.hasNext();) {
29 VariableAccess o = (VariableAccess) j.next();
30 System.out.println(o);
31 }
32 }
33 }
34
35 private static final String TEST1 =
36 "class Foo {" + PMD.EOL +
37 " void bar() {" + PMD.EOL +
38 " int x = 2;" + PMD.EOL +
39 " foo(x);" + PMD.EOL +
40 " x = 3;" + PMD.EOL +
41 " }" + PMD.EOL +
42 "}";
43
44 public static junit.framework.Test suite() {
45 return new junit.framework.JUnit4TestAdapter(GeneralFiddlingTest.class);
46 }
47 }