public void CoverageFiles_NotFullSource_SetsDigestToFileHash() { var hash = "d131dd02c5e6eec4d131dd02c5e6eec4d131dd02c5e6eec4"; var bytes = Enumerable.Range(0, hash.Length) .Where(x => x % 2 == 0) .Select(x => Convert.ToByte(hash.Substring(x, 2), 16)) .ToArray(); var fileSystem = Substitute.For <IFileSystem>(); fileSystem.ReadFileText("").ReturnsForAnyArgs(TestHelpers.LoadResourceText("Coveralls.Tests.Files.OpenCover.SingleFileCoverage.xml")); fileSystem.ComputeHash("").ReturnsForAnyArgs(bytes); var opts = Substitute.For <ICommandOptions>(); opts.InputFiles.Returns(new List <string> { "coverage.xml" }); opts.SendFullSources.Returns(false); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; var coveredFileData = coveralls.CoverageFiles.First(); coveredFileData.SourceDigest.Should().Be(hash); }
public void ServiceJobId_OnLocal_IsZero() { var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceJobId.Should().Be("0"); }
public void Constructor_NullOptions_ThrowsArgumentException() { Assert.Throws <ArgumentException>(() => { var coveralls = new CoverallsBootstrap(null); }); }
public void ServiceJobId_OnLocal_IsZero() { var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceJobId.Should().Be("0"); }
public void Repository_OnLocal_IsCorrectType() { var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.Repository.Should().BeOfType <LocalGit>(); }
public void Parser_NoOptionsSpecified_UsesOpenCoverParser() { var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.CreateParser().Should().BeOfType <OpenCoverParser>(); }
public void Parser_ParserOpenCoverSpecified_UsesOpenCoverParser() { var opts = Substitute.For<ICommandOptions>(); opts.Parser.ReturnsForAnyArgs(ParserType.OpenCover); var coveralls = new CoverallsBootstrap(opts); coveralls.CreateParser().Should().BeOfType<OpenCoverParser>(); }
public void GitRepository_BlankAppVeyorVariable_LocalGit() { var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.CreateGitRepository().Should().BeOfType <LocalGit>(); }
public void RepoToken_EnvVarNotSet_IsNull() { var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.RepoToken.Should().Be(null); }
public void Parser_NoOptionsSpecified_UsesOpenCoverParser() { var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.CreateParser().Should().BeOfType<OpenCoverParser>(); }
public void ServiceName_NoEnvironmentVariable_IsCoverallsNet() { var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceName.Should().Be("coveralls.net"); }
public void RepoToken_ReadsEnvVariable() { Environment.SetEnvironmentVariable("COVERALLS_REPO_TOKEN", "1234abcd"); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.RepoToken.Should().Be("1234abcd"); }
public void ServiceName_AppVeyorEnvironment_IsAppveyor() { Environment.SetEnvironmentVariable("APPVEYOR", "True"); var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceName.Should().Be("appveyor"); }
public void Parser_ParserCoberturaSpecified_UsesCoberturaParser() { var opts = Substitute.For <ICommandOptions>(); opts.Parser.ReturnsForAnyArgs(ParserType.Cobertura); var coveralls = new CoverallsBootstrap(opts); coveralls.CreateParser().Should().BeOfType <CoberturaCoverageParser>(); }
public void Parser_ParserAutoDetectSpecified_UsesAutoParser() { var opts = Substitute.For <ICommandOptions>(); opts.Parser.ReturnsForAnyArgs(ParserType.AutoDetect); var coveralls = new CoverallsBootstrap(opts); coveralls.CreateParser().Should().BeOfType <AutoParser>(); }
public void Parser_ParserOpenCoverSpecified_UsesOpenCoverParser() { var opts = Substitute.For <ICommandOptions>(); opts.Parser.ReturnsForAnyArgs(ParserTypes.OpenCover); var coveralls = new CoverallsBootstrap(opts); coveralls.CreateParser().Should().BeOfType <OpenCoverParser>(); }
public void ServiceName_AppVeyorEnvironment_IsAppveyor() { Environment.SetEnvironmentVariable("APPVEYOR", "True"); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceName.Should().Be("appveyor"); }
public void Repository_OnAppVeyor_IsCorrectType() { Environment.SetEnvironmentVariable("APPVEYOR", "True"); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.Repository.Should().BeOfType <AppVeyorGit>(); }
public void GitRepository_AppVeyorVariableExists_LocalGit() { Environment.SetEnvironmentVariable("APPVEYOR_JOB_ID", "12345"); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.CreateGitRepository().Should().BeOfType <AppVeyorGit>(); }
public void ServiceJobId_OnJenkins_ReadsEnvVariable() { Environment.SetEnvironmentVariable("JENKINS_HOME", "True"); Environment.SetEnvironmentVariable("BUILD_NUMBER", "23"); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceJobId.Should().Be("23"); }
public void ServiceJobId_OnAppVeyor_ReadsEnvVariable() { Environment.SetEnvironmentVariable("APPVEYOR", "True"); Environment.SetEnvironmentVariable("APPVEYOR_JOB_ID", "23"); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceJobId.Should().Be("23"); }
public void Parser_ParserTypeUnknown_FailsToInitialize() { var opts = Substitute.For<ICommandOptions>(); opts.Parser.ReturnsForAnyArgs(ParserType.Unknown); Assert.Throws<ArgumentException>(() => { var coveralls = new CoverallsBootstrap(opts); }); }
public void Repository_OnJenkins_IsCorrectType() { Environment.SetEnvironmentVariable("JENKINS_HOME", "True"); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = Stub.LocalFileSystem(); coveralls.Repository.Should().BeOfType <JenkinsGit>(); }
public void Parser_ParserTypeUnknown_FailsToInitialize() { var opts = Substitute.For <ICommandOptions>(); opts.Parser.ReturnsForAnyArgs(ParserType.Unknown); Assert.Throws <ArgumentException>(() => { var coveralls = new CoverallsBootstrap(opts); }); }
public void CoverageFiles_EmptyReportFile_CoverageFilesIsEmpty() { var fileSystem = Substitute.For <IFileSystem>(); fileSystem.ReadFileText("").ReturnsForAnyArgs(""); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; coveralls.CoverageFiles.Should().BeEmpty(); }
public void CoverageFiles_ValidFile_ReturnsCorrectCountOfFiles() { var fileSystem = Substitute.For <IFileSystem>(); fileSystem.ReadFileText("").ReturnsForAnyArgs(TestHelpers.LoadResourceText("Coveralls.Tests.Files.OpenCover.SingleFileCoverage.xml")); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; coveralls.CoverageFiles.Count().Should().Be(1); }
public void CoverageFiles_NoReportFile_ThrowsException() { var fileSystem = Substitute.For <IFileSystem>(); fileSystem.ReadFileText("").ReturnsForAnyArgs(a => null); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; coveralls.CoverageFiles.Should().BeNull(); }
public void Dispose_DisposesOfRepository() { var gitRepo = Substitute.For <IGitRepository>(); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.Repository = gitRepo; coveralls.Dispose(); gitRepo.Received().Dispose(); }
public void CoverageFiles_EmptyReportFile_ThrowsException() { var fileSystem = Substitute.For <IFileSystem>(); fileSystem.ReadFileText("").ReturnsForAnyArgs(""); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; Assert.Throws <Exception>(() => { var files = coveralls.CoverageFiles; }); }
public void GetData_ReturnsCorrectDataBasedOnEnvironment() { Environment.SetEnvironmentVariable("COVERALLS_REPO_TOKEN", "1234abcd"); Environment.SetEnvironmentVariable("JENKINS_HOME", "True"); Environment.SetEnvironmentVariable("BUILD_NUMBER", "23"); var opts = Substitute.For <ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = Stub.LocalFileSystem(); var data = coveralls.GetData(); data.ServiceName.Should().Be("jenkins"); data.ServiceJobId.Should().Be("23"); data.RepoToken.Should().Be("1234abcd"); }
internal static void Run(CommandLineOptions options) { if (options.DebugMode) { Console.WriteLine(Resources.RepoTokenDebug, Environment.GetEnvironmentVariable("COVERALLS_REPO_TOKEN")); } using (var coveralls = new CoverallsBootstrap(options)) { coveralls.FileSystem = new LocalFileSystem(); if (!coveralls.CoverageFiles.Any()) { Console.WriteLine(Resources.NoCoverageFilesErrorMessage); return; } if (coveralls.RepoToken.IsBlank()) { Console.WriteLine(Resources.BlankTokenErrorMessage); if (coveralls.ServiceName == "appveyor") { Console.Write(Resources.AppVeyorBlankToken); } return; } foreach (var file in coveralls.CoverageFiles) { file.Path = file.Path.ToRelativePath(Directory.GetCurrentDirectory()); } var coverallsData = coveralls.GetData(); var json = JsonConvert.SerializeObject(coverallsData); SendToCoveralls(json); if (options.DebugMode) { Console.WriteLine(Resources.CoverallsJsonHeader, JsonPrettyPrint(json)); } } }
public void CoverageFiles_NotFullSource_SourceDigestNotNull() { var fileSystem = Substitute.For <IFileSystem>(); fileSystem.ReadFileText("").ReturnsForAnyArgs(TestHelpers.LoadResourceText("Coveralls.Tests.Files.OpenCover.SingleFileCoverage.xml")); var opts = Substitute.For <ICommandOptions>(); opts.InputFiles.Returns(new List <string> { "coverage.xml" }); opts.SendFullSources.Returns(false); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; var coveredFileData = coveralls.CoverageFiles.First(); coveredFileData.SourceDigest.Should().NotBeNull(); }
public void CoverageFiles_FullSource_RetrievesFullFileContents() { var fileContents = TestHelpers.LoadResourceText("Coveralls.Tests.Files.Utilities.cs"); var fileContentsUnix = fileContents.Replace("\r\n", "\n"); var fileSystem = Substitute.For <IFileSystem>(); fileSystem.ReadFileText("coverage.xml").Returns(TestHelpers.LoadResourceText("Coveralls.Tests.Files.OpenCover.SingleFileCoverage.xml")); fileSystem.ReadFileText(@"c:/src/SymSharp/Symitar/Utilities.cs").Returns(fileContents); var opts = Substitute.For <ICommandOptions>(); opts.InputFiles.Returns(new List <string> { "coverage.xml" }); opts.SendFullSources.Returns(true); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; var coveredFileData = coveralls.CoverageFiles.First(); coveredFileData.Source.Should().Be(fileContentsUnix); }
public void ServiceJobId_OnJenkins_ReadsEnvVariable() { Environment.SetEnvironmentVariable("JENKINS_HOME", "True"); Environment.SetEnvironmentVariable("BUILD_NUMBER", "23"); var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceJobId.Should().Be("23"); }
internal static void Main(string[] args) { Options = Parser.Default.ParseArguments <CommandLineOptions>(args).Value; if (Options.DebugMode) { Console.WriteLine("[debug] > $env.COVERALLS_REPO_TOKEN: {0}", Environment.GetEnvironmentVariable("COVERALLS_REPO_TOKEN")); } try { var coveralls = new CoverallsBootstrap(Options) { FileSystem = new LocalFileSystem() }; // Use specified repo token over Environment variable if (Options.CoverallsRepoToken.IsNotBlank()) { coveralls.RepoToken = Options.CoverallsRepoToken; } if (!coveralls.CoverageFiles.Any()) { Console.WriteLine("No coverage statistics files."); return; } if (coveralls.RepoToken.IsBlank()) { Console.WriteLine("Blank or invalid Coveralls Repo Token."); if (coveralls.ServiceName == "appveyor") { Console.WriteLine(" - Did you prefix your token with 'secure:' without encrypting it?"); Console.WriteLine(" - Is this a Pull Request? AppVeyor does not decrypt environment variables for pull requests."); } return; } var sourceFiles = coveralls.CoverageFiles; foreach (var file in sourceFiles) { file.Path = file.Path.ToRelativePath(Directory.GetCurrentDirectory()); } var coverallsData = new CoverallsData { ServiceName = coveralls.ServiceName, ServiceJobId = coveralls.ServiceJobId, RepoToken = coveralls.RepoToken, SourceFiles = coveralls.CoverageFiles.ToArray(), Git = coveralls.Repository.Data }; Console.WriteLine(" Service: {0}", coverallsData.ServiceName); Console.WriteLine(" Job ID: {0}", coverallsData.ServiceJobId); Console.WriteLine(" Files: {0}", coverallsData.SourceFiles.Count()); Console.WriteLine(" Commit: {0}", coverallsData.Git.Head.Id); Console.WriteLine("Pull Request: {0}", coverallsData.Git.Head.Id); var json = JsonConvert.SerializeObject(coverallsData); SendToCoveralls(json); } catch (Exception e) { Console.Error.WriteLine(e.Message); if (e.InnerException != null) { Console.Error.WriteLine(e.InnerException.Message); } Environment.Exit(1); } }
public void Repository_OnAppVeyor_IsCorrectType() { Environment.SetEnvironmentVariable("APPVEYOR", "True"); var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.Repository.Should().BeOfType<AppVeyorGit>(); }
public void Repository_OnJenkins_IsCorrectType() { Environment.SetEnvironmentVariable("JENKINS_HOME", "True"); var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.Repository.Should().BeOfType<JenkinsGit>(); }
public void CoverageFiles_EmptyReportFile_CoverageFilesIsEmpty() { var fileSystem = Substitute.For<IFileSystem>(); fileSystem.ReadFileText("").ReturnsForAnyArgs(""); var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; coveralls.CoverageFiles.Should().BeEmpty(); }
public void CoverageFiles_ValidFile_ReturnsCorrectCountOfFiles() { var fileSystem = Substitute.For<IFileSystem>(); fileSystem.ReadFileText("").ReturnsForAnyArgs(TestHelpers.LoadResourceText("Coveralls.Tests.Files.OpenCover.SingleFileCoverage.xml")); var opts = Substitute.For<ICommandOptions>(); opts.InputFiles.Returns(new List<string> {"coverage.xml"}); var coveralls = new CoverallsBootstrap(opts); coveralls.FileSystem = fileSystem; coveralls.CoverageFiles.Count().Should().Be(1); }
public void RepoToken_EnvVarNotSet_IsNull() { var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.RepoToken.Should().Be(null); }
public void RepoToken_ReadsEnvVariable() { Environment.SetEnvironmentVariable("COVERALLS_REPO_TOKEN", "1234abcd"); var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.RepoToken.Should().Be("1234abcd"); }
public void ServiceName_NoEnvironmentVariable_IsCoverallsNet() { var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceName.Should().Be("coveralls.net"); }
public void ServiceJobId_OnAppVeyor_ReadsEnvVariable() { Environment.SetEnvironmentVariable("APPVEYOR", "True"); Environment.SetEnvironmentVariable("APPVEYOR_JOB_ID", "23"); var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.ServiceJobId.Should().Be("23"); }
static void Main(string[] args) { Options = Parser.Default.ParseArguments <CommandLineOptions>(args).Value; try { var coveralls = new CoverallsBootstrap(Options) { FileSystem = new LocalFileSystem() }; if (!coveralls.CoverageFiles.Any()) { Console.WriteLine("No coverage statistics files."); return; } if (Options.DebugMode) { Console.WriteLine("[debug] repotoken: '" + coveralls.RepoToken + "'"); } if (coveralls.RepoToken.IsBlank()) { Console.WriteLine("Blank or invalid Coveralls Repo Token. " + "Did you prefix your token with 'secure:' without encrypting it?"); return; } var sourceFiles = coveralls.CoverageFiles; foreach (var file in sourceFiles) { file.Path = file.Path.ToRelativePath(Directory.GetCurrentDirectory()); } var coverallsData = new CoverallsData { ServiceName = coveralls.ServiceName, ServiceJobId = coveralls.ServiceJobId, RepoToken = coveralls.RepoToken, SourceFiles = coveralls.CoverageFiles.ToArray(), Git = coveralls.Repository.Data }; Console.WriteLine("Service: {0}", coverallsData.ServiceName); Console.WriteLine(" Job ID: {0}", coverallsData.ServiceJobId); Console.WriteLine(" Files: {0}", coverallsData.SourceFiles.Length); Console.WriteLine(" Commit: {0}", coverallsData.Git.Head.Id); var json = JsonConvert.SerializeObject(coverallsData); SendToCoveralls(json); } catch (Exception e) { Console.Error.WriteLine(e.Message); if (e.InnerException != null) { Console.Error.WriteLine(e.InnerException.Message); } Environment.Exit(1); } }
public void Repository_OnLocal_IsCorrectType() { var opts = Substitute.For<ICommandOptions>(); var coveralls = new CoverallsBootstrap(opts); coveralls.Repository.Should().BeOfType<LocalGit>(); }