1 package test.net.sourceforge.pmd.ast; 2 3 import net.sourceforge.pmd.PMD; 4 import net.sourceforge.pmd.TargetJDK1_4; 5 import net.sourceforge.pmd.ast.ASTCompilationUnit; 6 import net.sourceforge.pmd.ast.ASTFieldDeclaration; 7 import net.sourceforge.pmd.ast.ASTType; 8 import net.sourceforge.pmd.ast.ASTVariableDeclarator; 9 import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; 10 import net.sourceforge.pmd.ast.Dimensionable; 11 import net.sourceforge.pmd.ast.JavaParser; 12 import test.net.sourceforge.pmd.testframework.ParserTst; 13 14 import java.io.StringReader; 15 16 public class ASTFieldDeclarationTest extends ParserTst{ 17 18 public void testIsArray() { 19 JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST1)); 20 ASTCompilationUnit cu = parser.CompilationUnit(); 21 Dimensionable node = (Dimensionable)cu.findChildrenOfType(ASTFieldDeclaration.class).get(0); 22 assertTrue(node.isArray()); 23 assertEquals(1, node.getArrayDepth()); 24 } 25 26 public void testMultiDimensionalArray() { 27 JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST2)); 28 ASTCompilationUnit cu = parser.CompilationUnit(); 29 Dimensionable node = (Dimensionable)cu.findChildrenOfType(ASTFieldDeclaration.class).get(0); 30 assertEquals(3, node.getArrayDepth()); 31 } 32 33 private static final String TEST1 = 34 "class Foo {" + PMD.EOL + 35 " String[] foo;" + PMD.EOL + 36 "}"; 37 38 private static final String TEST2 = 39 "class Foo {" + PMD.EOL + 40 " String[][][] foo;" + PMD.EOL + 41 "}"; 42 43 public void testGetVariableName() { 44 int id = 0; 45 ASTFieldDeclaration n = new ASTFieldDeclaration(id++); 46 ASTType t = new ASTType(id++); 47 ASTVariableDeclarator decl = new ASTVariableDeclarator(id++); 48 ASTVariableDeclaratorId declid = new ASTVariableDeclaratorId(id++); 49 n.jjtAddChild(t, 0); 50 t.jjtAddChild(decl, 0); 51 decl.jjtAddChild(declid, 0); 52 declid.setImage("foo"); 53 54 assertEquals("foo", n.getVariableName()); 55 56 } 57 }