1 package org.apache.maven.shared.jar.classes;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.bcel.classfile.ClassFormatException;
23 import org.apache.bcel.classfile.ClassParser;
24 import org.apache.bcel.classfile.DescendingVisitor;
25 import org.apache.bcel.classfile.JavaClass;
26 import org.apache.maven.shared.jar.AbstractJarAnalyzerTestCase;
27
28 import java.io.File;
29 import java.io.IOException;
30 import java.util.List;
31
32
33
34
35
36 public class ImportVisitorTest
37 extends AbstractJarAnalyzerTestCase
38 {
39 public void testImportsJxr()
40 throws ClassFormatException, IOException
41 {
42 File jxrjar = getSampleJar( "jxr.jar" );
43 String classname = "org/apache/maven/jxr/DirectoryIndexer.class";
44 ClassParser classParser = new ClassParser( jxrjar.getAbsolutePath(), classname );
45 JavaClass javaClass = classParser.parse();
46
47 ImportVisitor importVisitor = new ImportVisitor( javaClass );
48 DescendingVisitor descVisitor = new DescendingVisitor( javaClass, importVisitor );
49 javaClass.accept( descVisitor );
50
51 List imports = importVisitor.getImports();
52 assertNotNull( "Import List", imports );
53
54 assertNotContainsRegex( "Import List", "[\\[\\)\\(\\;]", imports );
55
56 assertTrue( "imports", imports.contains( "org.apache.maven.jxr.pacman.PackageType" ) );
57 assertTrue( "imports", imports.contains( "org.codehaus.plexus.util.IOUtil" ) );
58 assertTrue( "imports", imports.contains( "org.apache.oro.text.perl.Perl5Util" ) );
59 }
60
61 public void testImportsAnt()
62 throws ClassFormatException, IOException
63 {
64 File jxrjar = getSampleJar( "ant.jar" );
65 String classname = "org/apache/tools/ant/Target.class";
66 ClassParser classParser = new ClassParser( jxrjar.getAbsolutePath(), classname );
67 JavaClass javaClass = classParser.parse();
68
69 ImportVisitor importVisitor = new ImportVisitor( javaClass );
70 DescendingVisitor descVisitor = new DescendingVisitor( javaClass, importVisitor );
71 javaClass.accept( descVisitor );
72
73 List imports = importVisitor.getImports();
74 assertNotNull( "Import List", imports );
75
76 assertNotContainsRegex( "Import List", "[\\[\\)\\(\\;]", imports );
77
78 assertTrue( "imports", imports.contains( "org.apache.tools.ant.Location" ) );
79 assertTrue( "imports", imports.contains( "org.apache.tools.ant.Task" ) );
80 }
81 }