1 package test.net.sourceforge.pmd.ast; 2 3 import java.util.Iterator ; 4 import java.util.Set ; 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 { 15 int nrOfVarArgs = 0; 16 int nrOfNoVarArgs = 0; 17 18 Set ops = getNodes(new TargetJDK1_5(), ASTFormalParameter.class, TEST1); 19 for (Iterator 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 assertEquals(1, nrOfVarArgs); 33 assertEquals(1, nrOfNoVarArgs); 34 } 35 36 private static final String TEST1 = 37 "class Foo {" + PMD.EOL + 38 " void bar(int x, int... others) {}" + PMD.EOL + 39 "}"; 40 41 } 42 | Popular Tags |