Skip to content

Commit 198fd25

Browse files
committed
Fix test in CompareTheDifferentWhenUsingTrunkBasedVersionStrategyWithGitFlow
1 parent 943fc4c commit 198fd25

File tree

9 files changed

+111
-121
lines changed

9 files changed

+111
-121
lines changed

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

Lines changed: 8 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -616,29 +616,13 @@ public void EnsureFeatureDevelopmentWithDevelopBranchFast(bool useTrunkBased)
616616

617617
fixture.BranchTo("feature/foo");
618618

619-
if (useTrunkBased)
620-
{
621-
// ❔ expected: "0.1.0-foo.1+0"
622-
fixture.AssertFullSemver("0.0.2-foo.1+0", configuration);
623-
}
624-
else
625-
{
626-
// ✅ succeeds as expected
627-
fixture.AssertFullSemver("0.1.0-foo.1+0", configuration);
628-
}
619+
// ✅ succeeds as expected
620+
fixture.AssertFullSemver("0.1.0-foo.1+0", configuration);
629621

630622
fixture.MakeACommit("B");
631623

632-
if (useTrunkBased)
633-
{
634-
// ❔ expected: "0.1.0-foo.1+1"
635-
fixture.AssertFullSemver("0.0.2-foo.1+1", configuration);
636-
}
637-
else
638-
{
639-
// ✅ succeeds as expected
640-
fixture.AssertFullSemver("0.1.0-foo.1+1", configuration);
641-
}
624+
// ✅ succeeds as expected
625+
fixture.AssertFullSemver("0.1.0-foo.1+1", configuration);
642626

643627
fixture.ApplyTag("0.1.0-foo.1");
644628

@@ -946,31 +930,15 @@ public void EnsureBugFixWithDevelopBranchFast(bool useTrunkBased)
946930
fixture.BranchTo("pull/2/merge");
947931
fixture.MergeNoFF("hotfix/foo");
948932

949-
if (useTrunkBased)
950-
{
951-
// ❔ expected: "0.1.0-PullRequest2.4"
952-
fixture.AssertFullSemver("0.0.2-PullRequest2.4", configuration);
953-
}
954-
else
955-
{
956-
// ✅ succeeds as expected
957-
fixture.AssertFullSemver("0.1.0-PullRequest2.4", configuration);
958-
}
933+
// ✅ succeeds as expected
934+
fixture.AssertFullSemver("0.1.0-PullRequest2.4", configuration);
959935

960936
fixture.Checkout("main");
961937
fixture.BranchTo("pull/3/merge");
962938
fixture.MergeNoFF("hotfix/foo");
963939

964-
if (useTrunkBased)
965-
{
966-
// ✅ succeeds as expected
967-
fixture.AssertFullSemver("0.0.2-PullRequest3.4", configuration);
968-
}
969-
else
970-
{
971-
// ❔ expected: "0.0.2-PullRequest3.4"
972-
fixture.AssertFullSemver("0.1.0-PullRequest3.4", configuration);
973-
}
940+
// ❔ expected: "0.0.2-PullRequest3.4"
941+
fixture.AssertFullSemver("0.1.0-PullRequest3.4", configuration);
974942

975943
fixture.Checkout("hotfix/foo");
976944
fixture.MergeTo("main", removeBranchAfterMerging: true);
@@ -985,26 +953,6 @@ public void EnsureBugFixWithDevelopBranchFast(bool useTrunkBased)
985953
fixture.AssertFullSemver("0.0.3-1", configuration);
986954
}
987955

988-
[Test]
989-
public void JustATest()
990-
{
991-
var configuration = configurationBuilder.WithVersionStrategy(VersionStrategies.TrunkBased).Build();
992-
993-
using var fixture = new EmptyRepositoryFixture("main");
994-
995-
fixture.MakeACommit("A");
996-
997-
// ✅ succeeds as expected
998-
fixture.AssertFullSemver("0.0.1-1", configuration);
999-
1000-
fixture.ApplyTag("0.1.0");
1001-
1002-
for (int i = 0; i < 10; i++) fixture.MakeACommit();
1003-
1004-
// ✅ succeeds as expected
1005-
fixture.AssertFullSemver("0.1.10-1", configuration);
1006-
}
1007-
1008956
[TestCase(false)]
1009957
[TestCase(true)]
1010958
public void EnsureFeatureDevelopmentWithReleaseNextBranch(bool useTrunkBased)

