public void PublishCodeCoverageWithNoSummaryFileInput() { SetupMocks(); var publishCCCommand = new CodeCoverageCommandExtension(); publishCCCommand.Initialize(_hc); var command = new Command("codecoverage", "publish"); Assert.Throws<ArgumentException>(() => publishCCCommand.ProcessCommand(_ec.Object, command)); }
public void PublishCodeCoverageWithNoCCTool() { SetupMocks(); var publishCCCommand = new CodeCoverageCommandExtension(); publishCCCommand.Initialize(_hc); var command = new Command("codecoverage", "publish"); command.Properties.Add("summaryfile", "a.xml"); Assert.Throws<ArgumentException>(() => publishCCCommand.ProcessCommand(_ec.Object, command)); }
public void PublishCodeCoverageWithRelease() { SetupMocks(); var publishCCCommand = new CodeCoverageCommandExtension(); publishCCCommand.Initialize(_hc); var command = new Command("codecoverage", "publish"); _variables.Set("system.hostType", "release"); publishCCCommand.ProcessCommand(_ec.Object, command); Assert.Equal(1, _warnings.Count); Assert.Equal(0, _errors.Count); }
public void PublishesCCFilesWhenCodeCoverageDataIsNull() { SetupMocks(); var summaryFile = Path.GetTempFileName(); try { File.WriteAllText(summaryFile, "test"); var publishCCCommand = new CodeCoverageCommandExtension(); publishCCCommand.Initialize(_hc); var command = new Command("codecoverage", "publish"); command.Properties.Add("codecoveragetool", "mockCCTool"); command.Properties.Add("summaryfile", summaryFile); _mocksummaryReader.Setup(x => x.GetCodeCoverageSummary(It.IsAny<IExecutionContext>(), It.IsAny<string>())) .Returns((List<CodeCoverageStatistics>)null); publishCCCommand.ProcessCommand(_ec.Object, command); Assert.Equal(1, _warnings.Count); Assert.Equal(0, _errors.Count); _mockCodeCoveragePublisher.Verify(x => x.PublishCodeCoverageFilesAsync(It.IsAny<IAsyncCommandContext>(), It.IsAny<Guid>(), It.IsAny<long>(), It.IsAny<List<Tuple<string, string>>>(), It.IsAny<bool>(), It.IsAny<CancellationToken>())); } finally { File.Delete(summaryFile); } }
public void EnableCCWithSpacesInClassFilterThrowsException() { SetupMocks(); var enableCCCommand = new CodeCoverageCommandExtension(); enableCCCommand.Initialize(_hc); var command = new Command("codecoverage", "enable"); command.Properties.Add("buildtool", "mockBuildTool"); command.Properties.Add("classfilter", " , , ,, , "); command.Properties.Add("codecoveragetool", "mockCCTool"); Assert.Throws<ArgumentException>(() => enableCCCommand.ProcessCommand(_ec.Object, command)); }
public void EnableCCWithValidClassExcludeFilterShouldPass() { SetupMocks(); var enableCCCommand = new CodeCoverageCommandExtension(); enableCCCommand.Initialize(_hc); var command = new Command("codecoverage", "enable"); command.Properties.Add("buildtool", "mockBuildTool"); command.Properties.Add("classfilter", _excludeFilter); command.Properties.Add("codecoveragetool", "mockCCTool"); command.Properties.Add("buildfile", Path.GetTempFileName()); enableCCCommand.ProcessCommand(_ec.Object, command); _mockCodeCoverageEnabler.Verify(x => x.EnableCodeCoverage(It.IsAny<IExecutionContext>(), It.Is<CodeCoverageEnablerInputs>(ccInputs => ccInputs.Exclude == _excludes && string.IsNullOrWhiteSpace(ccInputs.Include)))); Assert.Equal(0, _warnings.Count); Assert.Equal(0, _errors.Count); }
public void EnableCCWhenNoCodeCoverageToolShouldPass() { SetupMocks(); var enableCCCommand = new CodeCoverageCommandExtension(); enableCCCommand.Initialize(_hc); var command = new Command("codecoverage", "enable"); enableCCCommand.ProcessCommand(_ec.Object, command); Assert.Equal(_errors.Count, 0); Assert.Equal(_warnings.Count, 0); }
public void EnableCCWithInvalidCodeCoverageToolThrowsException() { SetupMocks(); var enableCCCommand = new CodeCoverageCommandExtension(); enableCCCommand.Initialize(_hc); var command = new Command("codecoverage", "enable"); command.Properties.Add("buildtool", "mockBuildTool"); command.Properties.Add("buildfile", Path.GetTempFileName()); command.Properties.Add("codecoveragetool", "invalidCCTool"); Assert.Throws<ArgumentException>(() => enableCCCommand.ProcessCommand(_ec.Object, command)); }
public void EnableCCFailsWithErrorWhenBuildFileDoesnotExist() { SetupMocks(); var enableCCCommand = new CodeCoverageCommandExtension(); enableCCCommand.Initialize(_hc); var command = new Command("codecoverage", "enable"); command.Properties.Add("buildtool", "mockBuildTool"); command.Properties.Add("buildfile", "invalid.xml"); command.Properties.Add("codecoveragetool", "mockCCTool"); Assert.Throws<FileNotFoundException>(() => enableCCCommand.ProcessCommand(_ec.Object, command)); }
public void PublishCCWithBothReportDirectoryAndAdditioanlFilesInputs() { SetupMocks(); var reportDirectory = Path.Combine(Path.GetTempPath(), "reportDirectory"); var summaryFile = Path.Combine(reportDirectory, "summary.xml"); try { Directory.CreateDirectory(reportDirectory); File.WriteAllText(summaryFile, "test"); var publishCCCommand = new CodeCoverageCommandExtension(); publishCCCommand.Initialize(_hc); var command = new Command("codecoverage", "publish"); command.Properties.Add("codecoveragetool", "mockCCTool"); command.Properties.Add("summaryfile", summaryFile); command.Properties.Add("reportdirectory", reportDirectory); command.Properties.Add("additionalcodecoveragefiles", summaryFile); publishCCCommand.ProcessCommand(_ec.Object, command); Assert.Equal(0, _warnings.Count); Assert.Equal(0, _errors.Count); _mockCodeCoveragePublisher.Verify(x => x.PublishCodeCoverageSummaryAsync(It.IsAny<IEnumerable<CodeCoverageStatistics>>(), It.IsAny<string>(), It.IsAny<CancellationToken>())); _mockCodeCoveragePublisher.Verify(x => x.PublishCodeCoverageFilesAsync(It.IsAny<IAsyncCommandContext>(), It.IsAny<Guid>(), It.IsAny<long>(), It.Is<List<Tuple<string, string>>>(files => files.Count == 2), It.IsAny<bool>(), It.IsAny<CancellationToken>())); } finally { Directory.Delete(reportDirectory, true); } }
public void PublishCCFilesWithOnlyAdditionalFilesInput() { SetupMocks(); var summaryFile = Path.GetTempFileName(); try { File.WriteAllText(summaryFile, "test"); var publishCCCommand = new CodeCoverageCommandExtension(); publishCCCommand.Initialize(_hc); var command = new Command("codecoverage", "publish"); command.Properties.Add("codecoveragetool", "mockCCTool"); command.Properties.Add("summaryfile", summaryFile); command.Properties.Add("additionalcodecoveragefiles", summaryFile); publishCCCommand.ProcessCommand(_ec.Object, command); Assert.Equal(0, _warnings.Count); Assert.Equal(0, _errors.Count); _mockCodeCoveragePublisher.Verify(x => x.PublishCodeCoverageSummaryAsync(It.IsAny<IEnumerable<CodeCoverageStatistics>>(), It.IsAny<string>(), It.IsAny<CancellationToken>())); _mockCodeCoveragePublisher.Verify(x => x.PublishCodeCoverageFilesAsync(It.IsAny<IAsyncCommandContext>(), It.IsAny<Guid>(), It.IsAny<long>(), It.Is<List<Tuple<string, string>>>(files => files.Count == 2), It.IsAny<bool>(), It.IsAny<CancellationToken>())); } finally { File.Delete(summaryFile); } }