    1   package test.net.sourceforge.pmd.ast;
    2
    3   import net.sourceforge.pmd.PMD;
    4   import net.sourceforge.pmd.TargetJDK1_5;
    5   import net.sourceforge.pmd.ast.ASTAnnotation;
    6   import net.sourceforge.pmd.ast.ParseException;
    7   import test.net.sourceforge.pmd.testframework.ParserTst;
    8
    9   public class ASTAnnotationTest extends ParserTst {
    10
    11      public void testAnnotationFailsWithJDK14() throws Throwable {
    12          try {
    13              getNodes(ASTAnnotation.class, TEST1);
    14              // FIXME fail("Should have failed to parse an annotation in JDK 1.4 mode");
    15          } catch (ParseException pe) {
    16              // cool
    17          }
    18      }
    19
    20      public void testAnnotationSucceedsWithJDK15() throws Throwable {
    21          try {
    22              getNodes(new TargetJDK1_5(), ASTAnnotation.class, TEST1);
    23          } catch (ParseException pe) {
    24              pe.printStackTrace();
    25              fail("Should have been able to parse an annotation in JDK 1.5 mode");
    26          }
    27      }
    28
    29      private static final String TEST1 =
    30              "public class Foo extends Buz {" + PMD.EOL +
    31              " @Override" + PMD.EOL +
    32              " void bar() {" + PMD.EOL +
    33              "  // overrides a superclass method" + PMD.EOL +
    34              " }" + PMD.EOL +
    35              "}";
    36
    37  }