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  }