1
2
3
4 package net.sourceforge.pmd.ast;
5
6 import static org.junit.Assert.assertEquals;
7 import static org.junit.Assert.assertTrue;
8
9 import java.util.Set;
10
11 import net.sourceforge.pmd.PMD;
12 import net.sourceforge.pmd.lang.LanguageVersion;
13 import net.sourceforge.pmd.lang.java.ast.ASTImportDeclaration;
14 import net.sourceforge.pmd.lang.java.ast.ParseException;
15 import net.sourceforge.pmd.testframework.ParserTst;
16
17 import org.junit.Test;
18
19
20 public class ASTImportDeclarationTest extends ParserTst {
21
22 @Test
23 public void testImportOnDemand() throws Throwable {
24 Set<ASTImportDeclaration> ops = getNodes(ASTImportDeclaration.class, TEST1);
25 assertTrue(ops.iterator().next().isImportOnDemand());
26 }
27
28 @Test
29 public void testGetImportedNameNode() throws Throwable {
30 ASTImportDeclaration i = getNodes(ASTImportDeclaration.class, TEST2).iterator().next();
31 assertEquals("foo.bar.Baz", i.getImportedName());
32 }
33
34 @Test
35 public void testStaticImport() throws Throwable {
36 Set<ASTImportDeclaration> ops = getNodes(ASTImportDeclaration.class, TEST3);
37 ASTImportDeclaration i = ops.iterator().next();
38 assertTrue(i.isStatic());
39 }
40
41 @Test(expected = ParseException.class)
42 public void testStaticImportFailsWithJDK14() throws Throwable {
43 getNodes(LanguageVersion.JAVA_14, ASTImportDeclaration.class, TEST3);
44 }
45
46 private static final String TEST1 =
47 "import foo.bar.*;" + PMD.EOL +
48 "public class Foo {}";
49
50 private static final String TEST2 =
51 "import foo.bar.Baz;" + PMD.EOL +
52 "public class Foo {}";
53
54 private static final String TEST3 =
55 "import static foo.bar.Baz;" + PMD.EOL +
56 "public class Foo {}";
57
58 public static junit.framework.Test suite() {
59 return new junit.framework.JUnit4TestAdapter(ASTImportDeclarationTest.class);
60 }
61 }