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