1 32 33 package com.jeantessier.classreader; 34 35 import java.io.*; 36 import java.util.*; 37 38 import junit.framework.*; 39 40 public class TestZipClassfileLoader extends TestClassfileLoader { 41 private ClassfileLoader loader; 42 43 protected void setUp() throws Exception { 44 super.setUp(); 45 46 ClassfileLoader eventSource = new TransientClassfileLoader(); 47 eventSource.addLoadListener(this); 48 loader = new ZipClassfileLoader(eventSource); 49 } 50 51 public void testLoadFile() throws IOException { 52 String filename = TEST_DIR + File.separator + "onelevel.zip"; 53 assertTrue(filename + " missing", new File(filename).exists()); 54 55 loader.load(filename); 56 57 assertEquals("Begin Session", 0, getBeginSessionEvents().size()); 58 assertEquals("Begin Group", 1, getBeginGroupEvents().size()); 59 assertEquals("Begin File", 38, getBeginFileEvents().size()); 60 assertEquals("Begin Classfile", 17, getBeginClassfileEvents().size()); 61 assertEquals("End Classfile", 17, getEndClassfileEvents().size()); 62 assertEquals("End File", 38, getEndFileEvents().size()); 63 assertEquals("End Group", 1, getEndGroupEvents().size()); 64 assertEquals("End Session", 0, getEndSessionEvents().size()); 65 66 assertEquals("Group size", 38, ((LoadEvent) getBeginGroupEvents().getFirst()).getSize()); 67 } 68 69 public void testLoadFileWrongName() throws IOException { 70 String filename = TEST_DIR + File.separator + "onelevel.mis"; 71 assertTrue(filename + " missing", new File(filename).exists()); 72 73 loader.load(filename); 74 75 assertEquals("Begin Session", 0, getBeginSessionEvents().size()); 76 assertEquals("Begin Group", 1, getBeginGroupEvents().size()); 77 assertEquals("Begin File", 38, getBeginFileEvents().size()); 78 assertEquals("Begin Classfile", 17, getBeginClassfileEvents().size()); 79 assertEquals("End Classfile", 17, getEndClassfileEvents().size()); 80 assertEquals("End File", 38, getEndFileEvents().size()); 81 assertEquals("End Group", 1, getEndGroupEvents().size()); 82 assertEquals("End Session", 0, getEndSessionEvents().size()); 83 84 assertEquals("Group size", 38, ((LoadEvent) getBeginGroupEvents().getFirst()).getSize()); 85 } 86 87 public void testLoadWrongFile() throws IOException { 88 String filename = TEST_DIR + File.separator + "old" + File.separator + "ModifiedPackage" + File.separator + "ModifiedClass.class"; 89 assertTrue(filename + " missing", new File(filename).exists()); 90 91 loader.load(filename); 92 93 assertEquals("Begin Session", 0, getBeginSessionEvents().size()); 94 assertEquals("Begin Group", 0, getBeginGroupEvents().size()); 95 assertEquals("Begin File", 0, getBeginFileEvents().size()); 96 assertEquals("Begin Classfile", 0, getBeginClassfileEvents().size()); 97 assertEquals("End Classfile", 0, getEndClassfileEvents().size()); 98 assertEquals("End File", 0, getEndFileEvents().size()); 99 assertEquals("End Group", 0, getEndGroupEvents().size()); 100 assertEquals("End Session", 0, getEndSessionEvents().size()); 101 } 102 103 public void testLoadInputStream() throws IOException { 104 String filename = TEST_DIR + File.separator + "onelevel.zip"; 105 assertTrue(filename + " missing", new File(filename).exists()); 106 107 loader.load(filename, new FileInputStream(filename)); 108 109 assertEquals("Begin Session", 0, getBeginSessionEvents().size()); 110 assertEquals("Begin Group", 1, getBeginGroupEvents().size()); 111 assertEquals("Begin File", 38, getBeginFileEvents().size()); 112 assertEquals("Begin Classfile", 17, getBeginClassfileEvents().size()); 113 assertEquals("End Classfile", 17, getEndClassfileEvents().size()); 114 assertEquals("End File", 38, getEndFileEvents().size()); 115 assertEquals("End Group", 1, getEndGroupEvents().size()); 116 assertEquals("End Session", 0, getEndSessionEvents().size()); 117 118 assertEquals("Group size", -1, ((LoadEvent) getBeginGroupEvents().getFirst()).getSize()); 119 } 120 121 public void testLoadInputStreamWrongName() throws IOException { 122 String filename = TEST_DIR + File.separator + "onelevel.mis"; 123 assertTrue(filename + " missing", new File(filename).exists()); 124 125 loader.load(filename, new FileInputStream(filename)); 126 127 assertEquals("Begin Session", 0, getBeginSessionEvents().size()); 128 assertEquals("Begin Group", 1, getBeginGroupEvents().size()); 129 assertEquals("Begin File", 38, getBeginFileEvents().size()); 130 assertEquals("Begin Classfile", 17, getBeginClassfileEvents().size()); 131 assertEquals("End Classfile", 17, getEndClassfileEvents().size()); 132 assertEquals("End File", 38, getEndFileEvents().size()); 133 assertEquals("End Group", 1, getEndGroupEvents().size()); 134 assertEquals("End Session", 0, getEndSessionEvents().size()); 135 136 assertEquals("Group size", -1, ((LoadEvent) getBeginGroupEvents().getFirst()).getSize()); 137 } 138 139 public void testLoadWrongInputStream() throws IOException { 140 String filename = TEST_DIR + File.separator + "old" + File.separator + "ModifiedPackage" + File.separator + "ModifiedClass.class"; 141 assertTrue(filename + " missing", new File(filename).exists()); 142 143 loader.load(filename, new FileInputStream(filename)); 144 145 assertEquals("Begin Session", 0, getBeginSessionEvents().size()); 146 assertEquals("Begin Group", 1, getBeginGroupEvents().size()); 147 assertEquals("Begin File", 0, getBeginFileEvents().size()); 148 assertEquals("Begin Classfile", 0, getBeginClassfileEvents().size()); 149 assertEquals("End Classfile", 0, getEndClassfileEvents().size()); 150 assertEquals("End File", 0, getEndFileEvents().size()); 151 assertEquals("End Group", 1, getEndGroupEvents().size()); 152 assertEquals("End Session", 0, getEndSessionEvents().size()); 153 } 154 } 155 | Popular Tags |