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 ; 16 17 public class ASTFieldDeclarationTest extends ParserTst { 18 19 public void testIsArray() { 20 JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader (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 (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 (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 (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 TEST1 = 55 "class Foo {" + PMD.EOL + 56 " String[] foo;" + PMD.EOL + 57 "}"; 58 59 private static final String TEST2 = 60 "class Foo {" + PMD.EOL + 61 " String[][][] foo;" + PMD.EOL + 62 "}"; 63 64 private static final String TEST3 = 65 "interface Foo {" + PMD.EOL + 66 " int BAR = 6;" + PMD.EOL + 67 "}"; 68 69 private static final String 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 |