    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.ASTMethodDeclaration;
    7   import test.net.sourceforge.pmd.testframework.ParserTst;
    8
    9   import java.util.Iterator;
    10  import java.util.Set;
    11
    12  public class MethodDeclTest extends ParserTst {
    13      public void testPublic() throws Throwable {
    14          String access[] = {"public"};
    15          ASTMethodDeclaration amd = getMethodDecl(access);
    16          assertTrue("Expecting method to be public.", amd.isPublic());
    17      }
    18
    19      public void testPrivate() throws Throwable {
    20          String access[] = {"private"};
    21          ASTMethodDeclaration amd = getMethodDecl(access);
    22          assertTrue("Expecting method to be private.", amd.isPrivate());
    23      }
    24
    25      public void testProtected() throws Throwable {
    26          String access[] = {"protected"};
    27          ASTMethodDeclaration amd = getMethodDecl(access);
    28          assertTrue("Expecting method to be protected.", amd.isProtected());
    29      }
    30
    31      public void testFinal() throws Throwable {
    32          String access[] = {"public", "final"};
    33          ASTMethodDeclaration amd = getMethodDecl(access);
    34          assertTrue("Expecting method to be final.", amd.isFinal());
    35          assertTrue("Expecting method to be public.", amd.isPublic());
    36      }
    37
    38      public void testSynchronized() throws Throwable {
    39          String access[] = {"public", "synchronized"};
    40          ASTMethodDeclaration amd = getMethodDecl(access);
    41          assertTrue("Expecting method to be synchronized.", amd.isSynchronized());
    42          assertTrue("Expecting method to be public.", amd.isPublic());
    43      }
    44
    45      public void testAbstract() throws Throwable {
    46          String access[] = {"public", "abstract"};
    47          ASTMethodDeclaration amd = getMethodDecl(access);
    48          assertTrue("Expecting method to be abstract.", amd.isAbstract());
    49          assertTrue("Expecting method to be public.", amd.isPublic());
    50      }
    51
    52      public void testNative() throws Throwable {
    53          String access[] = {"private", "native"};
    54          ASTMethodDeclaration amd = getMethodDecl(access);
    55          assertTrue("Expecting method to be native.", amd.isNative());
    56          assertTrue("Expecting method to be private.", amd.isPrivate());
    57      }
    58
    59      public void testStrict() throws Throwable {
    60          String access[] = {"public", "strictfp"};
    61          ASTMethodDeclaration amd = getMethodDecl(access);
    62          assertTrue("Expecting method to be strict.", amd.isStrictfp());
    63          assertTrue("Expecting method to be public.", amd.isPublic());
    64      }
    65
    66      public ASTMethodDeclaration getMethodDecl(String access[]) throws Throwable {
    67          String javaCode = "public class Test { ";
    68          for (int i = 0; i < access.length; i++) {
    69              javaCode += access[i] + " ";
    70          }
    71
    72          javaCode += " void stuff() { } }";
    73
    74          Set methods = getNodes(ASTMethodDeclaration.class, javaCode);
    75
    76          assertEquals("Wrong number of methods", 1, methods.size());
    77
    78          Iterator i = methods.iterator();
    79          return (ASTMethodDeclaration) i.next();
    80      }
    81  }