01: package test.net.sourceforge.pmd.dfa;
02:
03: import org.junit.Test;
04:
05: import net.sourceforge.pmd.PMD;
06: import net.sourceforge.pmd.ast.ASTCompilationUnit;
07: import net.sourceforge.pmd.ast.ASTMethodDeclarator;
08: import net.sourceforge.pmd.dfa.DataFlowNode;
09: 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(
22: ASTMethodDeclarator.class).get(0);
23: IDataFlowNode n = meth.getDataFlowNode();
24: List f = n.getFlow();
25: for (Iterator i = f.iterator(); i.hasNext();) {
26: DataFlowNode dfan = (DataFlowNode) i.next();
27: System.out.println(dfan);
28: List va = dfan.getVariableAccess();
29: for (Iterator j = va.iterator(); j.hasNext();) {
30: VariableAccess o = (VariableAccess) j.next();
31: System.out.println(o);
32: }
33: }
34: }
35:
36: private static final String TEST1 = "class Foo {" + PMD.EOL
37: + " void bar() {" + PMD.EOL + " int x = 2;" + PMD.EOL
38: + " foo(x);" + PMD.EOL + " x = 3;" + PMD.EOL + " }"
39: + PMD.EOL + "}";
40:
41: public static junit.framework.Test suite() {
42: return new junit.framework.JUnit4TestAdapter(
43: GeneralFiddlingTest.class);
44: }
45: }
|