public void ReportProcessor_CannotConvertFiles() { // Arrange var urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { ValidUrl1 } }; var downloader = new MockReportDownloader(); var converter = new MockReportConverter() { CanConvert = false }; var context = CreateValidContext(); var settings = CreateValidSettings(); var logger = new TestLogger(); var processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter); // Act var initResult = processor.Initialise(context, settings, logger); // Assert Assert.IsFalse(initResult, "Expecting false: processor should not have been initialised successfully"); urlProvider.AssertGetUrlsNotCalled(); downloader.AssertDownloadNotCalled(); converter.AssertConvertNotCalled(); logger.AssertWarningsLogged(0); logger.AssertErrorsLogged(0); }
public void ReportProcessor_NoUrlsFound() { // Arrange var urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { } }; var downloader = new MockReportDownloader(); var converter = new MockReportConverter() { CanConvert = true }; var context = CreateValidContext(); var settings = CreateValidSettings(); var logger = new TestLogger(); var processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter); // Act var initResult = processor.Initialise(context, settings, logger); Assert.IsTrue(initResult, "Expecting true: processor should have been initialised successfully"); var result = processor.ProcessCoverageReports(); // Assert urlProvider.AssertGetUrlsCalled(); downloader.AssertDownloadNotCalled(); // no urls returned, so should go any further converter.AssertConvertNotCalled(); Assert.IsTrue(result, "Expecting true: no coverage reports is a valid scenario"); logger.AssertWarningsLogged(0); logger.AssertErrorsLogged(0); }
public void ReportProcessor_MultipleUrlsFound() { // Arrange var urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { ValidUrl1, ValidUrl2 } }; var downloader = new MockReportDownloader(); var converter = new MockReportConverter() { CanConvert = true }; var context = CreateValidContext(); var settings = CreateValidSettings(); var logger = new TestLogger(); var processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter); // Act var initResult = processor.Initialise(context, settings, logger); Assert.IsTrue(initResult, "Expecting true: processor should have been initialised successfully"); var result = processor.ProcessCoverageReports(); // Assert urlProvider.AssertGetUrlsCalled(); downloader.AssertDownloadNotCalled(); // Multiple urls so should early out converter.AssertConvertNotCalled(); Assert.IsFalse(result, "Expecting false: can't process multiple coverage reports"); logger.AssertErrorsLogged(1); logger.AssertWarningsLogged(0); }
public void ReportProcessor_NoUrlsFound() { // Arrange MockReportUrlProvider urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { } }; MockReportDownloader downloader = new MockReportDownloader(); MockReportConverter converter = new MockReportConverter() { CanConvert = true }; AnalysisConfig context = this.CreateValidContext(); TeamBuildSettings settings = this.CreateValidSettings(); TestLogger logger = new TestLogger(); TfsLegacyCoverageReportProcessor processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter); // Act bool result = processor.ProcessCoverageReports(context, settings, logger); // Assert urlProvider.AssertGetUrlsCalled(); downloader.AssertDownloadNotCalled(); // no urls returned, so should go any further converter.AssertConvertNotCalled(); Assert.IsTrue(result, "Expecting true: no coverage reports is a valid scenario"); logger.AssertWarningsLogged(0); logger.AssertErrorsLogged(0); }
public void ReportProcessor_CannotConvertFiles() { // Arrange MockReportUrlProvider urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { ValidUrl1 } }; MockReportDownloader downloader = new MockReportDownloader(); MockReportConverter converter = new MockReportConverter() { CanConvert = false }; AnalysisConfig context = this.CreateValidContext(); TeamBuildSettings settings = this.CreateValidSettings(); TestLogger logger = new TestLogger(); TfsLegacyCoverageReportProcessor processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter); // Act bool result = processor.ProcessCoverageReports(context, settings, logger); // Assert urlProvider.AssertGetUrlsNotCalled(); downloader.AssertDownloadNotCalled(); converter.AssertConvertNotCalled(); Assert.IsFalse(result, "Expecting result to be false as files could not be converted"); logger.AssertWarningsLogged(0); logger.AssertErrorsLogged(0); }
public void ReportProcessor_SingleUrlFound_NotDownloaded() { // Arrange MockReportUrlProvider urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { ValidUrl1 } }; MockReportDownloader downloader = new MockReportDownloader(); MockReportConverter converter = new MockReportConverter() { CanConvert = true }; AnalysisConfig context = this.CreateValidContext(); TeamBuildSettings settings = this.CreateValidSettings(); TestLogger logger = new TestLogger(); TfsLegacyCoverageReportProcessor processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter); // Act bool result = processor.ProcessCoverageReports(context, settings, logger); // Assert urlProvider.AssertGetUrlsCalled(); downloader.AssertExpectedDownloads(1); converter.AssertConvertNotCalled(); downloader.AssertExpectedUrlsRequested(ValidUrl1); Assert.IsFalse(result, "Expecting false: report could not be downloaded"); logger.AssertErrorsLogged(1); logger.AssertWarningsLogged(0); }
public void ReportProcessor_MultipleUrlsFound() { // Arrange MockReportUrlProvider urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { ValidUrl1, ValidUrl2 } }; MockReportDownloader downloader = new MockReportDownloader(); MockReportConverter converter = new MockReportConverter() { CanConvert = true }; AnalysisConfig context = this.CreateValidContext(); TeamBuildSettings settings = this.CreateValidSettings(); TestLogger logger = new TestLogger(); TfsLegacyCoverageReportProcessor processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter); // Act bool result = processor.ProcessCoverageReports(context, settings, logger); // Assert urlProvider.AssertGetUrlsCalled(); downloader.AssertDownloadNotCalled(); // Multiple urls so should early out converter.AssertConvertNotCalled(); Assert.IsFalse(result, "Expecting false: can't process multiple coverage reports"); logger.AssertErrorsLogged(1); logger.AssertWarningsLogged(0); }
public void ReportProcessor_NoUrlsFound() { // Arrange var urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { } }; var downloader = new MockReportDownloader(); var converter = new MockReportConverter() { CanConvert = true }; var context = CreateValidContext(); var settings = CreateValidSettings(); var logger = new TestLogger(); var testDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); var processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter, logger); // Act var initResult = processor.Initialise(context, settings, testDir + "\\sonar-project.properties"); initResult.Should().BeTrue("Expecting true: processor should have been initialized successfully"); var result = processor.ProcessCoverageReports(); // Assert urlProvider.AssertGetUrlsCalled(); downloader.AssertDownloadNotCalled(); // no urls returned, so should go any further converter.AssertConvertNotCalled(); result.Should().BeTrue("Expecting true: no coverage reports is a valid scenario"); logger.AssertWarningsLogged(0); logger.AssertErrorsLogged(0); }
public void ProcessCoverageReports_VsCoverageXmlPathProvided_CoverageXmlFileAlreadyPresent_NotShouldTryConverting() { // Arrange var mockSearchFallback = new MockSearchFallback(); var testDir = TestUtils.CreateTestSpecificFolder(this.TestContext); var testResultsDir = Path.Combine(testDir, "TestResults"); var analysisConfig = new AnalysisConfig { LocalSettings = new AnalysisProperties() }; var testLogger = new TestLogger(); Directory.CreateDirectory(testResultsDir); var coverageDir = Path.Combine(testResultsDir, "dummy", "In"); Directory.CreateDirectory(coverageDir); TestUtils.CreateTextFile(testResultsDir, "dummy.trx", TRX_PAYLOAD); TestUtils.CreateTextFile(coverageDir, "dummy.coverage", ""); TestUtils.CreateTextFile(coverageDir, "dummy.coveragexml", ""); var converter = new MockReportConverter(); converter.CanConvert = true; var testSubject = new BuildVNextCoverageReportProcessor(converter, testLogger, mockSearchFallback); var settings = new MockBuildSettings { BuildDirectory = testDir }; analysisConfig.LocalSettings.Add(new Property { Id = SonarProperties.VsCoverageXmlReportsPaths, Value = String.Empty }); testSubject.Initialise(analysisConfig, settings); try { // Act var result = testSubject.ProcessCoverageReports(); // Assert result.Should().BeTrue(); converter.AssertConvertNotCalled(); testLogger.AssertWarningsLogged(0); } finally { TestUtils.DeleteTextFile(coverageDir, "dummy.coveragexml"); } }
public void ProcessCoverageReports_NotVsCoverageXmlPathProvided_CoverageXmlFileAlreadyPresent_NotShouldTryConverting() { // Arrange var mockSearchFallback = new MockSearchFallback(); var testDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); var testResultsDir = Path.Combine(testDir, "TestResults"); var analysisConfig = new AnalysisConfig { LocalSettings = new AnalysisProperties() }; var testLogger = new TestLogger(); Directory.CreateDirectory(testResultsDir); var coverageDir = Path.Combine(testResultsDir, "dummy", "In"); Directory.CreateDirectory(coverageDir); TestUtils.CreateTextFile(testResultsDir, "dummy.trx", TRX_PAYLOAD); TestUtils.CreateTextFile(coverageDir, "dummy.coverage", ""); TestUtils.CreateTextFile(coverageDir, "dummy.coveragexml", ""); var converter = new MockReportConverter(); converter.CanConvert = true; var testSubject = new BuildVNextCoverageReportProcessor(converter, testLogger, mockSearchFallback); var settings = new MockBuildSettings { BuildDirectory = testDir }; testSubject.Initialise(analysisConfig, settings, testDir + "\\sonar-project.properties"); // Act try { using (new AssertIgnoreScope()) { var result = testSubject.ProcessCoverageReports(); // Assert result.Should().BeTrue(); } converter.AssertConvertNotCalled(); } finally { TestUtils.DeleteTextFile(coverageDir, "dummy.coveragexml"); } }
public void ReportProcessor_SingleUrlFound_NotDownloaded() { // Arrange var urlProvider = new MockReportUrlProvider() { UrlsToReturn = new string[] { ValidUrl1 } }; var downloader = new MockReportDownloader(); var converter = new MockReportConverter() { CanConvert = true }; var context = CreateValidContext(); var settings = CreateValidSettings(); var logger = new TestLogger(); var processor = new TfsLegacyCoverageReportProcessor(urlProvider, downloader, converter); // Act var initResult = processor.Initialise(context, settings, logger); Assert.IsTrue(initResult, "Expecting true: processor should have been initialised successfully"); var result = processor.ProcessCoverageReports(); // Assert urlProvider.AssertGetUrlsCalled(); downloader.AssertExpectedDownloads(1); converter.AssertConvertNotCalled(); downloader.AssertExpectedUrlsRequested(ValidUrl1); Assert.IsFalse(result, "Expecting false: report could not be downloaded"); logger.AssertErrorsLogged(1); logger.AssertWarningsLogged(0); }