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);
     }
 }