1   package test.net.sourceforge.pmd.ast;
2   
3   import static org.junit.Assert.assertEquals;
4   import net.sourceforge.pmd.PMD;
5   import net.sourceforge.pmd.TargetJDK1_4;
6   import net.sourceforge.pmd.ast.ASTCompilationUnit;
7   import net.sourceforge.pmd.ast.ASTLocalVariableDeclaration;
8   import net.sourceforge.pmd.ast.JavaParser;
9   
10  import org.junit.Test;
11  
12  import test.net.sourceforge.pmd.testframework.ParserTst;
13  
14  import java.io.StringReader;
15  
16  public class ASTLocalVariableDeclarationTest extends ParserTst {
17  
18      @Test
19      public void testSingleDimArray() {
20          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST1));
21          ASTCompilationUnit cu = parser.CompilationUnit();
22          ASTLocalVariableDeclaration node = cu.findChildrenOfType(ASTLocalVariableDeclaration.class).get(0);
23          assertEquals(1, node.getArrayDepth());
24      }
25  
26      @Test
27      public void testMultDimArray() {
28          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST2));
29          ASTCompilationUnit cu = parser.CompilationUnit();
30          ASTLocalVariableDeclaration node = cu.findChildrenOfType(ASTLocalVariableDeclaration.class).get(0);
31          assertEquals(2, node.getArrayDepth());
32      }
33  
34      @Test
35      public void testMultDimArraySplitBraces() {
36          JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST3));
37          ASTCompilationUnit cu = parser.CompilationUnit();
38          ASTLocalVariableDeclaration node = cu.findChildrenOfType(ASTLocalVariableDeclaration.class).get(0);
39          assertEquals(3, node.getArrayDepth());
40      }
41  
42      private static final String TEST1 =
43              "class Foo {" + PMD.EOL +
44              " void bar() {int x[] = null;}" + PMD.EOL +
45              "}";
46  
47      private static final String TEST2 =
48              "class Foo {" + PMD.EOL +
49              " void bar() {int x[][] = null;}" + PMD.EOL +
50              "}";
51  
52      private static final String TEST3 =
53              "class Foo {" + PMD.EOL +
54              " void bar() {int[] x[][] = null;}" + PMD.EOL +
55              "}";
56  
57      public static junit.framework.Test suite() {
58          return new junit.framework.JUnit4TestAdapter(ASTLocalVariableDeclarationTest.class);
59      }
60  }