package fr.openwide.core.test.commons.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.File; import java.util.List; import org.apache.commons.io.filefilter.NameFileFilter; import org.junit.Test; import de.schlichtherle.truezip.file.TFile; import fr.openwide.core.commons.util.FileUtils; public class TestFileUtils { private static final String DIRECTORY = "src/test/resources/FileUtils/"; private static final String ZIP_FILE_PATH = DIRECTORY + "test.zip"; @Test public void testGetFile() { File file; // Test sur un répertoire File directoryFile = new File(DIRECTORY); assertTrue(directoryFile.exists()); assertTrue(directoryFile.isDirectory()); file = FileUtils.getFile(directoryFile, "test1.txt"); assertTrue(file.exists()); file = FileUtils.getFile(directoryFile, "test2"); assertTrue(file.exists()); // Test sur une archive File archiveFile = new File(ZIP_FILE_PATH); assertTrue(archiveFile.exists()); assertTrue(archiveFile.length() > 0); TFile archiveDirectory = new TFile(archiveFile.getAbsolutePath()); assertTrue(archiveDirectory.isDirectory()); file = FileUtils.getFile(archiveDirectory, "test1.xls"); assertTrue(file.exists()); file = FileUtils.getFile(archiveDirectory, "test2.doc"); assertTrue(file.exists()); file = FileUtils.getFile(archiveDirectory, "test3"); assertTrue(file.exists()); try { file = FileUtils.getFile(archiveDirectory, "test4.txt"); fail("Si aucun fichier n'est trouvé avec FileUtils.getFile une exception est levée"); } catch (IllegalArgumentException e) { } } @Test public void testList() { List<File> files; // Test sur un répertoire File directoryFile = new File(DIRECTORY); assertTrue(directoryFile.exists()); assertTrue(directoryFile.isDirectory()); files = FileUtils.list(directoryFile, new NameFileFilter("test1.txt")); assertEquals(1, files.size()); assertTrue(files.iterator().next().exists()); files = FileUtils.list(directoryFile, new NameFileFilter("test2")); assertEquals(1, files.size()); assertTrue(files.iterator().next().exists()); // Test sur une archive existante File archiveFile = new File(ZIP_FILE_PATH); assertTrue(archiveFile.exists()); assertTrue(archiveFile.length() > 0); TFile archiveDirectory = new TFile(archiveFile.getAbsolutePath()); assertTrue(archiveDirectory.isDirectory()); files = FileUtils.list(archiveDirectory, new NameFileFilter("test1.xls")); assertEquals(1, files.size()); assertTrue(files.iterator().next().exists()); files = FileUtils.list(archiveDirectory, new NameFileFilter("test2.doc")); assertEquals(1, files.size()); assertTrue(files.iterator().next().exists()); files = FileUtils.list(archiveDirectory, new NameFileFilter("test3")); assertEquals(1, files.size()); assertTrue(files.iterator().next().exists()); files = FileUtils.list(archiveDirectory, new NameFileFilter("test4.txt")); assertEquals(0, files.size()); // Test sur une archive non-existante archiveDirectory = new TFile("foo.bar"); try { files = FileUtils.list(archiveDirectory, new NameFileFilter("abcdef")); fail("Si l'archive ne peut être lue une exception est levée"); } catch (IllegalStateException e) { } } }