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 }