Skip to content

Commit 1992f42

Browse files
committed
Fix some unit tests
1 parent 9faa790 commit 1992f42

File tree

3 files changed

+57
-47
lines changed

3 files changed

+57
-47
lines changed

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

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void CanTakeVersionFromHotfixesBranch()
6060

6161
// create hotfix branch
6262
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("hotfixes/1.1.1"));
63-
fixture.AssertFullSemver("1.1.0"); // We are still on a tagged commit
63+
fixture.AssertFullSemver("1.1.1+0");
6464
fixture.Repository.MakeACommit();
6565

6666
fixture.AssertFullSemver("1.1.1-beta.1+1");
@@ -78,44 +78,44 @@ public void PatchOlderReleaseExample()
7878
r.MakeATaggedCommit("2.0.0");
7979
});
8080
// Merge hotfix branch to support
81-
Commands.Checkout(fixture.Repository, MainBranch);
81+
fixture.Checkout(MainBranch);
8282
var tag = fixture.Repository.Tags.Single(t => t.FriendlyName == "1.1.0");
83-
var supportBranch = fixture.Repository.CreateBranch("support-1.1", (LibGit2Sharp.Commit)tag.Target);
84-
Commands.Checkout(fixture.Repository, supportBranch);
83+
fixture.Repository.CreateBranch("support-1.1", (LibGit2Sharp.Commit)tag.Target);
84+
fixture.Checkout("support-1.1");
8585
fixture.AssertFullSemver("1.1.0");
8686

8787
// create hotfix branch
88-
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("hotfix-1.1.1"));
89-
fixture.AssertFullSemver("1.1.0"); // We are still on a tagged commit
90-
fixture.Repository.MakeACommit();
88+
fixture.BranchTo("hotfix-1.1.1");
89+
fixture.AssertFullSemver("1.1.1+0");
90+
fixture.MakeACommit();
9191

9292
fixture.AssertFullSemver("1.1.1-beta.1+1");
93-
fixture.Repository.MakeACommit();
93+
fixture.MakeACommit();
9494
fixture.AssertFullSemver("1.1.1-beta.1+2");
9595

9696
// Create feature branch off hotfix branch and complete
97-
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("feature/fix"));
97+
fixture.BranchTo("feature/fix");
9898
fixture.AssertFullSemver("1.1.1-fix.1+2");
99-
fixture.Repository.MakeACommit();
99+
fixture.MakeACommit();
100100
fixture.AssertFullSemver("1.1.1-fix.1+3");
101101

102102
fixture.Repository.CreatePullRequestRef("feature/fix", "hotfix-1.1.1", prNumber: 8, normalise: true);
103103
fixture.AssertFullSemver("1.1.1-PullRequest8.4");
104-
Commands.Checkout(fixture.Repository, "hotfix-1.1.1");
105-
fixture.Repository.MergeNoFF("feature/fix", Generate.SignatureNow());
104+
fixture.Checkout("hotfix-1.1.1");
105+
fixture.MergeNoFF("feature/fix");
106106
fixture.AssertFullSemver("1.1.1-beta.1+4");
107107

108108
// Merge hotfix into support branch to complete hotfix
109-
Commands.Checkout(fixture.Repository, "support-1.1");
110-
fixture.Repository.MergeNoFF("hotfix-1.1.1", Generate.SignatureNow());
109+
fixture.Checkout("support-1.1");
110+
fixture.MergeNoFF("hotfix-1.1.1");
111111
fixture.AssertFullSemver("1.1.1+5");
112-
fixture.Repository.ApplyTag("1.1.1");
112+
fixture.ApplyTag("1.1.1");
113113
fixture.AssertFullSemver("1.1.1");
114114

115115
// Verify develop version
116-
Commands.Checkout(fixture.Repository, "develop");
116+
fixture.Checkout("develop");
117117
fixture.AssertFullSemver("2.1.0-alpha.1");
118-
fixture.Repository.MergeNoFF("support-1.1", Generate.SignatureNow());
118+
fixture.MergeNoFF("support-1.1");
119119
fixture.AssertFullSemver("2.1.0-alpha.7");
120120
}
121121

@@ -167,7 +167,7 @@ public void FeatureOnHotfixFeatureBranchDeleted()
167167
fixture.Checkout(hotfix451);
168168
fixture.MergeNoFF(featureBranch); // commit 2
169169
fixture.Repository.Branches.Remove(featureBranch);
170-
fixture.AssertFullSemver("4.5.1-beta.2", configuration);
170+
fixture.AssertFullSemver("4.5.1-beta.3", configuration);
171171
}
172172

173173
/// <summary>
@@ -217,7 +217,8 @@ public void FeatureOnHotfixFeatureBranchNotDeleted()
217217
fixture.MakeACommit("blabla"); // commit 1
218218
fixture.Checkout(hotfix451);
219219
fixture.MergeNoFF(featureBranch); // commit 2
220-
fixture.AssertFullSemver("4.5.1-beta.2", configuration);
220+
221+
fixture.AssertFullSemver("4.5.1-beta.3", configuration);
221222
}
222223

