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.ASTLocalVariableDeclaration;
7   import net.sourceforge.pmd.ast.JavaParser;
8   import test.net.sourceforge.pmd.testframework.ParserTst;
9   
10  import java.io.StringReader;
11  
12  public class ASTLocalVariableDeclarationTest extends ParserTst {
13  
14      public void testSingleDimArray() {
15          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST1));
16          ASTCompilationUnit cu = parser.CompilationUnit();
17          ASTLocalVariableDeclaration node = (ASTLocalVariableDeclaration)cu.findChildrenOfType(ASTLocalVariableDeclaration.class).get(0);
18          assertEquals(1, node.getArrayDepth());
19      }
20  
21      public void testMultDimArray() {
22          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST2));
23          ASTCompilationUnit cu = parser.CompilationUnit();
24          ASTLocalVariableDeclaration node = (ASTLocalVariableDeclaration)cu.findChildrenOfType(ASTLocalVariableDeclaration.class).get(0);
25          assertEquals(2, node.getArrayDepth());
26      }
27  
28      public void testMultDimArraySplitBraces() {
29          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST3));
30          ASTCompilationUnit cu = parser.CompilationUnit();
31          ASTLocalVariableDeclaration node = (ASTLocalVariableDeclaration)cu.findChildrenOfType(ASTLocalVariableDeclaration.class).get(0);
32          assertEquals(3, node.getArrayDepth());
33      }
34  
35      private static final String TEST1 =
36      "class Foo {" + PMD.EOL +
37      " void bar() {int x[] = null;}" + PMD.EOL +
38      "}";
39  
40      private static final String TEST2 =
41      "class Foo {" + PMD.EOL +
42      " void bar() {int x[][] = null;}" + PMD.EOL +
43      "}";
44  
45      private static final String TEST3 =
46      "class Foo {" + PMD.EOL +
47      " void bar() {int[] x[][] = null;}" + PMD.EOL +
48      "}";
49  
50  }