@Override public SplitByPagesParameters build() { SplitByPagesParameters params = new SplitByPagesParameters(); params.addPages(pages); params.setCompress(isCompress()); params.setExistingOutputPolicy(existingOutput()); params.setVersion(getVersion()); params.setOutput(getOutput()); params.setOutputPrefix(getPrefix()); params.addSource(getSource()); params.setOptimizationPolicy(getOptimizationPolicy()); params.discardOutline(isDiscardBookmarks()); return params; } }
private void setUpParameters() throws IOException { parameters = new SplitByPagesParameters(); parameters.setCompress(true); parameters.setVersion(PdfVersion.VERSION_1_6); parameters.setExistingOutputPolicy(ExistingOutputPolicy.OVERWRITE); testContext.directoryOutputTo(parameters); }
@Test public void burstOptimizeFonts() throws IOException { setUpParameters(); parameters.addSource(customInput("pdf/shared_fonts.pdf")); parameters.setOptimizationPolicy(OptimizationPolicy.AUTO); parameters.addPage(1); parameters.addPage(2); execute(parameters); testContext.assertTaskCompleted(); testContext.assertOutputSize(3); }
@Test public void testInvalidParameters() { SplitByPagesParameters victim = new SplitByPagesParameters(); SingleOrMultipleTaskOutput output = mock(SingleOrMultipleTaskOutput.class); victim.setOutput(output); InputStream stream = mock(InputStream.class); PdfSource<InputStream> input = PdfStreamSource.newInstanceNoPassword(stream, "name"); victim.addSource(input); TestUtils.assertInvalidParameters(victim); } }
@Test public void getPages() { SplitByPagesParameters victim = new SplitByPagesParameters(); victim.addPage(1); victim.addPage(10); assertEquals(1, victim.getPages(5).size()); assertEquals(2, victim.getPages(15).size()); }
@Test public void splitWithDiscardOutline() throws IOException { setUpParameters(); parameters.addSource(largeOutlineInput()); parameters.discardOutline(true); parameters.addPage(1); parameters.addPage(2); parameters.addPage(3); execute(parameters); testContext.assertTaskCompleted(); testContext.assertOutputSize(4).forEachPdfOutput(d -> { assertTrue(isNull(d.getDocumentCatalog().getDocumentOutline())); }); }
@Test public void odd() throws IOException { setUpParameters(); parameters.addSource(shortInput()); doTestOdd(); }
@Test public void splitWithOutline() throws IOException { setUpParameters(); parameters.addSource(largeOutlineInput()); parameters.addPage(1); parameters.addPage(2); parameters.addPage(3); execute(parameters); testContext.assertTaskCompleted(); testContext.assertOutputSize(4).forEachPdfOutput(d -> { assertTrue(nonNull(d.getDocumentCatalog().getDocumentOutline())); }); }
@Test public void testEquals() { SplitByPagesParameters eq1 = new SplitByPagesParameters(); eq1.addPage(1); SplitByPagesParameters eq2 = new SplitByPagesParameters(); eq2.addPage(1); SplitByPagesParameters eq3 = new SplitByPagesParameters(); eq3.addPage(1); SplitByPagesParameters diff = new SplitByPagesParameters(); diff.addPage(2); TestUtils.testEqualsAndHashCodes(eq1, eq2, eq3, diff); }
/** * Transforms {@link SplitByPagesTaskCliArguments} to {@link SplitByPagesParameters} * * @param taskCliArguments * @return populated task parameters */ @Override public SplitByPagesParameters toTaskParameters(SplitByPagesTaskCliArguments taskCliArguments) { SplitByPagesParameters parameters = new SplitByPagesParameters(); parameters.addPages(taskCliArguments.getPageNumbers()); populateAbstractParameters(parameters, taskCliArguments); populateSourceParameters(parameters, taskCliArguments); populateOutputTaskParameters(parameters, taskCliArguments); populateOutputPrefix(parameters, taskCliArguments); populateOptimizableOutputParameters(parameters, taskCliArguments); populateDiscardableOutlineParameters(parameters, taskCliArguments); return parameters; } }
@Test public void dontDiscardOutline() { SplitByPagesParameters parameters = defaultCommandLine().invokeSejdaConsole(); assertFalse(parameters.discardOutline()); } }
@Test public void pages_Specified() { SplitByPagesParameters parameters = defaultCommandLine().with("-n", "1 2 56 99 101").invokeSejdaConsole(); assertContainsAll(Arrays.asList(1, 2, 56, 99, 101), parameters.getPages(Integer.MAX_VALUE)); }
@Test public void burstOptimizeImages() throws IOException { setUpParameters(); parameters.addSource(customInput("pdf/shared_resource_dic_w_images.pdf")); parameters.setOptimizationPolicy(OptimizationPolicy.AUTO); parameters.addPage(1); execute(parameters); testContext.assertTaskCompleted(); testContext.assertOutputSize(2); }
@Test public void even() throws IOException { setUpParameters(); parameters.addSource(shortInput()); doTestEven(); }
@Test public void batchMode() throws IOException { setUpParameters(); parameters.addSource(shortInput()); parameters.addSource(mediumInput()); parameters.addPage(2); execute(parameters); testContext.assertTaskCompleted(); testContext.assertOutputSize(4); testContext.assertOutputContainsFilenames("1_short-test-file.pdf", "3_short-test-file.pdf", "1_medium-test-file.pdf", "3_medium-test-file.pdf"); } }
@Test public void discardOutline() { SplitByPagesParameters parameters = defaultCommandLine().withFlag("--discardOutline").invokeSejdaConsole(); assertTrue(parameters.discardOutline()); }
@Test public void burst() throws IOException { setUpParameters(); parameters.addSource(shortInput()); doTestBurst(); }