223224
[Test]

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

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,41 +12,41 @@ public void SupportIsCalculatedCorrectly()
1212
{
1313
using var fixture = new EmptyRepositoryFixture();
1414
// Start at 1.0.0
15-
fixture.Repository.MakeACommit();
16-
fixture.Repository.ApplyTag("1.1.0");
15+
fixture.MakeACommit();
16+
fixture.ApplyTag("1.1.0");
1717

1818
// Create 2.0.0 release
19-
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("release-2.0.0"));
19+
fixture.BranchTo("release-2.0.0");
2020
fixture.Repository.MakeCommits(2);
2121

2222
// Merge into develop and main
23-
Commands.Checkout(fixture.Repository, MainBranch);
24-
fixture.Repository.MergeNoFF("release-2.0.0");
25-
fixture.Repository.ApplyTag("2.0.0");
23+
fixture.Checkout(MainBranch);
24+
fixture.MergeNoFF("release-2.0.0");
25+
fixture.ApplyTag("2.0.0");
2626
fixture.AssertFullSemver("2.0.0");
2727

2828
// Now lets support 1.x release
29-
Commands.Checkout(fixture.Repository, "1.1.0");
30-
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("support/1.0.0"));
29+
fixture.Checkout("1.1.0");
30+
fixture.BranchTo("support/1.0.0");
3131
fixture.AssertFullSemver("1.1.0");
3232

3333
// Create release branch from support branch
34-
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("release/1.2.0"));
35-
fixture.Repository.MakeACommit();
34+
fixture.BranchTo("release/1.2.0");
35+
fixture.MakeACommit();
3636
fixture.AssertFullSemver("1.2.0-beta.1+1");
3737

3838
// Create 1.2.0 release
39-
Commands.Checkout(fixture.Repository, "support/1.0.0");
40-
fixture.Repository.MergeNoFF("release/1.2.0");
39+
fixture.Checkout("support/1.0.0");
40+
fixture.MergeNoFF("release/1.2.0");
4141
fixture.AssertFullSemver("1.2.0+0");
42-
fixture.Repository.ApplyTag("1.2.0");
42+
fixture.ApplyTag("1.2.0");
4343

4444
// Create 1.2.1 hotfix
45-
Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("hotfix/1.2.1"));
46-
fixture.Repository.MakeACommit();
47-
fixture.AssertFullSemver("1.2.1-beta.1+1");
48-
Commands.Checkout(fixture.Repository, "support/1.0.0");
49-
fixture.Repository.MergeNoFF("hotfix/1.2.1");
45+
fixture.BranchTo("hotfix/1.2.1");
46+
fixture.MakeACommit();
47+
fixture.AssertFullSemver("1.2.1-beta.1+3");
48+
fixture.Checkout("support/1.0.0");
49+
fixture.MergeNoFF("hotfix/1.2.1");
5050
fixture.AssertFullSemver("1.2.1+2");
5151
}
5252

src/GitVersion.Core/VersionCalculation/BaseVersionCalculators/VersionInBranchNameVersionStrategy.cs

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System.Diagnostics.CodeAnalysis;
12
using GitVersion.Common;
23
using GitVersion.Configuration;
34
using GitVersion.Extensions;
@@ -18,30 +19,38 @@ public VersionInBranchNameVersionStrategy(IRepositoryStore repositoryStore, Lazy
1819

1920
public override IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration)
2021
{
21-
if (!configuration.Value.IsReleaseBranch) yield break;
22+
if (configuration.Value.IsReleaseBranch && TryGetBaseVersion(out var baseVersion, configuration))
23+
{
24+
yield return baseVersion;
25+
}
26+
}
2227

28+
private bool TryGetBaseVersion([NotNullWhen(true)] out BaseVersion? baseVersion, EffectiveBranchConfiguration configuration)
29+
{
30+
baseVersion = null;
31+
32+
Lazy<BranchCommit> commitBranchWasBranchedFrom = new(
33+
() => this.repositoryStore.FindCommitBranchWasBranchedFrom(configuration.Branch, Context.Configuration)
34+
);
2335
foreach (var branch in new[] { Context.CurrentBranch, configuration.Branch })
2436
{
2537
if (branch.Name.TryGetSemanticVersion(out var result, configuration.Value.VersionInBranchRegex,
2638
configuration.Value.LabelPrefix, configuration.Value.SemanticVersionFormat))
2739
{
28-
var commitBranchWasBranchedFrom = this.repositoryStore.FindCommitBranchWasBranchedFrom(
29-
configuration.Branch, Context.Configuration
30-
);
31-
3240
string? branchNameOverride = null;
33-
if (Context.CurrentBranch.Name.Equals(branch.Name)
34-
|| Context.Configuration.GetBranchConfiguration(Context.CurrentBranch.Name).Label is null)
41+
if (!result.Name.IsNullOrEmpty() && (Context.CurrentBranch.Name.Equals(branch.Name)
42+
|| Context.Configuration.GetBranchConfiguration(Context.CurrentBranch.Name).Label is null))
3543
{
3644
branchNameOverride = result.Name;
3745
}
3846

39-
yield return new BaseVersion(
40-
"Version in branch name", false, result.Value, commitBranchWasBranchedFrom.Commit, branchNameOverride
47+
baseVersion = new BaseVersion(
48+
"Version in branch name", false, result.Value, commitBranchWasBranchedFrom.Value.Commit, branchNameOverride
4149
);
42-
yield break;
50+
break;
4351
}
4452
}
4553

54+
return baseVersion != null;
4655
}
4756
}

0 commit comments

Comments
 (0)