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