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 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.TargetJDK1_4;
13 import net.sourceforge.pmd.ast.ASTImportDeclaration;
14 import net.sourceforge.pmd.ast.ParseException;
15
16 import org.junit.Test;
17
18 import test.net.sourceforge.pmd.testframework.ParserTst;
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(new TargetJDK1_4(), 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 }