1 package jdepend.framework; 2 3 import java.io.File ; 4 import java.io.IOException ; 5 import java.util.Collection ; 6 7 11 12 public class JarFileParserTest extends JDependTestCase { 13 14 private File jarFile; 15 private File zipFile; 16 17 public JarFileParserTest(String name) { 18 super(name); 19 } 20 21 protected void setUp() { 22 super.setUp(); 23 24 jarFile = new File (getTestDataDir() + "test.jar"); 25 zipFile = new File (getTestDataDir() + "test.zip"); 26 } 27 28 protected void tearDown() { 29 super.tearDown(); 30 } 31 32 public void testInvalidJarFile() throws IOException { 33 34 JavaClassBuilder builder = new JavaClassBuilder(); 35 File bogusFile = new File (getTestDataDir() + "bogus.jar"); 36 37 try { 38 39 builder.buildClasses(bogusFile); 40 fail("Should raise IOException"); 41 42 } catch (IOException expected) { 43 assertTrue(true); 44 } 45 } 46 47 public void testInvalidZipFile() throws IOException { 48 49 JavaClassBuilder builder = new JavaClassBuilder(); 50 File bogusFile = new File (getTestDataDir() + "bogus.zip"); 51 52 try { 53 54 builder.buildClasses(bogusFile); 55 fail("Should raise IOException"); 56 57 } catch (IOException expected) { 58 assertTrue(true); 59 } 60 } 61 62 public void testJarFile() throws IOException { 63 64 JavaClassBuilder builder = new JavaClassBuilder(); 65 66 Collection classes = builder.buildClasses(jarFile); 67 assertEquals(5, classes.size()); 68 69 assertClassesExist(classes); 70 assertInnerClassesExist(classes); 71 } 72 73 public void testJarFileWithoutInnerClasses() throws IOException { 74 75 FileManager fm = new FileManager(); 76 fm.acceptInnerClasses(false); 77 78 JavaClassBuilder builder = new JavaClassBuilder(fm); 79 80 Collection classes = builder.buildClasses(jarFile); 81 assertEquals(4, classes.size()); 82 83 assertClassesExist(classes); 84 } 85 86 public void testZipFile() throws IOException { 87 88 JavaClassBuilder builder = new JavaClassBuilder(); 89 90 Collection classes = builder.buildClasses(zipFile); 91 assertEquals(5, classes.size()); 92 93 assertClassesExist(classes); 94 assertInnerClassesExist(classes); 95 } 96 97 public void testZipFileWithoutInnerClasses() throws IOException { 98 99 FileManager fm = new FileManager(); 100 fm.acceptInnerClasses(false); 101 102 JavaClassBuilder builder = new JavaClassBuilder(fm); 103 104 Collection classes = builder.buildClasses(zipFile); 105 assertEquals(4, classes.size()); 106 107 assertClassesExist(classes); 108 } 109 110 public void testCountClasses() throws IOException { 111 112 JDepend jdepend = new JDepend(); 113 jdepend.addDirectory(getTestDataDir()); 114 115 jdepend.analyzeInnerClasses(true); 116 assertEquals(10, jdepend.countClasses()); 117 118 jdepend.analyzeInnerClasses(false); 119 assertEquals(8, jdepend.countClasses()); 120 } 121 122 private void assertClassesExist(Collection classes) { 123 assertTrue(classes.contains(new JavaClass( 124 "jdepend.framework.ExampleAbstractClass"))); 125 assertTrue(classes.contains(new JavaClass( 126 "jdepend.framework.ExampleInterface"))); 127 assertTrue(classes.contains(new JavaClass( 128 "jdepend.framework.ExampleConcreteClass"))); 129 } 130 131 private void assertInnerClassesExist(Collection classes) { 132 assertTrue(classes.contains(new JavaClass( 133 "jdepend.framework.ExampleConcreteClass$ExampleInnerClass"))); 134 } 135 } | Popular Tags |