@Test(expected = IllegalArgumentException.class) public void testInvalidFile() { when(file.isFile()).thenReturn(Boolean.FALSE); new FileTaskOutput(file); }
/** * Initialize the given params with a {@link FileTaskOutput} * * @param params * @return */ public TaskTestContext pdfOutputTo(SingleOutputTaskParameters params) throws IOException { this.fileOutput = File.createTempFile("SejdaTest", ".pdf"); this.fileOutput.deleteOnExit(); params.setOutput(new FileTaskOutput(fileOutput)); return this; }
@Test public void testValidFile_doesntExist() { when(file.isFile()).thenReturn(Boolean.FALSE); when(file.exists()).thenReturn(Boolean.FALSE); FileTaskOutput instance = new FileTaskOutput(file); assertNotNull(instance); }
@Before public void setUp() throws TaskException { System.setProperty(Sejda.USER_CONFIG_FILE_PROPERTY_NAME, "sejda-test.xml"); parameters.setOutput(new FileTaskOutput(IOUtils.createTemporaryBuffer())); when(context.getTask(Matchers.any(TaskParameters.class))).thenReturn(task); when(context.isValidation()).thenReturn(Boolean.TRUE); }
@Test public void testCreateBufferFileOutNonExistingParentExists() throws TaskIOException, IOException { File dir = folder.newFolder("chuck.norris"); FileTaskOutput out = new FileTaskOutput(new File(dir.getAbsolutePath(), "I dont exist")); File tmp = IOUtils.createTemporaryBuffer(out); assertTrue(tmp.exists()); assertTrue(tmp.isFile()); assertEquals(dir.getAbsolutePath(), tmp.getParent()); }
@Test public void testCreateBufferFileOutNonExisting() throws TaskIOException { FileTaskOutput out = new FileTaskOutput(new File("I dont", "exist")); File tmp = IOUtils.createTemporaryBuffer(out); assertTrue(tmp.exists()); assertTrue(tmp.isFile()); assertEquals(SystemUtils.getJavaIoTmpDir().getAbsolutePath(), tmp.getParent()); }
@Test(expected = TaskOutputVisitException.class) public void failOnFile() throws TaskOutputVisitException { DefaultMultipleOutputWriter victim = new DefaultMultipleOutputWriter(ExistingOutputPolicy.OVERWRITE, context); new FileTaskOutput(mock(File.class)).accept(victim); }
@Test public void moveIfNotSameFile() throws IOException, TaskIOException { DefaultSingleOutputWriter victim = new DefaultSingleOutputWriter(ExistingOutputPolicy.OVERWRITE, context); File out = new File(folder.newFolder(), "not-existing.tmp"); out.deleteOnExit(); File outFile = createTemporaryBuffer(); victim.taskOutput(outFile); Files.write(outFile.toPath(), new byte[] { 0, 1, 1, 1 }); victim.dispatch(new FileTaskOutput(out)); assertEquals(4, out.length()); }
@Test public void testCreateBufferFileOut() throws TaskIOException, IOException { File file = folder.newFile("chuck.norris"); FileTaskOutput out = new FileTaskOutput(file); File tmp = IOUtils.createTemporaryBuffer(out); assertTrue(tmp.exists()); assertTrue(tmp.isFile()); assertEquals(file.getParent(), tmp.getParent()); }
@Test public void rename() throws IOException, TaskIOException { DefaultSingleOutputWriter victim = new DefaultSingleOutputWriter(ExistingOutputPolicy.RENAME, context); File out = folder.newFile(); out.deleteOnExit(); File outFile = createTemporaryBuffer(); victim.taskOutput(outFile); Files.write(outFile.toPath(), new byte[] { 0, 1, 1, 1 }); victim.dispatch(new FileTaskOutput(out)); assertEquals(2, out.getParentFile().list().length); }
@Test public void overwrites() throws IOException, TaskIOException { DefaultSingleOutputWriter victim = new DefaultSingleOutputWriter(ExistingOutputPolicy.OVERWRITE, context); File out = folder.newFile(); out.deleteOnExit(); File outFile = createTemporaryBuffer(); victim.taskOutput(outFile); Files.write(outFile.toPath(), new byte[] { 0, 1, 1, 1 }); victim.dispatch(new FileTaskOutput(out)); assertEquals(4, out.length()); assertEquals(1, out.getParentFile().list().length); }
@Test public void destinationExistsPolicyFail() throws IOException { ConstraintValidatorContext context = mock(ConstraintValidatorContext.class); ConstraintViolationBuilder builder = mock(ConstraintViolationBuilder.class); when(context.buildConstraintViolationWithTemplate(anyString())).thenReturn(builder); SetMetadataParameters params = new SetMetadataParameters(); params.setOutput(new FileTaskOutput(folder.newFile())); params.setExistingOutputPolicy(ExistingOutputPolicy.FAIL); assertFalse(victim.isValid(params, context)); verify(context).buildConstraintViolationWithTemplate(contains("File destination already exists")); }
@Test(expected = IOException.class) public void failOnExisting() throws IOException, TaskIOException { DefaultSingleOutputWriter victim = new DefaultSingleOutputWriter(ExistingOutputPolicy.FAIL, context); File out = folder.newFile(); out.deleteOnExit(); victim.taskOutput(out); File outFile = createTemporaryBuffer(); victim.taskOutput(outFile); Files.write(outFile.toPath(), new byte[] { 0, 1, 1, 1 }); victim.dispatch(new FileTaskOutput(out)); }
@Test(expected = IOException.class) public void skipBehavesLikeFails() throws IOException, TaskIOException { DefaultSingleOutputWriter victim = new DefaultSingleOutputWriter(ExistingOutputPolicy.SKIP, context); File out = folder.newFile(); out.deleteOnExit(); victim.taskOutput(out); File outFile = createTemporaryBuffer(); victim.taskOutput(outFile); Files.write(outFile.toPath(), new byte[] { 0, 1, 1, 1 }); victim.dispatch(new FileTaskOutput(out)); } }
@Test(expected = IOException.class) public void missingOutput() throws IOException { DefaultSingleOutputWriter victim = new DefaultSingleOutputWriter(ExistingOutputPolicy.OVERWRITE, context); victim.dispatch(new FileTaskOutput(folder.newFile())); }
@Test public void testInvalidParametersOutput() throws IOException { AttachmentsCollectionParameters victim = new AttachmentsCollectionParameters(); victim.addSource(StreamSource.newInstance(new ByteArrayInputStream(new byte[] { -1 }), "source")); victim.setOutput(new FileTaskOutput(folder.newFile("out.chuck"))); TestUtils.assertInvalidParameters(victim); } }
@Test public void testInvalidParameters() throws IOException { SetPagesLabelParameters victim = new SetPagesLabelParameters(); SingleTaskOutput output = new FileTaskOutput(folder.newFile()); victim.setOutput(output); InputStream stream = mock(InputStream.class); PdfSource<InputStream> input = PdfStreamSource.newInstanceNoPassword(stream, "name"); victim.setSource(input); TestUtils.assertInvalidParameters(victim); } }
@Test public void testInvalidParameters() throws IOException { SetPagesTransitionParameters victim = new SetPagesTransitionParameters(null); SingleTaskOutput output = new FileTaskOutput(folder.newFile()); victim.setOutput(output); InputStream stream = mock(InputStream.class); PdfSource<InputStream> input = PdfStreamSource.newInstanceNoPassword(stream, "name"); victim.setSource(input); TestUtils.assertInvalidParameters(victim); } }
@Test public void testInvalidParametersEmptyList() throws IOException { CombineReorderParameters victim = new CombineReorderParameters(); victim.setOutput(new FileTaskOutput(folder.newFile("out.pdf"))); victim.addSources(Arrays.asList(PdfFileSource.newInstanceNoPassword(folder.newFile("chuck.pdf")))); TestUtils.assertInvalidParameters(victim); } }
@Test public void invalidMinInputSize() throws IOException { AlternateMixMultipleInputParameters victim = new AlternateMixMultipleInputParameters(); victim.addInput(new PdfMixInput(PdfFileSource.newInstanceNoPassword(tmpFolder.newFile("test.pdf")), false, 1)); victim.setOutput(new FileTaskOutput(tmpFolder.newFile("out.pdf"))); TestUtils.assertInvalidParameters(victim); }