@Override public void publish(ScannerReportWriter writer) { for (final DefaultInputFile inputFile : componentCache.allChangedFilesToPublish()) { File iofile = writer.getSourceFile(inputFile.scannerId()); try (OutputStream output = new BufferedOutputStream(new FileOutputStream(iofile)); InputStream in = inputFile.inputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in, inputFile.charset()))) { writeSource(reader, output, inputFile.lines()); } catch (IOException e) { throw new IllegalStateException("Unable to store file source in the report", e); } } }
@Test public void publishEmptySource() throws Exception { FileUtils.write(sourceFile, "", StandardCharsets.ISO_8859_1); publisher.publish(writer); File out = writer.getSourceFile(inputFile.scannerId()); assertThat(FileUtils.readFileToString(out, StandardCharsets.UTF_8)).isEqualTo(""); }
@Test public void publishSourceWithLastEmptyLine() throws Exception { FileUtils.write(sourceFile, "1\n2\n3\n4\n", StandardCharsets.ISO_8859_1); publisher.publish(writer); File out = writer.getSourceFile(inputFile.scannerId()); assertThat(FileUtils.readFileToString(out, StandardCharsets.UTF_8)).isEqualTo("1\n2\n3\n4\n"); }
@Test public void publishTestSource() throws Exception { FileUtils.write(sourceFile, "1\n2\n3\n4\n", StandardCharsets.ISO_8859_1); // sampleFile.setQualifier(Qualifiers.UNIT_TEST_FILE); publisher.publish(writer); File out = writer.getSourceFile(inputFile.scannerId()); assertThat(FileUtils.readFileToString(out, StandardCharsets.UTF_8)).isEqualTo("1\n2\n3\n4\n"); }
@Test public void publishSourceWithLastLineNotEmpty() throws Exception { FileUtils.write(sourceFile, "1\n2\n3\n4\n5", StandardCharsets.ISO_8859_1); publisher.publish(writer); File out = writer.getSourceFile(inputFile.scannerId()); assertThat(FileUtils.readFileToString(out, StandardCharsets.UTF_8)).isEqualTo("1\n2\n3\n4\n5"); }
@Test public void cleanLineEnds() throws Exception { FileUtils.write(sourceFile, "\n2\r\n3\n4\r5", StandardCharsets.ISO_8859_1); publisher.publish(writer); File out = writer.getSourceFile(inputFile.scannerId()); assertThat(FileUtils.readFileToString(out, StandardCharsets.UTF_8)).isEqualTo("\n2\n3\n4\n5"); }
@Test public void read_file_source() throws Exception { ScannerReportWriter writer = new ScannerReportWriter(dir); try (FileOutputStream outputStream = new FileOutputStream(writer.getSourceFile(1))) { IOUtils.write("line1\nline2", outputStream); } try (InputStream inputStream = FileUtils.openInputStream(underTest.readFileSource(1))) { assertThat(IOUtils.readLines(inputStream)).containsOnly("line1", "line2"); } }
@Test public void verify_readFileSource() throws IOException { File file = writer.getSourceFile(COMPONENT_REF); FileUtils.writeLines(file, of("1", "2", "3")); CloseableIterator<String> res = underTest.readFileSource(COMPONENT_REF).get(); assertThat(res).containsExactly("1", "2", "3"); res.close(); }
@Override public void publish(ScannerReportWriter writer) { for (final DefaultInputFile inputFile : componentCache.allChangedFilesToPublish()) { File iofile = writer.getSourceFile(inputFile.scannerId()); try (OutputStream output = new BufferedOutputStream(new FileOutputStream(iofile)); InputStream in = inputFile.inputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in, inputFile.charset()))) { writeSource(reader, output, inputFile.lines()); } catch (IOException e) { throw new IllegalStateException("Unable to store file source in the report", e); } } }