/**
*
*/
package org.jboss.tools.common.zip.test;
import java.io.File;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import org.eclipse.core.internal.localstore.Bucket.Visitor;
import org.jboss.tools.common.zip.DefaultZipEntryVisitor;
import org.jboss.tools.common.zip.IZipEntryVisitor;
import org.jboss.tools.common.zip.UnzipOperation;
import org.jboss.tools.common.zip.ZipArchive;
import junit.framework.TestCase;
/**
* @author eskimo
*
*/
public class ZipArchiveTest extends AbstractZipTestCase {
/**
* Test method for {@link org.jboss.tools.common.zip.ZipArchive#ZipArchive(java.lang.String)}.
*/
public void testZipArchiveString() {
ZipArchive archive = new ZipArchive(getZip().getAbsolutePath());
assertEquals(getZip().getAbsolutePath(),archive.getAbsolutePath());
}
/**
* Test method for {@link org.jboss.tools.common.zip.ZipArchive#ZipArchive(java.io.File)}.
*/
public void testZipArchiveFile() {
ZipArchive archive = new ZipArchive(getZip());
assertEquals(getZip().getAbsolutePath(),archive.getAbsolutePath());
}
/**
* Test method for {@link org.jboss.tools.common.zip.ZipArchive#acceptVisitor(org.jboss.tools.common.zip.IZipEntryVisitor)}.
*/
public void testAcceptVisitor() throws IOException{
ZipArchive archive = new ZipArchive(getZip());
ZipVisitor visitor = new ZipVisitor();
archive.acceptVisitor(new UnzipOperation.FilteredZipEntryVisitor("META-INF.*", visitor));
assertTrue(visitor.isDirVisited() && visitor.isFileVisited());
ZipArchive.acceptVisitor(new ZipFileWrapper(getZip()),visitor);
}
public class ZipVisitor extends DefaultZipEntryVisitor {
boolean dirVisited = false;
boolean fileVisited = false;
public boolean isDirVisited() {
return dirVisited;
}
public boolean isFileVisited() {
return fileVisited;
}
@Override
public void visiteDirectoryEntry(ZipFile zipFIle, ZipEntry dir)
throws IOException {
super.visiteDirectoryEntry(zipFIle, dir);
this.dirVisited = true;
}
@Override
public void visiteFileEntry(ZipFile zipFile, ZipEntry file)
throws IOException {
super.visiteFileEntry(zipFile, file);
this.fileVisited = true;
}
}
/**
* @author eskimo
*
*/
public class ZipFileWrapper extends ZipFile {
public ZipFileWrapper(File file) throws ZipException, IOException {
super(file);
}
@Override
public void close() throws IOException {
super.close();
throw new IOException("Fake error");
}
}
}