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.PMD;
7 import net.sourceforge.pmd.TargetJDK1_5;
8 import net.sourceforge.pmd.ast.ASTImportDeclaration;
9 import net.sourceforge.pmd.ast.ParseException;
10 import test.net.sourceforge.pmd.testframework.ParserTst;
11
12 import java.util.Set;
13
14 public class ASTImportDeclarationTest extends ParserTst {
15
16 public void testImportOnDemand() throws Throwable {
17 Set ops = getNodes(ASTImportDeclaration.class, TEST1);
18 assertTrue(((ASTImportDeclaration) (ops.iterator().next())).isImportOnDemand());
19 }
20
21 public void testGetImportedNameNode() throws Throwable {
22 ASTImportDeclaration i = (ASTImportDeclaration) (getNodes(ASTImportDeclaration.class, TEST2).iterator().next());
23 assertEquals("foo.bar.Baz", i.getImportedName());
24 }
25
26 public void testStaticImport() throws Throwable {
27 Set ops = getNodes(new TargetJDK1_5(), ASTImportDeclaration.class, TEST3);
28 ASTImportDeclaration i = (ASTImportDeclaration) (ops.iterator().next());
29 assertTrue(i.isStatic());
30 }
31
32 public void testStaticImportFailsWithJDK14() throws Throwable {
33 try {
34 getNodes(ASTImportDeclaration.class, TEST3);
35 fail("Should have failed to parse a static import in JDK 1.4 mode");
36 } catch (ParseException pe) {
37
38 }
39 }
40
41 private static final String TEST1 =
42 "import foo.bar.*;" + PMD.EOL +
43 "public class Foo {}";
44
45 private static final String TEST2 =
46 "import foo.bar.Baz;" + PMD.EOL +
47 "public class Foo {}";
48
49 private static final String TEST3 =
50 "import static foo.bar.Baz;" + PMD.EOL +
51 "public class Foo {}";
52
53 private static final String TEST4 =
54 "import foo.bar.Baz;" + PMD.EOL +
55 "public class Foo {}";
56
57 }