private void processSignificantCodeFile(InputFile inputFile, SensorContext context) { Path ioFile = inputFile.path(); Path significantCodeFile = ioFile.resolveSibling(ioFile.getFileName() + FILE_EXTENSION).toAbsolutePath(); if (Files.exists(significantCodeFile) && Files.isRegularFile(significantCodeFile)) { LOG.debug("Processing " + significantCodeFile.toString()); try { List<String> lines = Files.readAllLines(significantCodeFile, context.fileSystem().encoding()); NewSignificantCode significantCode = context.newSignificantCode() .onFile(inputFile); for (String line : lines) { if (StringUtils.isBlank(line) || line.startsWith("#")) { continue; } processLine(line, inputFile, significantCode); } significantCode.save(); } catch (IOException e) { throw new IllegalStateException(e); } } }
@Override public void execute(SensorContext context) { for (InputFile file : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguages(Xoo.KEY))) { processSignificantCodeFile(file, context); } }
@Test public void testDescriptor() { sensor.describe(new DefaultSensorDescriptor()); }
@Test public void testExecution() throws IOException { File significantCode = new File(baseDir, "src/foo.xoo.significantCode"); FileUtils.write(significantCode, "1,1,4\n2,2,5"); context.fileSystem().add(inputFile); sensor.execute(context); assertThat(context.significantCodeTextRange("foo:src/foo.xoo", 1)).isEqualTo(range(1, 1, 4)); assertThat(context.significantCodeTextRange("foo:src/foo.xoo", 2)).isEqualTo(range(2, 2, 5)); }
@Before public void prepare() throws IOException { baseDir = temp.newFolder(); sensor = new SignificantCodeSensor(); context = SensorContextTester.create(baseDir); inputFile = new TestInputFileBuilder("foo", baseDir, new File(baseDir, "src/foo.xoo")) .setLanguage("xoo") .setContents("some lines\nof code\nyet another line") .build(); }
@Test public void testNoExceptionIfNoFileWithOffsets() { context.fileSystem().add(inputFile); sensor.execute(context); }
@Override public void execute(SensorContext context) { for (InputFile file : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguages(Xoo.KEY))) { processSignificantCodeFile(file, context); } }
private void processSignificantCodeFile(InputFile inputFile, SensorContext context) { Path ioFile = inputFile.path(); Path significantCodeFile = ioFile.resolveSibling(ioFile.getFileName() + FILE_EXTENSION).toAbsolutePath(); if (Files.exists(significantCodeFile) && Files.isRegularFile(significantCodeFile)) { LOG.debug("Processing " + significantCodeFile.toString()); try { List<String> lines = Files.readAllLines(significantCodeFile, context.fileSystem().encoding()); NewSignificantCode significantCode = context.newSignificantCode() .onFile(inputFile); for (String line : lines) { if (StringUtils.isBlank(line) || line.startsWith("#")) { continue; } processLine(line, inputFile, significantCode); } significantCode.save(); } catch (IOException e) { throw new IllegalStateException(e); } } }