diff --git a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs index b9982f9d47..1570e7bf58 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs @@ -65,6 +65,21 @@ public static void DumpGraph(this IGitRepository repository, Action? wri public static void DumpGraph(this IRepository repository, Action? writer = null, int? maxCommits = null) => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits); + public static void RenameRemote(this LibGit2Sharp.RemoteCollection remotes, string oldName, string newName) + { + if (oldName.IsEquivalentTo(newName)) return; + if (remotes.Any(remote => remote.Name == newName)) + { + throw new InvalidOperationException($"A remote with the name '{newName}' already exists."); + } + if (!remotes.Any(remote => remote.Name == oldName)) + { + throw new InvalidOperationException($"A remote with the name '{oldName}' does not exist."); + } + remotes.Add(newName, remotes[oldName].Url); + remotes.Remove(oldName); + } + public static GitVersionVariables GetVersion(this RepositoryFixtureBase fixture, IGitVersionConfiguration? configuration = null, IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null) { diff --git a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs index e2720e37da..af76ec7acd 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs @@ -142,17 +142,12 @@ private static void CopyRemoteBranchesToHeads(Repository repository) [TestCase("custom", "release/3.0.0", "0.1.0-alpha.5")] public void EnsureRemoteReleaseBranchesAreTracked(string origin, string branchName, string expectedVersion) { - if (SysEnv.OSVersion.Platform == PlatformID.Win32NT) - { - Assert.Ignore("Test ignored on Windows - LibGitSharp 0.31.0 fails"); - } - using var fixture = new RemoteRepositoryFixture("develop"); fixture.CreateBranch(branchName); fixture.MakeACommit(); - if (origin != "origin") fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", origin); + if (origin != "origin") fixture.LocalRepositoryFixture.Repository.Network.Remotes.RenameRemote("origin", origin); fixture.LocalRepositoryFixture.Fetch(origin); fixture.LocalRepositoryFixture.Checkout("develop"); diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs index 51548c6cf8..387559ff4e 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs @@ -54,12 +54,8 @@ public void TakesVersionFromNameOfRemoteReleaseBranchInOrigin() [Test] public void DoesNotTakeVersionFromNameOfRemoteReleaseBranchInCustomRemote() { - if (SysEnv.OSVersion.Platform == PlatformID.Win32NT) - { - Assert.Ignore("Test ignored on Windows - LibGitSharp 0.31.0 fails"); - } using var fixture = new RemoteRepositoryFixture(); - fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", "upstream"); + fixture.LocalRepositoryFixture.Repository.Network.Remotes.RenameRemote("origin", "upstream"); fixture.BranchTo("release/2.0.0"); fixture.MakeACommit(); Commands.Fetch(fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, [], new(), null); diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs index a36baccecc..8da8e0ce2c 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs @@ -70,12 +70,8 @@ public void TakesVersionFromNameOfRemoteReleaseBranchInOrigin() [Test] public void DoesNotTakeVersionFromNameOfRemoteReleaseBranchInCustomRemote() { - if (SysEnv.OSVersion.Platform == PlatformID.Win32NT) - { - Assert.Ignore("Test ignored on Windows - LibGitSharp 0.31.0 fails"); - } using var fixture = new RemoteRepositoryFixture(); - fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", "upstream"); + fixture.LocalRepositoryFixture.Repository.Network.Remotes.RenameRemote("origin", "upstream"); fixture.BranchTo("release/2.0.0"); fixture.MakeACommit(); fixture.LocalRepositoryFixture.Fetch("upstream"); diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs index 4d53a8b07c..868baca593 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs @@ -98,14 +98,10 @@ public void CanTakeVersionFromNameOfConfiguredReleaseBranch(string branchName, s [TestCase("origin", "release/3.0.0", "3.0.0")] public void CanTakeVersionFromNameOfRemoteReleaseBranch(string origin, string branchName, string expectedBaseVersion) { - if (SysEnv.OSVersion.Platform == PlatformID.Win32NT) - { - Assert.Ignore("Test ignored on Windows - LibGitSharp 0.31.0 fails"); - } using var fixture = new RemoteRepositoryFixture(); fixture.CreateBranch(branchName); - if (origin != "origin") fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", origin); + if (origin != "origin") fixture.LocalRepositoryFixture.Repository.Network.Remotes.RenameRemote("origin", origin); fixture.LocalRepositoryFixture.Fetch(origin); var localRepository = fixture.LocalRepositoryFixture.Repository.ToGitRepository();