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 net.sourceforge.pmd.ast.ASTClassDeclaration;
7   
8   import java.util.Iterator;
9   import java.util.Set;
10  
11  public class ClassDeclTest extends ParserTst {
12  
13      public void testPublic() throws Throwable {
14          String access[] = {"public"};
15          ASTClassDeclaration acd = getClassDecl(access);
16          verifyFlags(acd, true, false, false, false);
17      }
18  
19      public void testAbstract() throws Throwable {
20          String access[] = {"abstract"};
21          ASTClassDeclaration acd = getClassDecl(access);
22          verifyFlags(acd, false, true, false, false);
23      }
24  
25      public void testFinal() throws Throwable {
26          String access[] = {"final"};
27          ASTClassDeclaration acd = getClassDecl(access);
28          verifyFlags(acd, false, false, true, false);
29      }
30  
31      public void testStrict() throws Throwable {
32          String access[] = {"strictfp"};
33          ASTClassDeclaration acd = getClassDecl(access);
34          verifyFlags(acd, false, false, false, true);
35      }
36  
37      public void testPublicFinal() throws Throwable {
38          String access[] = {"public", "final"};
39          ASTClassDeclaration acd = getClassDecl(access);
40          verifyFlags(acd, true, false, true, false);
41      }
42  
43      public void verifyFlags(ASTClassDeclaration acd, boolean bPublic, boolean bAbstract, boolean bFinal, boolean bStrict) {
44          assertEquals("Public: ", bPublic, acd.isPublic());
45          assertEquals("Abstract: ", bAbstract, acd.isAbstract());
46          assertEquals("Final: ", bFinal, acd.isFinal());
47          assertEquals("Strict: ", bStrict, acd.isStrict());
48      }
49  
50      public ASTClassDeclaration getClassDecl(String access[]) throws Throwable {
51          String javaCode = "";
52  
53          for (int i = 0; i < access.length; i++) {
54              javaCode += access[i] + " ";
55          }
56  
57          javaCode += " class Test { } ";
58  
59          Set classes = getNodes(ASTClassDeclaration.class, javaCode);
60  
61          assertEquals("Wrong number of classes", 1, classes.size());
62          Iterator i = classes.iterator();
63          return (ASTClassDeclaration) i.next();
64      }
65  }