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 }