package com.agilejava.maven.docbkx;
/*
* Copyright 2006,2007 Wilfred Springer
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import java.util.zip.ZipEntry;
import org.apache.commons.io.IOUtils;
import com.agilejava.maven.docbkx.ZipFileProcessor.ZipEntryVisitor;
import junit.framework.TestCase;
public class ZipFileProcessorTest extends TestCase {
private static List FILENAMES = Arrays.asList(new String[] { "test1.txt",
"test2.txt", "test3.txt" });
public void testProcessFile() throws Exception {
File file = new File(getDirectory(), "sample.zip");
ZipFileProcessor processor = new ZipFileProcessor(file);
final int[] count = new int[1];
processor.process(new ZipEntryVisitor() {
public void visit(ZipEntry entry, InputStream in)
throws IOException {
count[0]++;
assertTrue(FILENAMES.contains(entry.getName()));
if (entry.getCompressedSize() > 0
&& entry.getName().endsWith("test2.txt")) {
assertEquals("i have a dream", IOUtils.toString(in));
in.close();
}
}
});
assertEquals(3, count[0]);
}
private File getDirectory() {
String dirname = System.getProperty("basedir");
dirname = dirname == null ? System.getProperty("user.dir") : dirname;
File dir = new File(dirname);
dir = new File(dir, "src");
dir = new File(dir, "test");
dir = new File(dir, "resources");
return dir;
}
}