/* The contents of this file are subject to the license and copyright terms
* detailed in the license directory at the root of the source tree (also
* available online at http://fedora-commons.org/license/).
*/
package org.fcrepo.utilities;
import static org.junit.Assert.assertEquals;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.zip.ZipFile;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
public class TestZip {
@ClassRule
public static TemporaryFolder folder = new TemporaryFolder();
private File TMP_DIR;
private File SRC_DIR;
private File ZIP_FILE;
@Before
public void setUp() throws Exception {
TMP_DIR = folder.newFolder("TestZip");
SRC_DIR = new File(TMP_DIR, "src");
ZIP_FILE = new File(TMP_DIR, "test.zip");
File foo = new File(SRC_DIR, "foo");
File bar = new File(SRC_DIR, "bar");
File baz = new File(bar, "baz");
File footxt = new File(foo, "foo.txt");
File bartxt = new File(bar, "bar.txt");
foo.mkdirs();
baz.mkdirs();
FileWriter fw = new FileWriter(footxt);
fw.write("foo");
fw.close();
FileWriter bw = new FileWriter(bartxt);
bw.write("bar");
bw.close();
}
@Test
public void testZip() throws Exception {
Zip.zip(ZIP_FILE, SRC_DIR.listFiles());
ZipFile zf = new ZipFile(ZIP_FILE);
try {
assertEquals(5, zf.size());
} finally {
zf.close();
}
}
@Test
public void testUnzip() throws Exception {
FileInputStream fis = new FileInputStream(ZIP_FILE);
Zip.unzip(fis, TMP_DIR);
FileReader fr =
new FileReader(TMP_DIR + File.separator + "foo"
+ File.separator + "foo.txt");
BufferedReader buff = new BufferedReader(fr);
boolean eof = false;
while (!eof) {
String line = buff.readLine();
if (line == null) {
eof = true;
} else {
assertEquals("foo", line);
}
}
buff.close();
}
}