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.maven.shared.jar.AbstractJarAnalyzerTestCase;
23 import org.apache.maven.shared.jar.JarAnalyzer;
24
25 import java.io.File;
26
27
28
29
30
31 public class JarClassesAnalyzerTest
32 extends AbstractJarAnalyzerTestCase
33 {
34 private JarClassesAnalysis analyzer;
35
36 public void setUp()
37 throws Exception
38 {
39 super.setUp();
40
41 analyzer = (JarClassesAnalysis) lookup( JarClassesAnalysis.class.getName() );
42 }
43
44 public void testAnalyzeJXR()
45 throws Exception
46 {
47 JarClasses jclass = getJarClasses( "jxr.jar" );
48
49 assertFalse( "classes.imports.length > 0", jclass.getImports().isEmpty() );
50 assertFalse( "classes.packages.length > 0", jclass.getPackages().isEmpty() );
51 assertFalse( "classes.methods.length > 0", jclass.getMethods().isEmpty() );
52
53 assertNotContainsRegex( "Import List", "[\\[\\)\\(\\;]", jclass.getImports() );
54
55
56
57 assertTrue( "classes.imports", jclass.getImports().contains( "org.apache.maven.jxr.JXR" ) );
58 assertTrue( "classes.imports", jclass.getImports().contains( "org.apache.oro.text.perl.Perl5Util" ) );
59 assertTrue( "classes.imports", jclass.getImports().contains( "org.codehaus.plexus.util.IOUtil" ) );
60 assertTrue( "classes.packages", jclass.getPackages().contains( "org.apache.maven.jxr.pacman" ) );
61 }
62
63 public void testAnalyzeANT()
64 throws Exception
65 {
66 JarClasses jclass = getJarClasses( "ant.jar" );
67
68 assertFalse( "classes.imports.length > 0", jclass.getImports().isEmpty() );
69 assertFalse( "classes.packages.length > 0", jclass.getPackages().isEmpty() );
70 assertFalse( "classes.methods.length > 0", jclass.getMethods().isEmpty() );
71
72 assertNotContainsRegex( "Import List", "[\\[\\)\\(\\;]", jclass.getImports() );
73
74 assertTrue( "classes.imports", jclass.getImports().contains( "java.util.zip.GZIPInputStream" ) );
75 assertTrue( "classes.imports", jclass.getImports().contains( "org.apache.tools.ant.XmlLogger$TimedElement" ) );
76 assertTrue( "classes.imports", jclass.getImports().contains( "org.apache.tools.mail.MailMessage" ) );
77 assertTrue( "classes.packages", jclass.getPackages().contains( "org.apache.tools.ant" ) );
78 assertTrue( "classes.packages", jclass.getPackages().contains( "org.apache.tools.bzip2" ) );
79 }
80
81 public void testAnalyzeJarWithInvalidClassFile()
82 throws Exception
83 {
84 JarClasses jclass = getJarClasses( "invalid-class-file.jar" );
85
86
87 assertTrue( jclass.getClassNames().isEmpty() );
88 assertTrue( jclass.getPackages().isEmpty() );
89 assertTrue( jclass.getImports().isEmpty() );
90 assertNull( jclass.getJdkRevision() );
91 assertTrue( jclass.getMethods().isEmpty() );
92 }
93
94 public void testAnalyzeJarWithDebug()
95 throws Exception
96 {
97 JarClasses jclass = getJarClasses( "helloworld-1.4-debug.jar" );
98
99 assertTrue( "has debug", jclass.isDebugPresent() );
100 }
101
102 public void testAnalyzeJarWithoutDebug()
103 throws Exception
104 {
105 JarClasses jclass = getJarClasses( "helloworld-1.4.jar" );
106
107 assertFalse( "no debug present", jclass.isDebugPresent() );
108 }
109
110 public void testAnalyzeJarVersion16()
111 throws Exception
112 {
113 JarClasses jclass = getJarClasses( "helloworld-1.6.jar" );
114
115 assertEquals( "jdkrevision", "1.6", jclass.getJdkRevision() );
116 }
117
118 public void testAnalyzeJarVersion15()
119 throws Exception
120 {
121 JarClasses jclass = getJarClasses( "helloworld-1.5.jar" );
122
123 assertEquals( "jdkrevision", "1.5", jclass.getJdkRevision() );
124 }
125
126 public void testAnalyzeJarVersion14()
127 throws Exception
128 {
129 JarClasses jclass = getJarClasses( "helloworld-1.4.jar" );
130
131 assertEquals( "jdkrevision", "1.4", jclass.getJdkRevision() );
132 }
133
134 public void testAnalyzeJarVersion13()
135 throws Exception
136 {
137 JarClasses jclass = getJarClasses( "helloworld-1.3.jar" );
138
139 assertEquals( "jdkrevision", "1.3", jclass.getJdkRevision() );
140 }
141
142 public void testAnalyzeJarVersion12()
143 throws Exception
144 {
145 JarClasses jclass = getJarClasses( "helloworld-1.2.jar" );
146
147 assertEquals( "jdkrevision", "1.2", jclass.getJdkRevision() );
148 }
149
150 public void testAnalyzeJarVersion11()
151 throws Exception
152 {
153 JarClasses jclass = getJarClasses( "helloworld-1.1.jar" );
154
155 assertEquals( "jdkrevision", "1.1", jclass.getJdkRevision() );
156 }
157
158 private JarClasses getJarClasses( String filename )
159 throws Exception
160 {
161 File file = getSampleJar( filename );
162
163 JarClasses jclass = analyzer.analyze( new JarAnalyzer( file ) );
164 assertNotNull( "JarClasses", jclass );
165
166 return jclass;
167 }
168 }