@Test public void testEquals() { FileSource source = mock(FileSource.class); WatermarkParameters eq1 = new WatermarkParameters(source); eq1.setOpacity(50); WatermarkParameters eq2 = new WatermarkParameters(source); eq2.setOpacity(50); WatermarkParameters eq3 = new WatermarkParameters(source); eq3.setOpacity(50); WatermarkParameters diff = new WatermarkParameters(source); diff.setOpacity(50); diff.setLocation(Location.OVER); TestUtils.testEqualsAndHashCodes(eq1, eq2, eq3, diff); }
private WatermarkParameters pngParams(PdfSource<?> source) throws IOException { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/black-rect.png")); setUpParams(parameters, source); parameters.setDimension(new Dimension(248, 103)); return parameters; }
private WatermarkParameters tiffParams(PdfSource<?> source) throws IOException { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/draft.tiff")); setUpParams(parameters, source); parameters.setDimension(new Dimension(248, 103)); return parameters; }
@Test public void invalidParametersEmptyWatermark() { WatermarkParameters victim = new WatermarkParameters(null); PdfSource<InputStream> input = PdfStreamSource.newInstanceNoPassword(mock(InputStream.class), "name"); victim.addSource(input); SingleOrMultipleTaskOutput output = mock(SingleOrMultipleTaskOutput.class); victim.setOutput(output); TestUtils.assertInvalidParameters(victim); }
@Test public void invalidParametersImageSize() { WatermarkParameters victim = new WatermarkParameters(StreamSource.newInstance(mock(InputStream.class), "name")); victim.setDimension(new Dimension(-300, 300)); PdfSource<InputStream> input = PdfStreamSource.newInstanceNoPassword(mock(InputStream.class), "name"); victim.addSource(input); SingleOrMultipleTaskOutput output = mock(SingleOrMultipleTaskOutput.class); victim.setOutput(output); TestUtils.assertInvalidParameters(victim); }
@Test public void invalidParametersOpacity() { WatermarkParameters victim = new WatermarkParameters(StreamSource.newInstance(mock(InputStream.class), "name")); PdfSource<InputStream> input = PdfStreamSource.newInstanceNoPassword(mock(InputStream.class), "name"); victim.addSource(input); SingleOrMultipleTaskOutput output = mock(SingleOrMultipleTaskOutput.class); victim.setOutput(output); victim.setOpacity(-1); TestUtils.assertInvalidParameters(victim); }
@Test public void getPages() { WatermarkParameters victim = new WatermarkParameters(StreamSource.newInstance(mock(InputStream.class), "name")); victim.addPageRange(new PageRange(5, 8)); victim.addPageRange(new PageRange(3, 3)); victim.addPageRange(new PageRange(10)); Set<Integer> pages = victim.getPages(11); assertThat(pages, contains(5, 6, 7, 8, 3, 10, 11)); assertThat(pages, not(contains(1, 2, 4, 9))); }
@Test public void testPageRotation180() throws Exception { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/draft.png")); setUpParams(parameters, customInput("pdf/rotation_180_test_file.pdf")); parameters.setDimension(new Dimension(200, 83)); execute(parameters); testContext.assertTaskCompleted(); testContext.forPdfOutput(d -> { assertImageAtLocation(d, d.getPage(0), new Rectangle(585, 792, -200, -83)); }); }
@Test public void testPageRotation90() throws Exception { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/draft.png")); setUpParams(parameters, customInput("pdf/rotation_90_test_file.pdf")); parameters.setDimension(new Dimension(200, 83)); execute(parameters); testContext.assertTaskCompleted(); testContext.forPdfOutput(d -> { assertImageAtLocation(d, d.getPage(0), new Rectangle(545, 10, 200, 83)); }); }
@Test public void testPageRotation270() throws Exception { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/draft.png")); setUpParams(parameters, customInput("pdf/rotation_270_test_file.pdf")); parameters.setDimension(new Dimension(200, 83)); execute(parameters); testContext.assertTaskCompleted(); testContext.forPdfOutput(d -> { assertImageAtLocation(d, d.getPage(0), new Rectangle(50, 832, 200, 83)); }); }
@Test public void testCroppedPage() throws Exception { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/draft.png")); setUpParams(parameters, customInput("pdf/cropped_test_file.pdf")); parameters.setDimension(new Dimension(200, 83)); execute(parameters); testContext.assertTaskCompleted(); testContext.forPdfOutput(d -> { assertImageAtLocation(d, d.getPage(0), new Rectangle(46, 90, 200, 83)); }); }
@Test public void testImageRotation() throws Exception { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/draft.png")); setUpParams(parameters, customInput("pdf/test_file.pdf")); parameters.setDimension(new Dimension(200, 83)); parameters.setRotationDegrees(45); execute(parameters); testContext.assertTaskCompleted(); testContext.forPdfOutput(d -> { assertImageAtLocation(d, d.getPage(0), new Rectangle(68, -8, 200, 83)); }); }
@Test public void testImageNegativeRotation() throws Exception { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/draft.png")); setUpParams(parameters, customInput("pdf/test_file.pdf")); parameters.setDimension(new Dimension(200, 83)); parameters.setRotationDegrees(-315); execute(parameters); testContext.assertTaskCompleted(); testContext.forPdfOutput(d -> { assertImageAtLocation(d, d.getPage(0), new Rectangle(68, -8, 200, 83)); }); }
@Test public void testAddingPngImageScaled() throws Exception { WatermarkParameters parameters = new WatermarkParameters(customNonPdfInput("image/black-rect.png")); setUpParams(parameters, customInput("pdf/test_file.pdf")); parameters.setDimension(new Dimension(200, 83)); parameters.addPageRange(new PageRange(1, 1)); execute(parameters); testContext.assertTaskCompleted(); testContext.forPdfOutput(d -> { assertNotNull(d.getPage(0).getResources().getCOSObject().getDictionaryObject(COSName.XOBJECT, COSDictionary.class)); assertImageAtLocation(d, d.getPage(0), new Rectangle(10, 50, 200, 83)); assertNoImageAtLocation(d, d.getPage(1), new Rectangle(10, 50, 200, 83)); assertNoImageAtLocation(d, d.getPage(2), new Rectangle(10, 50, 200, 83)); assertNoImageAtLocation(d, d.getPage(3), new Rectangle(10, 50, 200, 83)); }); }
@Override public WatermarkParameters toTaskParameters(WatermarkTaskCliArguments args) { WatermarkParameters parameters = new WatermarkParameters(args.getWatermark().getSource()); if (args.isDimension()) { parameters.setDimension(args.getDimension().getDimension()); } parameters.setLocation(args.getLocation().getEnumValue()); parameters.setOpacity(args.getAlpha()); parameters.setPosition(args.getPosition().getPoint()); if (args.isPageSelection()) { parameters.addAllPageRanges(args.getPageSelection().getPageRangeSet()); } populateAbstractParameters(parameters, args); populateSourceParameters(parameters, args); populateOutputTaskParameters(parameters, args); populateOutputPrefix(parameters, args); return parameters; } }