@Override public void start() { reportDir = moduleHierarchy.root().getWorkDir().resolve("scanner-report"); writer = new ScannerReportWriter(reportDir.toFile()); contextPublisher.init(writer); if (!analysisMode.isIssues() && !analysisMode.isMediumTest()) { String publicUrl = server.getPublicRootUrl(); if (HttpUrl.parse(publicUrl) == null) { throw MessageException.of("Failed to parse public URL set in SonarQube server: " + publicUrl); } } }
@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 create_dir_if_does_not_exist() { FileUtils.deleteQuietly(dir); underTest = new ScannerReportWriter(dir); assertThat(dir).isDirectory().exists(); }
@Before public void setUp() { writer = new ScannerReportWriter(temp.getRoot()); when(branchConfiguration.isShortOrPullRequest()).thenReturn(true); when(scmConfiguration.isDisabled()).thenReturn(false); when(scmConfiguration.provider()).thenReturn(provider); when(branchConfiguration.targetScmBranch()).thenReturn(TARGET_BRANCH); when(project.getBaseDir()).thenReturn(BASE_DIR); }
@Before public void setUp() throws Exception { dir = temp.newFolder(); underTest = new ScannerReportWriter(dir); }
@Before public void setUp() throws IOException { branchConfiguration = mock(BranchConfiguration.class); outputDir = temp.newFolder(); writer = new ScannerReportWriter(outputDir); reader = new ScannerReportReader(outputDir); }
@Test public void write_project_basedir() throws Exception { String path = "some/dir"; Path relativePathFromScmRoot = Paths.get(path); when(scmProvider.relativePathFromScmRoot(any(Path.class))).thenReturn(relativePathFromScmRoot); File outputDir = temp.newFolder(); underTest.publish(new ScannerReportWriter(outputDir)); ScannerReportReader reader = new ScannerReportReader(outputDir); ScannerReport.Metadata metadata = reader.readMetadata(); assertThat(metadata.getRelativePathFromScmRoot()).isEqualTo(path); }
@Test public void write_project_organization() throws Exception { when(properties.organizationKey()).thenReturn(Optional.of("SonarSource")); File outputDir = temp.newFolder(); ScannerReportWriter writer = new ScannerReportWriter(outputDir); underTest.publish(writer); ScannerReportReader reader = new ScannerReportReader(outputDir); ScannerReport.Metadata metadata = reader.readMetadata(); assertThat(metadata.getOrganizationKey()).isEqualTo("SonarSource"); }
@Test public void write_long_lived_branch_info() throws Exception { String branchName = "long-lived"; when(branches.branchName()).thenReturn(branchName); when(branches.branchType()).thenReturn(BranchType.LONG); File outputDir = temp.newFolder(); underTest.publish(new ScannerReportWriter(outputDir)); ScannerReportReader reader = new ScannerReportReader(outputDir); ScannerReport.Metadata metadata = reader.readMetadata(); assertThat(metadata.getBranchName()).isEqualTo(branchName); assertThat(metadata.getBranchType()).isEqualTo(ScannerReport.Metadata.BranchType.LONG); }
@Test public void write_revision_id() throws Exception { String revisionId = "some-sha1"; when(scmProvider.revisionId(any(Path.class))).thenReturn(revisionId); File outputDir = temp.newFolder(); underTest.publish(new ScannerReportWriter(outputDir)); ScannerReportReader reader = new ScannerReportReader(outputDir); ScannerReport.Metadata metadata = reader.readMetadata(); assertThat(metadata.getScmRevisionId()).isEqualTo(revisionId); }
@Before public void prepare() throws IOException { String projectKey = "foo"; project = TestInputFileBuilder.newDefaultInputProject(projectKey, temp.newFolder()); inputFile = new TestInputFileBuilder(projectKey, "src/Foo.php").setPublish(true).build(); InputComponentStore componentCache = new InputComponentStore(mock(BranchConfiguration.class)); componentCache.put(projectKey, inputFile); measureCache = mock(MeasureCache.class); when(measureCache.byComponentKey(anyString())).thenReturn(Collections.<DefaultMeasure<?>>emptyList()); publisher = new MeasuresPublisher(componentCache, measureCache, mock(TestPlanBuilder.class)); outputDir = temp.newFolder(); writer = new ScannerReportWriter(outputDir); }
@Test public void do_not_write_warnings_report_when_empty() throws IOException { File outputDir = temp.newFolder(); ScannerReportWriter writer = new ScannerReportWriter(outputDir); underTest.publish(writer); assertThat(writer.getFileStructure().analysisWarnings()).doesNotExist(); ScannerReportReader reader = new ScannerReportReader(outputDir); List<ScannerReport.AnalysisWarning> warnings = Lists.newArrayList(reader.readAnalysisWarnings()); assertThat(warnings).isEmpty(); } }
@Test public void shouldNotDumpInIssuesMode() throws Exception { when(analysisMode.isIssues()).thenReturn(true); ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder()); publisher.init(writer); assertThat(writer.getFileStructure().analysisLog()).doesNotExist(); }
@Test public void read_issues() { ScannerReportWriter writer = new ScannerReportWriter(dir); ScannerReport.Issue issue = ScannerReport.Issue.newBuilder() .build(); writer.writeComponentIssues(1, asList(issue)); assertThat(underTest.readComponentIssues(1)).hasSize(1); assertThat(underTest.readComponentIssues(200)).isEmpty(); }
@Test public void read_source_lines() throws Exception { ScannerReportWriter writer = new ScannerReportWriter(dir); File file = writer.getFileStructure().fileFor(FileStructure.Domain.SOURCE, 1); FileUtils.writeLines(file, Lists.newArrayList("line1", "line2")); File sourceFile = new ScannerReportReader(dir).readFileSource(1); assertThat(sourceFile).isEqualTo(file); }
@Test public void read_components() { ScannerReportWriter writer = new ScannerReportWriter(dir); ScannerReport.Component.Builder component = ScannerReport.Component.newBuilder() .setRef(1) .setProjectRelativePath("src/main/java/Foo.java"); writer.writeComponent(component.build()); assertThat(underTest.readComponent(1).getProjectRelativePath()).isEqualTo("src/main/java/Foo.java"); }
@Test public void read_external_issues() { ScannerReportWriter writer = new ScannerReportWriter(dir); ScannerReport.ExternalIssue issue = ScannerReport.ExternalIssue.newBuilder() .build(); writer.appendComponentExternalIssue(1, issue); assertThat(underTest.readComponentExternalIssues(1)).hasSize(1); assertThat(underTest.readComponentExternalIssues(200)).isEmpty(); }
@Test public void read_measures() { ScannerReportWriter writer = new ScannerReportWriter(dir); ScannerReport.Measure.Builder measure = ScannerReport.Measure.newBuilder() .setStringValue(StringValue.newBuilder().setValue("value_a")); writer.writeComponentMeasures(1, asList(measure.build())); assertThat(underTest.readComponentMeasures(1)).hasSize(1); }
@Before public void setUp() { BatchReportDirectoryHolder holder = new ImmutableBatchReportDirectoryHolder(tempFolder.newDir()); underTest = new BatchReportReaderImpl(holder); writer = new ScannerReportWriter(holder.getDirectory()); }
@Before public void setUp() throws Exception { File dir = temp.newFolder(); ScannerReportWriter writer = new ScannerReportWriter(dir); writer.writeComponentCoverage(1, newArrayList( ScannerReport.LineCoverage.newBuilder() .setLine(1) .build())); file = new FileStructure(dir).fileFor(FileStructure.Domain.COVERAGES, 1); }