KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > net > sourceforge > pmd > ast > ASTFieldDeclarationTest


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.TargetJDK1_5;
6 import net.sourceforge.pmd.ast.ASTCompilationUnit;
7 import net.sourceforge.pmd.ast.ASTFieldDeclaration;
8 import net.sourceforge.pmd.ast.ASTType;
9 import net.sourceforge.pmd.ast.ASTVariableDeclarator;
10 import net.sourceforge.pmd.ast.ASTVariableDeclaratorId;
11 import net.sourceforge.pmd.ast.Dimensionable;
12 import net.sourceforge.pmd.ast.JavaParser;
13 import test.net.sourceforge.pmd.testframework.ParserTst;
14
15 import java.io.StringReader JavaDoc;
16
17 public class ASTFieldDeclarationTest extends ParserTst {
18
19     public void testIsArray() {
20         JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader JavaDoc(TEST1));
21         ASTCompilationUnit cu = parser.CompilationUnit();
22         Dimensionable node = (Dimensionable) cu.findChildrenOfType(ASTFieldDeclaration.class).get(0);
23         assertTrue(node.isArray());
24         assertEquals(1, node.getArrayDepth());
25     }
26
27     public void testMultiDimensionalArray() {
28         JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader JavaDoc(TEST2));
29         ASTCompilationUnit cu = parser.CompilationUnit();
30         Dimensionable node = (Dimensionable) cu.findChildrenOfType(ASTFieldDeclaration.class).get(0);
31         assertEquals(3, node.getArrayDepth());
32     }
33
34     public void testIsSyntacticallyPublic() {
35         JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader JavaDoc(TEST3));
36         ASTCompilationUnit cu = parser.CompilationUnit();
37         ASTFieldDeclaration node = (ASTFieldDeclaration) cu.findChildrenOfType(ASTFieldDeclaration.class).get(0);
38         assertFalse(node.isSyntacticallyPublic());
39         assertFalse(node.isPackagePrivate());
40         assertFalse(node.isPrivate());
41         assertFalse(node.isProtected());
42         assertTrue(node.isFinal());
43         assertTrue(node.isStatic());
44         assertTrue(node.isPublic());
45     }
46
47     public void testWithEnum() {
48         JavaParser parser = (new TargetJDK1_5()).createParser(new StringReader JavaDoc(TEST4));
49         ASTCompilationUnit cu = parser.CompilationUnit();
50         ASTFieldDeclaration node = (ASTFieldDeclaration) cu.findChildrenOfType(ASTFieldDeclaration.class).get(0);
51         assertFalse(node.isInterfaceMember());
52     }
53
54     private static final String JavaDoc TEST1 =
55             "class Foo {" + PMD.EOL +
56             " String[] foo;" + PMD.EOL +
57             "}";
58
59     private static final String JavaDoc TEST2 =
60             "class Foo {" + PMD.EOL +
61             " String[][][] foo;" + PMD.EOL +
62             "}";
63
64     private static final String JavaDoc TEST3 =
65             "interface Foo {" + PMD.EOL +
66             " int BAR = 6;" + PMD.EOL +
67             "}";
68
69     private static final String JavaDoc TEST4 =
70             "public enum Foo {" + PMD.EOL +
71             " FOO(1);" + PMD.EOL +
72             " private int x;" + PMD.EOL +
73             "}";
74
75     public void testGetVariableName() {
76         int id = 0;
77         ASTFieldDeclaration n = new ASTFieldDeclaration(id++);
78         ASTType t = new ASTType(id++);
79         ASTVariableDeclarator decl = new ASTVariableDeclarator(id++);
80         ASTVariableDeclaratorId declid = new ASTVariableDeclaratorId(id++);
81         n.jjtAddChild(t, 0);
82         t.jjtAddChild(decl, 0);
83         decl.jjtAddChild(declid, 0);
84         declid.setImage("foo");
85
86         assertEquals("foo", n.getVariableName());
87
88     }
89 }
90
Popular Tags