src/GitVersion.Core/Git/ReferenceName.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public static bool TryParse([NotNullWhen(true)] out ReferenceName? value, string
5454
value = new(canonicalName);
5555
}
5656

57-
return value != null;
57+
return value is not null;
5858
}
5959

6060
public static ReferenceName FromBranchName(string branchName)
@@ -77,6 +77,15 @@ public static ReferenceName FromBranchName(string branchName)
7777
public override int GetHashCode() => equalityHelper.GetHashCode(this);
7878
public override string ToString() => Friendly;
7979

80+
public static bool operator ==(ReferenceName? left, ReferenceName? right)
81+
{
82+
if (ReferenceEquals(left, right)) return true;
83+
if (left is null || right is null) return false;
84+
return left.Equals(right);
85+
}
86+
87+
public static bool operator !=(ReferenceName? left, ReferenceName? right) => !(left == right);
88+
8089
public bool TryGetSemanticVersion([NotNullWhen(true)] out (SemanticVersion Value, string? Name) result,
8190
Regex versionPatternRegex,
8291
string? tagPrefix,

src/GitVersion.Core/MergeMessage.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public static bool TryParse(
100100
mergeMessage = null;
101101

102102
var mergedBranch = new MergeMessage(mergeCommit.Message, configuration).MergedBranch;
103-
var isReleaseBranch = mergedBranch != null && configuration.IsReleaseBranch(mergedBranch);
103+
var isReleaseBranch = mergedBranch is not null && configuration.IsReleaseBranch(mergedBranch);
104104
var isValidMergeCommit = mergeCommit.IsMergeCommit() || isReleaseBranch;
105105

106106
if (isValidMergeCommit)

src/GitVersion.Core/PublicAPI.Unshipped.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,8 @@ static GitVersion.Git.BranchCommit.operator !=(GitVersion.Git.BranchCommit left,
769769
static GitVersion.Git.BranchCommit.operator ==(GitVersion.Git.BranchCommit left, GitVersion.Git.BranchCommit right) -> bool
770770
static GitVersion.Git.CommitExtensions.IsMergeCommit(this GitVersion.Git.ICommit! source) -> bool
771771
static GitVersion.Git.ReferenceName.FromBranchName(string! branchName) -> GitVersion.Git.ReferenceName!
772+
static GitVersion.Git.ReferenceName.operator !=(GitVersion.Git.ReferenceName? left, GitVersion.Git.ReferenceName? right) -> bool
773+
static GitVersion.Git.ReferenceName.operator ==(GitVersion.Git.ReferenceName? left, GitVersion.Git.ReferenceName? right) -> bool
772774
static GitVersion.Git.ReferenceName.Parse(string! canonicalName) -> GitVersion.Git.ReferenceName!
773775
static GitVersion.Git.ReferenceName.TryParse(out GitVersion.Git.ReferenceName? value, string! canonicalName) -> bool
774776
static GitVersion.Helpers.Disposable.Create(System.Action! disposer) -> System.IDisposable!

src/GitVersion.Core/VersionCalculation/TrunkBased/EnrichIncrement.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ public void Enrich(TrunkBasedIteration iteration, TrunkBasedCommit commit, Trunk
1111
{
1212
var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration);
1313
var incrementForcedByBranch = effectiveConfiguration.Increment.ToVersionField();
14-
var incrementForcedByCommit = GetIncrementForcedByCommit(context, commit.Value, effectiveConfiguration);
14+
var incrementForcedByCommit = commit.IsDummy
15+
? VersionField.None
16+
: GetIncrementForcedByCommit(context, commit.Value, effectiveConfiguration);
1517
commit.Increment = incrementForcedByCommit;
1618
context.Increment = context.Increment.Consolidate(incrementForcedByBranch, incrementForcedByCommit);
1719

src/GitVersion.Core/VersionCalculation/TrunkBased/NonTrunk/FirstCommitOnRelease.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public bool MatchPrecondition(TrunkBasedIteration iteration, TrunkBasedCommit co
2424
&& commit.GetEffectiveConfiguration(context.Configuration).IsReleaseBranch
2525
&& context.SemanticVersion is null
2626
&& (commit.Predecessor is null
27-
|| commit.Predecessor?.BranchName != commit.BranchName);
27+
|| commit.BranchName != commit.Predecessor?.BranchName);
2828

2929
public IEnumerable<IBaseVersionIncrement> GetIncrements(
3030
TrunkBasedIteration iteration, TrunkBasedCommit commit, TrunkBasedContext context)

src/GitVersion.Core/VersionCalculation/TrunkBased/TrunkBasedCommit.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace GitVersion.VersionCalculation.TrunkBased;
1010
"HasSuccessor = {" + nameof(HasSuccessor) + "}, HasPredecessor = {" + nameof(HasPredecessor) + "}, " +
1111
"HasChildIteration = {" + nameof(HasChildIteration) + "}, Message = {" + nameof(Message) + @"} \}"
1212
)]
13-
internal record TrunkBasedCommit(TrunkBasedIteration Iteration, ICommit Value, ReferenceName BranchName, IBranchConfiguration Configuration)
13+
internal record TrunkBasedCommit(TrunkBasedIteration Iteration, ICommit? value, ReferenceName BranchName, IBranchConfiguration Configuration)
1414
{
1515
public bool IsPredecessorTheLastCommitOnTrunk(IGitVersionConfiguration configuration)
1616
=> !GetEffectiveConfiguration(configuration).IsMainBranch && Predecessor?.GetEffectiveConfiguration(configuration).IsMainBranch == true;
@@ -31,9 +31,12 @@ public bool IsPredecessorTheLastCommitOnTrunk(IGitVersionConfiguration configura
3131

3232
public TrunkBasedCommit? Predecessor { get; private set; }
3333

34-
public ICommit Value { get; } = Value.NotNull();
34+
public ICommit Value => IsDummy ? (Successor?.Value)! : value!;
3535

36-
public string Message => Value.Message;
36+
[MemberNotNullWhen(false, nameof(Value))]
37+
public bool IsDummy => value is null;
38+
39+
public string Message => IsDummy ? "<<DUMMY>>" : Value.Message;
3740

3841
public TrunkBasedIteration? ChildIteration { get; private set; }
3942

@@ -101,7 +104,7 @@ public void AddSemanticVersions(IEnumerable<SemanticVersion> values)
101104
public void AddChildIteration(TrunkBasedIteration iteration) => ChildIteration = iteration.NotNull();
102105

103106
public TrunkBasedCommit Append(
104-
ICommit value, ReferenceName branchName, IBranchConfiguration configuration)
107+
ICommit? value, ReferenceName branchName, IBranchConfiguration configuration)
105108
{
106109
if (HasPredecessor) throw new InvalidOperationException();
107110

src/GitVersion.Core/VersionCalculation/TrunkBased/TrunkBasedIteration.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,21 @@ public TrunkBasedIteration(string id, ReferenceName branchName, IBranchConfigura
6363
}
6464

6565
public TrunkBasedCommit CreateCommit(
66-
ICommit value, ReferenceName branchName, IBranchConfiguration configuration)
66+
ICommit? value, ReferenceName branchName, IBranchConfiguration configuration)
6767
{
6868
TrunkBasedCommit commit;
6969
if (commits.Count != 0)
70-
commit = commits.Peek().Append(value, branchName, configuration); //, increment);
70+
commit = commits.Peek().Append(value, branchName, configuration);
7171
else
7272
{
73-
commit = new TrunkBasedCommit(this, value, branchName, configuration); //, increment);
73+
commit = new TrunkBasedCommit(this, value, branchName, configuration);
7474
}
7575
commits.Push(commit);
76-
commitLookup.Add(value, commit);
76+
77+
if (value is not null)
78+
{
79+
commitLookup.Add(value, commit);
80+
}
7781

7882
return commit;
7983
}

0 commit comments

Comments
 (0)