/** * Creates a {@link FileOrDirectoryTaskOutput} making sure the input file is a valid directory instance * * @param directory * @return */ public static FileOrDirectoryTaskOutput directory(File directory) { if (directory == null || !directory.isDirectory()) { throw new IllegalArgumentException("A not null directory instance is expected. Path: " + directory); } return new FileOrDirectoryTaskOutput(directory); } }
/** * Creates a {@link FileOrDirectoryTaskOutput} making sure the input file is a valid directory instance * * @param directory * @return */ public static FileOrDirectoryTaskOutput directory(File directory) { if (directory == null || !directory.isDirectory()) { throw new IllegalArgumentException("A not null directory instance is expected. Path: " + directory); } return new FileOrDirectoryTaskOutput(directory); } }
/** * Creates a {@link FileOrDirectoryTaskOutput} making sure the input file is a valid file instance * * @param file * @return */ public static FileOrDirectoryTaskOutput file(File file) { if (file == null || (file.exists() && !file.isFile())) { throw new IllegalArgumentException("A valid instance is expected (not null or existing file)."); } return new FileOrDirectoryTaskOutput(file); }
/** * Creates a {@link FileOrDirectoryTaskOutput} making sure the input file is a valid file instance * * @param file * @return */ public static FileOrDirectoryTaskOutput file(File file) { if (file == null || (file.exists() && !file.isFile())) { throw new IllegalArgumentException("A valid instance is expected (not null or existing file)."); } return new FileOrDirectoryTaskOutput(file); }
@Test public void testEquals() { File diffFile = mock(File.class); when(diffFile.isFile()).thenReturn(Boolean.TRUE); FileOrDirectoryTaskOutput eq1 = new FileOrDirectoryTaskOutput(file); FileOrDirectoryTaskOutput eq2 = new FileOrDirectoryTaskOutput(file); FileOrDirectoryTaskOutput eq3 = new FileOrDirectoryTaskOutput(file); FileOrDirectoryTaskOutput diff = new FileOrDirectoryTaskOutput(diffFile); TestUtils.testEqualsAndHashCodes(eq1, eq2, eq3, diff); } }
/** * Initialize the given params with a directory as {@link FileOrDirectoryTaskOutput} * * @param params * @return */ public TaskTestContext directoryOutputTo(SingleOrMultipleOutputTaskParameters params) throws IOException { this.fileOutput = Files.createTempDirectory("SejdaTest").toFile(); this.fileOutput.deleteOnExit(); params.setOutput(new FileOrDirectoryTaskOutput(fileOutput)); return this; }
/** * Initialize the given params with a pdf file as {@link FileOrDirectoryTaskOutput} * * @param params * @return */ public TaskTestContext pdfOutputTo(SingleOrMultipleOutputTaskParameters params) throws IOException { this.fileOutput = Files.createTempFile("SejdaTest", ".pdf").toFile(); this.fileOutput.deleteOnExit(); params.setOutput(new FileOrDirectoryTaskOutput(fileOutput)); return this; }
@Test public void testValidFile_doesntExist() { when(file.isFile()).thenReturn(Boolean.FALSE); when(file.exists()).thenReturn(Boolean.FALSE); FileOrDirectoryTaskOutput instance = new FileOrDirectoryTaskOutput(file); assertNotNull(instance); }
@Test public void testValidFile_exists() { FileOrDirectoryTaskOutput instance = new FileOrDirectoryTaskOutput(file); assertNotNull(instance); }
@Test public void testValidDirectory() { FileOrDirectoryTaskOutput instance = new FileOrDirectoryTaskOutput(directory); assertNotNull(instance); }
@Test public void testCreateBufferFileOrDirectoryOutNonExisting() throws TaskIOException { FileOrDirectoryTaskOutput out = new FileOrDirectoryTaskOutput(new File("I dont exist")); File tmp = IOUtils.createTemporaryBuffer(out); assertTrue(tmp.exists()); assertTrue(tmp.isFile()); assertEquals(SystemUtils.getJavaIoTmpDir().getAbsolutePath(), tmp.getParent()); }
@Test public void testCreateBufferFileOrDirectoryOutDir() throws TaskIOException, IOException { File dir = folder.newFolder(); FileOrDirectoryTaskOutput out = new FileOrDirectoryTaskOutput(dir); File tmp = IOUtils.createTemporaryBuffer(out); assertTrue(tmp.exists()); assertTrue(tmp.isFile()); assertEquals(dir.getAbsolutePath(), tmp.getParent()); }
@Test public void testCreateBufferFileOrDirectoryOutFile() throws TaskIOException, IOException { File file = folder.newFile("chuck.norris"); FileOrDirectoryTaskOutput out = new FileOrDirectoryTaskOutput(file); File tmp = IOUtils.createTemporaryBuffer(out); assertTrue(tmp.exists()); assertTrue(tmp.isFile()); assertEquals(file.getParent(), tmp.getParent()); }
@Test public void moveToFileOrDirSingleFile() throws TaskOutputVisitException, IOException { File out = folder.newFile(); assertEquals(0, out.length()); Path outFile = Files.createTempFile("sejda", ".tmp"); Files.write(outFile, new byte[] { 0, 1, 1, 1 }); DefaultMultipleOutputWriter victim = new DefaultMultipleOutputWriter(ExistingOutputPolicy.OVERWRITE, context); victim.addOutput(FileOutput.file(outFile.toFile()).name("out.pdf")); new FileOrDirectoryTaskOutput(out).accept(victim); assertEquals(4, out.length()); Files.deleteIfExists(outFile); } }
@Test public void moveToFileOrDirExsistingRenamed() throws TaskOutputVisitException, IOException { File outFile = folder.newFile(); DefaultMultipleOutputWriter victim = new DefaultMultipleOutputWriter(ExistingOutputPolicy.RENAME, context); victim.addOutput(FileOutput.file(folder.newFile()).name(outFile.getName())); new FileOrDirectoryTaskOutput(outFile.getParentFile()).accept(victim); assertEquals(2, outFile.getParentFile().list().length); }
@Test(expected = TaskOutputVisitException.class) public void moveToFileDirExsisting() throws TaskOutputVisitException, IOException { File outFile = folder.newFile(); DefaultMultipleOutputWriter victim = new DefaultMultipleOutputWriter(ExistingOutputPolicy.FAIL, context); victim.addOutput(FileOutput.file(outFile).name(outFile.getName())); new FileOrDirectoryTaskOutput(outFile.getParentFile()).accept(victim); }
@Test(expected = TaskOutputVisitException.class) public void failOnFileOrDir() throws TaskOutputVisitException, IOException { DefaultSingleOutputWriter victim = new DefaultSingleOutputWriter(ExistingOutputPolicy.OVERWRITE, context); new FileOrDirectoryTaskOutput(folder.newFolder()).accept(victim); }
@Test public void moveToFileOrDir() throws TaskOutputVisitException, IOException { File out = folder.newFolder(); DefaultMultipleOutputWriter victim = new DefaultMultipleOutputWriter(ExistingOutputPolicy.OVERWRITE, context); victim.addOutput(FileOutput.file(folder.newFile()).name("out.pdf")); new FileOrDirectoryTaskOutput(out).accept(victim); assertEquals(1, out.list().length); }
@Test public void testInvalidParametersEmptySourceList() throws IOException { AddBackPagesParameters victim = new AddBackPagesParameters(); victim.addPageRange(new PageRange(2)); victim.setBackPagesSource(PdfFileSource.newInstanceNoPassword(folder.newFile("source.pdf"))); victim.setOutput(new FileOrDirectoryTaskOutput(folder.newFolder())); TestUtils.assertInvalidParameters(victim); }
@Test(expected = TaskOutputVisitException.class) public void moveToFileOrDirInvalidOut() throws TaskOutputVisitException, IOException { DefaultMultipleOutputWriter victim = new DefaultMultipleOutputWriter(ExistingOutputPolicy.RENAME, context); victim.addOutput(FileOutput.file(folder.newFile()).name("a")); victim.addOutput(FileOutput.file(folder.newFile()).name("b")); new FileOrDirectoryTaskOutput(folder.newFile()).accept(victim); }