1 /** 2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html 3 */ 4 package test.net.sourceforge.pmd.ast; 5 6 import static org.junit.Assert.assertEquals; 7 import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration; 8 9 import org.junit.Test; 10 11 import test.net.sourceforge.pmd.testframework.ParserTst; 12 13 import java.util.Iterator; 14 import java.util.Set; 15 16 public class ClassDeclTest extends ParserTst { 17 18 @Test 19 public void testPublic() throws Throwable { 20 String access[] = {"public"}; 21 ASTClassOrInterfaceDeclaration acd = getClassDecl(access); 22 verifyFlags(acd, true, false, false, false); 23 } 24 25 @Test 26 public void testAbstract() throws Throwable { 27 String access[] = {"abstract"}; 28 ASTClassOrInterfaceDeclaration acd = getClassDecl(access); 29 verifyFlags(acd, false, true, false, false); 30 } 31 32 @Test 33 public void testFinal() throws Throwable { 34 String access[] = {"final"}; 35 ASTClassOrInterfaceDeclaration acd = getClassDecl(access); 36 verifyFlags(acd, false, false, true, false); 37 } 38 39 @Test 40 public void testStrict() throws Throwable { 41 String access[] = {"strictfp"}; 42 ASTClassOrInterfaceDeclaration acd = getClassDecl(access); 43 verifyFlags(acd, false, false, false, true); 44 } 45 46 @Test 47 public void testPublicFinal() throws Throwable { 48 String access[] = {"public", "final"}; 49 ASTClassOrInterfaceDeclaration acd = getClassDecl(access); 50 verifyFlags(acd, true, false, true, false); 51 } 52 53 public void verifyFlags(ASTClassOrInterfaceDeclaration acd, boolean bPublic, boolean bAbstract, boolean bFinal, boolean bStrict) { 54 assertEquals("Public: ", bPublic, acd.isPublic()); 55 assertEquals("Abstract: ", bAbstract, acd.isAbstract()); 56 assertEquals("Final: ", bFinal, acd.isFinal()); 57 assertEquals("Strict: ", bStrict, acd.isStrictfp()); 58 } 59 60 public ASTClassOrInterfaceDeclaration getClassDecl(String access[]) throws Throwable { 61 String javaCode = ""; 62 63 for (int i = 0; i < access.length; i++) { 64 javaCode += access[i] + " "; 65 } 66 67 javaCode += " class Test { } "; 68 69 Set classes = getNodes(ASTClassOrInterfaceDeclaration.class, javaCode); 70 71 assertEquals("Wrong number of classes", 1, classes.size()); 72 Iterator i = classes.iterator(); 73 return (ASTClassOrInterfaceDeclaration) i.next(); 74 } 75 76 public static junit.framework.Test suite() { 77 return new junit.framework.JUnit4TestAdapter(ClassDeclTest.class); 78 } 79 }