public void PIRB_WriteSummaryReport_ValidArgs_FileCreated() { // Arrange var testDir = TestUtils.CreateTestSpecificFolder(TestContext); var analysisConfig = new AnalysisConfig() { SonarOutputDir = testDir }; var analysisResult = new ProjectInfoAnalysisResult(); analysisResult.Projects.Add(CreateProjectData("project1", ProjectType.Product, ProjectInfoValidity.ExcludeFlagSet)); analysisResult.Projects.Add(CreateProjectData("project2", ProjectType.Product, ProjectInfoValidity.InvalidGuid)); analysisResult.Projects.Add(CreateProjectData("project3", ProjectType.Product, ProjectInfoValidity.InvalidGuid)); analysisResult.Projects.Add(CreateProjectData("project4", ProjectType.Product, ProjectInfoValidity.NoFilesToAnalyze)); analysisResult.Projects.Add(CreateProjectData("project5", ProjectType.Test, ProjectInfoValidity.NoFilesToAnalyze)); analysisResult.Projects.Add(CreateProjectData("project6", ProjectType.Test, ProjectInfoValidity.NoFilesToAnalyze)); analysisResult.Projects.Add(CreateProjectData("project7", ProjectType.Test, ProjectInfoValidity.Valid)); analysisResult.Projects.Add(CreateProjectData("project8", ProjectType.Test, ProjectInfoValidity.Valid)); analysisResult.Projects.Add(CreateProjectData("project9", ProjectType.Test, ProjectInfoValidity.Valid)); analysisResult.Projects.Add(CreateProjectData("projectA", ProjectType.Test, ProjectInfoValidity.Valid)); var loggerMock = new Mock <ILogger>().Object; // Act ProjectInfoReportBuilder.WriteSummaryReport(analysisConfig, analysisResult, loggerMock); // Assert var expectedFileName = Path.Combine(testDir, ProjectInfoReportBuilder.ReportFileName); File.Exists(expectedFileName).Should().BeTrue(); TestContext.AddResultFile(expectedFileName); var contents = File.ReadAllText(expectedFileName); contents.Should().Contain("project1"); contents.Should().Contain("project2"); contents.Should().Contain("project3"); contents.Should().Contain("project4"); contents.Should().Contain("project5"); contents.Should().Contain("project6"); contents.Should().Contain("project7"); contents.Should().Contain("project8"); contents.Should().Contain("project9"); contents.Should().Contain("projectA"); }
public void PIRB_WriteSummaryReport_InvalidArgs_Throws() { var analysisConfig = new AnalysisConfig(); var analysisResult = new ProjectInfoAnalysisResult(); var loggerMock = new Mock<ILogger>().Object; // 1. Invalid analysis config Action op = () => ProjectInfoReportBuilder.WriteSummaryReport(null, analysisResult, loggerMock); op.ShouldThrow<ArgumentNullException>().And.ParamName.Should().Be("config"); // 2. Invalid result op = () => ProjectInfoReportBuilder.WriteSummaryReport(analysisConfig, null, loggerMock); op.ShouldThrow<ArgumentNullException>().And.ParamName.Should().Be("result"); // 3. Invalid logger op = () => ProjectInfoReportBuilder.WriteSummaryReport(analysisConfig, analysisResult, null); op.ShouldThrow<ArgumentNullException>().And.ParamName.Should().Be("logger"); }
private ProjectInfoAnalysisResult GenerateAndValidatePropertiesFile(AnalysisConfig config) { if (this.propertiesFileGenerator == null) { this.propertiesFileGenerator = new PropertiesFileGenerator(config, logger); } var result = this.propertiesFileGenerator.GenerateFile(); if (this.sonarProjectPropertiesValidator.AreExistingSonarPropertiesFilesPresent(config.SonarScannerWorkingDirectory, result.Projects, out var invalidFolders)) { logger.LogError(Resources.ERR_ConflictingSonarProjectProperties, string.Join(", ", invalidFolders)); result.RanToCompletion = false; } else { ProjectInfoReportBuilder.WriteSummaryReport(config, result, logger); result.RanToCompletion = true; } return(result); }