KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > net > sourceforge > pmd > ast > ASTFormalParameterTest


1 package test.net.sourceforge.pmd.ast;
2
3 import java.util.Iterator JavaDoc;
4 import java.util.Set JavaDoc;
5
6 import net.sourceforge.pmd.PMD;
7 import net.sourceforge.pmd.TargetJDK1_5;
8 import net.sourceforge.pmd.ast.ASTFormalParameter;
9 import net.sourceforge.pmd.ast.ASTVariableDeclaratorId;
10 import test.net.sourceforge.pmd.testframework.ParserTst;
11
12 public class ASTFormalParameterTest extends ParserTst {
13
14     public void testVarargs() throws Throwable JavaDoc {
15         int nrOfVarArgs = 0;
16         int nrOfNoVarArgs = 0;
17         
18         Set JavaDoc ops = getNodes(new TargetJDK1_5(), ASTFormalParameter.class, TEST1);
19         for (Iterator JavaDoc iter = ops.iterator(); iter.hasNext();) {
20             ASTFormalParameter b = (ASTFormalParameter) iter.next();
21             ASTVariableDeclaratorId variableDeclId = (ASTVariableDeclaratorId)b.getFirstChildOfType(ASTVariableDeclaratorId.class);
22             if (!"x".equals(variableDeclId.getImage())) {
23                 assertTrue(b.isVarargs());
24                 nrOfVarArgs++;
25             } else {
26                 assertFalse(b.isVarargs());
27                 nrOfNoVarArgs++;
28             }
29         }
30         
31         //Ensure that both possibilities are tested
32
assertEquals(1, nrOfVarArgs);
33         assertEquals(1, nrOfNoVarArgs);
34     }
35
36     private static final String JavaDoc TEST1 =
37             "class Foo {" + PMD.EOL +
38             " void bar(int x, int... others) {}" + PMD.EOL +
39             "}";
40
41 }
42
Popular Tags