Skip to content

Commit 29f871d

Browse files
authored
Merge pull request #4522 from arturcic/fix/libgit2sharp-remote-rename
refactor: update remote branch handling in tests
2 parents c94490e + c11cd7a commit 29f871d

File tree

5 files changed

+19
-21
lines changed

5 files changed

+19
-21
lines changed

src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs

+15
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,21 @@ public static void DumpGraph(this IGitRepository repository, Action<string>? wri
6565
public static void DumpGraph(this IRepository repository, Action<string>? writer = null, int? maxCommits = null)
6666
=> DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);
6767

68+
public static void RenameRemote(this LibGit2Sharp.RemoteCollection remotes, string oldName, string newName)
69+
{
70+
if (oldName.IsEquivalentTo(newName)) return;
71+
if (remotes.Any(remote => remote.Name == newName))
72+
{
73+
throw new InvalidOperationException($"A remote with the name '{newName}' already exists.");
74+
}
75+
if (!remotes.Any(remote => remote.Name == oldName))
76+
{
77+
throw new InvalidOperationException($"A remote with the name '{oldName}' does not exist.");
78+
}
79+
remotes.Add(newName, remotes[oldName].Url);
80+
remotes.Remove(oldName);
81+
}
82+
6883
public static GitVersionVariables GetVersion(this RepositoryFixtureBase fixture, IGitVersionConfiguration? configuration = null,
6984
IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null)
7085
{

src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs

+1-6
Original file line numberDiff line numberDiff line change
@@ -142,17 +142,12 @@ private static void CopyRemoteBranchesToHeads(Repository repository)
142142
[TestCase("custom", "release/3.0.0", "0.1.0-alpha.5")]
143143
public void EnsureRemoteReleaseBranchesAreTracked(string origin, string branchName, string expectedVersion)
144144
{
145-
if (SysEnv.OSVersion.Platform == PlatformID.Win32NT)
146-
{
147-
Assert.Ignore("Test ignored on Windows - LibGitSharp 0.31.0 fails");
148-
}
149-
150145
using var fixture = new RemoteRepositoryFixture("develop");
151146

152147
fixture.CreateBranch(branchName);
153148
fixture.MakeACommit();
154149

155-
if (origin != "origin") fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", origin);
150+
if (origin != "origin") fixture.LocalRepositoryFixture.Repository.Network.Remotes.RenameRemote("origin", origin);
156151
fixture.LocalRepositoryFixture.Fetch(origin);
157152
fixture.LocalRepositoryFixture.Checkout("develop");
158153

src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs

+1-5
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,8 @@ public void TakesVersionFromNameOfRemoteReleaseBranchInOrigin()
5454
[Test]
5555
public void DoesNotTakeVersionFromNameOfRemoteReleaseBranchInCustomRemote()
5656
{
57-
if (SysEnv.OSVersion.Platform == PlatformID.Win32NT)
58-
{
59-
Assert.Ignore("Test ignored on Windows - LibGitSharp 0.31.0 fails");
60-
}
6157
using var fixture = new RemoteRepositoryFixture();
62-
fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", "upstream");
58+
fixture.LocalRepositoryFixture.Repository.Network.Remotes.RenameRemote("origin", "upstream");
6359
fixture.BranchTo("release/2.0.0");
6460
fixture.MakeACommit();
6561
Commands.Fetch(fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, [], new(), null);

src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs

+1-5
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,8 @@ public void TakesVersionFromNameOfRemoteReleaseBranchInOrigin()
7070
[Test]
7171
public void DoesNotTakeVersionFromNameOfRemoteReleaseBranchInCustomRemote()
7272
{
73-
if (SysEnv.OSVersion.Platform == PlatformID.Win32NT)
74-
{
75-
Assert.Ignore("Test ignored on Windows - LibGitSharp 0.31.0 fails");
76-
}
7773
using var fixture = new RemoteRepositoryFixture();
78-
fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", "upstream");
74+
fixture.LocalRepositoryFixture.Repository.Network.Remotes.RenameRemote("origin", "upstream");
7975
fixture.BranchTo("release/2.0.0");
8076
fixture.MakeACommit();
8177
fixture.LocalRepositoryFixture.Fetch("upstream");

src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs

+1-5
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,10 @@ public void CanTakeVersionFromNameOfConfiguredReleaseBranch(string branchName, s
9898
[TestCase("origin", "release/3.0.0", "3.0.0")]
9999
public void CanTakeVersionFromNameOfRemoteReleaseBranch(string origin, string branchName, string expectedBaseVersion)
100100
{
101-
if (SysEnv.OSVersion.Platform == PlatformID.Win32NT)
102-
{
103-
Assert.Ignore("Test ignored on Windows - LibGitSharp 0.31.0 fails");
104-
}
105101
using var fixture = new RemoteRepositoryFixture();
106102

107103
fixture.CreateBranch(branchName);
108-
if (origin != "origin") fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", origin);
104+
if (origin != "origin") fixture.LocalRepositoryFixture.Repository.Network.Remotes.RenameRemote("origin", origin);
109105
fixture.LocalRepositoryFixture.Fetch(origin);
110106

111107
var localRepository = fixture.LocalRepositoryFixture.Repository.ToGitRepository();

0 commit comments

Comments
 (0)