@Test public void testTableConvertersDynamic() throws Exception { final String baseDir = TABLE_CONVERTERS_DYNAMIC; final Configuration config = configurationFactory.getConfig(getFile(baseDir + "config.yaml")); PJsonObject requestData = loadJsonRequestData(baseDir); final AbstractJasperReportOutputFormat format = (AbstractJasperReportOutputFormat) this.outputFormat.get("pngOutputFormat"); final File file = getFile(TableProcessorTest.class, baseDir); JasperPrint print = format.getJasperPrint(requestData, config, file, getTaskDirectory()).print; BufferedImage reportImage = ImageSimilarity.exportReportToImage(print, 0); // ImageIO.write(reportImage, "png", new File("/tmp/expectedImage.png")); // note that we are using a sample size of 50, because the image is quite big. // otherwise small differences are not detected! new ImageSimilarity(reportImage, 50) .assertSimilarity(getFile(baseDir + "expectedImage.png"), 10); }
@Test @DirtiesContext public void testTableConverters() throws Exception { httpRequestFactory.registerHandler( new Predicate<URI>() { @Override public boolean apply(@Nullable URI input) { return input.toString().contains("icons.com"); } }, new TestHttpClientFactory.Handler() { @Override public MockClientHttpRequest handleRequest(URI uri, HttpMethod httpMethod) throws Exception { final URL imageUrl = TableProcessorTest.class.getResource("/icons" + uri.getPath()); final byte[] imageBytes = Resources.toByteArray(imageUrl); MockClientHttpRequest request = new MockClientHttpRequest(); request.setResponse(new MockClientHttpResponse(imageBytes, HttpStatus.OK)); return request; } }); final String baseDir = TABLE_CONVERTERS; final Configuration config = configurationFactory.getConfig(getFile(baseDir + "config.yaml")); PJsonObject requestData = loadJsonRequestData(baseDir); final AbstractJasperReportOutputFormat format = (AbstractJasperReportOutputFormat) this.outputFormat.get("pngOutputFormat"); final File file = getFile(TableProcessorTest.class, baseDir); JasperPrint print = format.getJasperPrint(requestData, config, file, getTaskDirectory()).print; BufferedImage reportImage = ImageSimilarity.exportReportToImage(print, 0); // ImageIO.write(reportImage, "png", new File("/tmp/testColumnImageConverter.png")); // note that we are using a sample size of 50, because the image is quite big. // otherwise small differences are not detected! new ImageSimilarity(reportImage, 50) .assertSimilarity(getFile(baseDir + "expectedImage.png"), 10); }