ZipUtilDirTest.java
package org.zeroturnaround.zip;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.zeroturnaround.zip.commons.FileUtils;
import org.junit.Assert;
/**
* Tests that need a temporary directory for the test.
*/
public class ZipUtilDirTest {
@Rule
public TemporaryFolder tempSrcDir = new TemporaryFolder();
@Rule
public TemporaryFolder tempVerificationDir = new TemporaryFolder();
@Test
public void testPackDirectoryToStream() throws Exception {
// set up directory to be packed
File sourceDir = tempSrcDir.getRoot();
File file1 = ZipUtilTest.file("TestFile.txt");
File file2 = ZipUtilTest.file("TestFile-II.txt");
FileUtils.copyFileToDirectory(file1, sourceDir);
FileUtils.copyFileToDirectory(file2, sourceDir);
ByteArrayOutputStream actualOs = new ByteArrayOutputStream(1024);
// execute test
ZipUtil.pack(sourceDir, actualOs);
// verify
File verificationDir = tempVerificationDir.getRoot();
// comparing bytes is not reliable across JDK versions, so we
// unpack the archive and compare files instead
ZipUtil.unpack(new ByteArrayInputStream(actualOs.toByteArray()), verificationDir);
Assert.assertTrue(FileUtils.contentEquals(file1, new File(verificationDir, file1.getName())));
Assert.assertTrue(FileUtils.contentEquals(file2, new File(verificationDir, file2.getName())));
}
}