diff --git a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs index 916d1aadc2..59d19d4fcb 100644 --- a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs @@ -28,7 +28,7 @@ public void EmptyOnFetchDisabledBuildServerMeansNoFetchIsTrue() arguments.NoFetch.ShouldBe(true); } - private class MockBuildAgent : ICurrentBuildAgent + private sealed class MockBuildAgent : ICurrentBuildAgent { public bool IsDefault => false; public bool CanApplyToCurrentContext() => throw new NotImplementedException(); diff --git a/src/GitVersion.App.Tests/ExecCmdLineArgumentTest.cs b/src/GitVersion.App.Tests/ExecCmdLineArgumentTest.cs index 7b992bca38..5853d53a59 100644 --- a/src/GitVersion.App.Tests/ExecCmdLineArgumentTest.cs +++ b/src/GitVersion.App.Tests/ExecCmdLineArgumentTest.cs @@ -91,7 +91,7 @@ public void WorkingDirectoryWithoutCommitsFailsWithInformativeMessage() public void WorkingDirectoryDoesNotExistFailsWithInformativeMessage() { var workingDirectory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetCurrentDirectory(), Guid.NewGuid().ToString("N")); - var executable = ExecutableHelper.GetDotNetExecutable(); + var executable = ExecutableHelper.DotNetExecutable; var output = new StringBuilder(); var args = ExecutableHelper.GetExecutableArgs($" /targetpath {workingDirectory} "); diff --git a/src/GitVersion.App.Tests/Helpers/ExecutableHelper.cs b/src/GitVersion.App.Tests/Helpers/ExecutableHelper.cs index f2a25a29b2..6966a69888 100644 --- a/src/GitVersion.App.Tests/Helpers/ExecutableHelper.cs +++ b/src/GitVersion.App.Tests/Helpers/ExecutableHelper.cs @@ -4,7 +4,7 @@ namespace GitVersion.App.Tests.Helpers; public static class ExecutableHelper { - public static string GetDotNetExecutable() => "dotnet"; + public const string DotNetExecutable = "dotnet"; public static string GetExecutableArgs(string args) => $"{FileSystemHelper.Path.Combine(GetExeDirectory(), "gitversion.dll")} {args}"; diff --git a/src/GitVersion.App.Tests/Helpers/GitVersionHelper.cs b/src/GitVersion.App.Tests/Helpers/GitVersionHelper.cs index dda67328cd..9694afabc3 100644 --- a/src/GitVersion.App.Tests/Helpers/GitVersionHelper.cs +++ b/src/GitVersion.App.Tests/Helpers/GitVersionHelper.cs @@ -22,7 +22,7 @@ private static ExecutionResults ExecuteIn(ArgumentBuilder arguments, params KeyValuePair[] environments ) { - var executable = ExecutableHelper.GetDotNetExecutable(); + var executable = ExecutableHelper.DotNetExecutable; var output = new StringBuilder(); var environmentalVariables = new Dictionary diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs index bb67c41e22..48f542c36a 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; @@ -34,7 +35,7 @@ public void BuildNumberIsFullSemVer() BuildMetaData = new SemanticVersionBuildMetaData("5") { Sha = "commitSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -49,7 +50,7 @@ public void BuildNumberIsFullSemVer() writes.ShouldNotContain(x => x != null && x.StartsWith("Set Build Number for ")); } - private class BuildAgent(IEnvironment environment, ILog log, IFileSystem fileSystem) : BuildAgentBase(environment, log, fileSystem) + private sealed class BuildAgent(IEnvironment environment, ILog log, IFileSystem fileSystem) : BuildAgentBase(environment, log, fileSystem) { protected override string EnvironmentVariable => throw new NotImplementedException(); diff --git a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs index 207e591beb..0c0878e147 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; @@ -81,7 +82,7 @@ private void AssertVariablesAreWrittenToFile(string file) BuildMetaData = new SemanticVersionBuildMetaData("5") { Sha = "commitSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs index 202d8a898a..0df86886ef 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs @@ -7,15 +7,14 @@ namespace GitVersion.BuildAgents.Tests; public class DroneTests : TestBase { private IEnvironment environment = null!; - private IServiceProvider sp = null!; private Drone buildServer = null!; [SetUp] public void SetUp() { - this.sp = ConfigureServices(services => services.AddSingleton()); - this.environment = this.sp.GetRequiredService(); - this.buildServer = this.sp.GetRequiredService(); + var sp = ConfigureServices(services => services.AddSingleton()); + this.environment = sp.GetRequiredService(); + this.buildServer = sp.GetRequiredService(); this.environment.SetEnvironmentVariable("DRONE", "true"); } diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs index 53ce45d385..fa6c190587 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; @@ -121,7 +122,7 @@ private void AssertVariablesAreWrittenToFile(string file) BuildMetaData = new SemanticVersionBuildMetaData("5") { Sha = "commitSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs index 8b8f0c0d64..b68cd7babc 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; @@ -134,7 +135,7 @@ private void AssertVariablesAreWrittenToFile(string file) Minor = 2, Patch = 3, PreReleaseTag = "beta1", - BuildMetaData = new SemanticVersionBuildMetaData("5") { Sha = "commitSha", CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") } + BuildMetaData = new SemanticVersionBuildMetaData("5") { Sha = "commitSha", CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; var variableProvider = this.sp.GetRequiredService(); diff --git a/src/GitVersion.Core.Tests/CommitDateTests.cs b/src/GitVersion.Core.Tests/CommitDateTests.cs index 709a2d2686..321194924e 100644 --- a/src/GitVersion.Core.Tests/CommitDateTests.cs +++ b/src/GitVersion.Core.Tests/CommitDateTests.cs @@ -12,7 +12,7 @@ public class CommitDateTests : TestBase [TestCase("yyyy-MM", "2017-10")] public void CommitDateFormatTest(string format, string expectedOutcome) { - var date = new DateTime(2017, 10, 6); + var date = new DateTime(2017, 10, 6, 0, 0, 0, DateTimeKind.Utc); var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData( new SemanticVersion(1, 2, 2), "950d2f830f5a2af12a6779a48d20dcbb02351f25", diff --git a/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs b/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs index 2a490fd4de..8efa423ca3 100644 --- a/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs @@ -11,11 +11,6 @@ public class DynamicRepositoryTests : TestBase [SetUp] public void SetUp() => this.workDirectory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPathLegacy(), "GV"); - [TearDown] - public void TearDown() - { - } - // Note: use same name twice to see if changing commits works on same (cached) repository [NonParallelizable] [TestCase("GV_main", "https://github.com/GitTools/GitVersion", MainBranch, "2dc142a4a4df77db61a00d9fb7510b18b3c2c85a", "5.8.2-47")] diff --git a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs index 2c5f1fd616..0edf5e2b0a 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs @@ -7,7 +7,6 @@ namespace GitVersion.Tests; [TestFixture] public class GitVersionTaskDirectoryTests : TestBase { - private string gitDirectory = null!; private string workDirectory = null!; private IFileSystem fileSystem = null!; @@ -17,8 +16,8 @@ public void SetUp() var sp = ConfigureServices(); this.fileSystem = sp.GetRequiredService(); this.workDirectory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), Guid.NewGuid().ToString()); - this.gitDirectory = Repository.Init(this.workDirectory).TrimEnd(FileSystemHelper.Path.DirectorySeparatorChar); - Assert.That(this.gitDirectory, Is.Not.Null); + var gitDirectory = Repository.Init(this.workDirectory).TrimEnd(FileSystemHelper.Path.DirectorySeparatorChar); + Assert.That(gitDirectory, Is.Not.Null); } [TearDown] diff --git a/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs index 417c61d6b9..7cb3c85e5d 100644 --- a/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs @@ -24,7 +24,7 @@ public void TryFormat_ValidDateFormats_ReturnsExpectedResult(string input, strin { // For UTC datetime strings, parse as UTC to ensure consistent behavior across timezones DateTime date; - if (input.EndsWith("Z")) + if (input.EndsWith('Z')) { date = DateTime.Parse(input, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal); } diff --git a/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs b/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs index 150b91d831..06611029e4 100644 --- a/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs +++ b/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs @@ -3,13 +3,13 @@ namespace GitVersion.Tests; -public class GitVersionContextBuilder : IDisposable +public sealed class GitVersionContextBuilder : IDisposable { private IGitRepository? repository; private EmptyRepositoryFixture? emptyRepositoryFixture; private IReadOnlyDictionary? overrideConfiguration; private Action? overrideServices; - public IServiceProvider? ServicesProvider; + public IServiceProvider? ServicesProvider { get; private set; } public GitVersionContextBuilder WithRepository(IGitRepository gitRepository) { @@ -58,7 +58,7 @@ public void Build() this.emptyRepositoryFixture = new(); var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.emptyRepositoryFixture.RepositoryPath, ConfigurationInfo = { OverrideConfiguration = this.overrideConfiguration } }); - this.ServicesProvider = ConfigureServices(services => + ServicesProvider = ConfigureServices(services => { services.AddSingleton(options); services.AddSingleton(repo); @@ -93,17 +93,6 @@ private static ServiceProvider ConfigureServices(Action? ove public void Dispose() { - Dispose(true); - GC.SuppressFinalize(this); - } - - private void Dispose(bool disposing) - { - if (!disposing) - { - return; - } - this.repository?.Dispose(); this.emptyRepositoryFixture?.Dispose(); } diff --git a/src/GitVersion.Core.Tests/Helpers/TestBase.cs b/src/GitVersion.Core.Tests/Helpers/TestBase.cs index 9bf765f5ce..c79bea2c2c 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestBase.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestBase.cs @@ -7,6 +7,10 @@ public class TestBase { public const string MainBranch = "main"; + protected TestBase() + { + } + protected static IServiceProvider ConfigureServices(Action? overrideServices = null) { var services = new ServiceCollection() diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs index 69588f6e53..d86e849f4b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs @@ -193,7 +193,7 @@ private static List GetParents(bool isMergeCommit) => ? [new MockCommit(), new MockCommit()] : [new MockCommit()]; - private class MockCommit : ICommit + private sealed class MockCommit : ICommit { public bool Equals(ICommit? other) => throw new NotImplementedException(); public int CompareTo(ICommit? other) => throw new NotImplementedException(); diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs index f46fb3af8a..41dcd9c571 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs @@ -42,7 +42,7 @@ public void ProvidesVariablesInContinuousDeliveryModeForPreRelease() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -68,7 +68,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForPreRelease() Sha = "commitSha", ShortSha = "commitShortSha", VersionSourceDistance = 5, - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -92,7 +92,7 @@ public void ProvidesVariablesInContinuousDeliveryModeForStable() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -118,7 +118,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForStable() Sha = "commitSha", ShortSha = "commitShortSha", VersionSourceDistance = 5, - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -144,7 +144,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommi VersionSourceDistance = 5, Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -169,7 +169,7 @@ public void ProvidesVariablesInContinuousDeploymentModeWithTagNamePattern() Branch = "pull/2/merge", Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -194,7 +194,7 @@ public void ProvidesVariablesInContinuousDeploymentModeWithTagSetToBranchName() Branch = "feature", Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -219,7 +219,7 @@ public void ProvidesVariablesInContinuousDeliveryModeForFeatureBranch() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -244,7 +244,7 @@ public void ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomA VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -281,7 +281,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLab Sha = "commitSha", ShortSha = "commitShortSha", VersionSourceDistance = 5, - CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; diff --git a/src/GitVersion.Core/Core/RepositoryStore.cs b/src/GitVersion.Core/Core/RepositoryStore.cs index 093c1af856..8767ebf746 100644 --- a/src/GitVersion.Core/Core/RepositoryStore.cs +++ b/src/GitVersion.Core/Core/RepositoryStore.cs @@ -142,12 +142,9 @@ public IEnumerable GetSourceBranches( break; } - foreach (var commit in commitBranch.Branch.Commits.Where(element => element.When >= item.Commit.When)) + if (commitBranch.Branch.Commits.Any(element => element.When >= item.Commit.When && element.Equals(item.Commit))) { - if (commit.Equals(item.Commit)) - { - commitBranches.Remove(item); - } + commitBranches.Remove(item); } } } @@ -172,12 +169,9 @@ public IEnumerable GetSourceBranches( continue; } - foreach (var item in branchGrouping) + foreach (var item in branchGrouping.Where(returnedBranches.Add)) { - if (returnedBranches.Add(item)) - { - yield return item; - } + yield return item; } } } diff --git a/src/GitVersion.Output.Tests/Output/WixFileTests.cs b/src/GitVersion.Output.Tests/Output/WixFileTests.cs index 76ded1fd8c..f4faaf811c 100644 --- a/src/GitVersion.Output.Tests/Output/WixFileTests.cs +++ b/src/GitVersion.Output.Tests/Output/WixFileTests.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.IO.Abstractions; using GitVersion.Configuration; using GitVersion.Helpers; @@ -36,7 +37,7 @@ public void UpdateWixVersionFile() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2019-02-20 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2019-02-20 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -77,7 +78,7 @@ public void UpdateWixVersionFileWhenFileAlreadyExists() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitDate = DateTimeOffset.Parse("2019-02-20 23:59:59Z") + CommitDate = DateTimeOffset.Parse("2019-02-20 23:59:59Z", CultureInfo.InvariantCulture) } };