Skip to content

Commit a596c38

Browse files
committed
replaced MockCommit with Substitute.For
1 parent cb0b9e0 commit a596c38

File tree

9 files changed

+68
-92
lines changed

9 files changed

+68
-92
lines changed

src/GitVersionCore.Tests/Extensions/GitToolsTestingExtensions.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,22 @@ namespace GitVersionCore.Tests
2121
{
2222
public static class GitToolsTestingExtensions
2323
{
24+
private static int commitCount = 1;
25+
private static DateTimeOffset when = DateTimeOffset.Now;
26+
27+
public static ICommit CreateMockCommit()
28+
{
29+
var objectId = Substitute.For<IObjectId>();
30+
objectId.Sha.Returns(Guid.NewGuid().ToString().Replace("-", "") + "00000000");
31+
32+
var commit = Substitute.For<ICommit>();
33+
commit.Id.Returns(objectId);
34+
commit.Sha.Returns(objectId.Sha);
35+
commit.Message.Returns("Commit " + commitCount++);
36+
commit.Parents.Returns(Enumerable.Empty<ICommit>());
37+
commit.CommitterWhen.Returns(when.AddSeconds(1));
38+
return commit;
39+
}
2440
public static IBranch CreateMockBranch(string name, params ICommit[] commits)
2541
{
2642
var branch = Substitute.For<IBranch>();

src/GitVersionCore.Tests/Helpers/GitVersionContextBuilder.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ private GitVersionContextBuilder WithBranch(string branchName)
5252

5353
private GitVersionContextBuilder AddBranch(string branchName)
5454
{
55-
var mockBranch = GitToolsTestingExtensions.CreateMockBranch(branchName, new MockCommit());
55+
var mockCommit = GitToolsTestingExtensions.CreateMockCommit();
56+
var mockBranch = GitToolsTestingExtensions.CreateMockBranch(branchName, mockCommit);
5657

5758
var branches = repository.Branches.ToList();
5859
branches.Add(mockBranch);
@@ -86,7 +87,7 @@ public void Build()
8687

8788
private static IGitRepository CreateRepository()
8889
{
89-
var mockCommit = new MockCommit { CommitterEx = Generate.SignatureNow() };
90+
var mockCommit = GitToolsTestingExtensions.CreateMockCommit();
9091
var mockBranch = GitToolsTestingExtensions.CreateMockBranch("master", mockCommit);
9192
var branches = Substitute.For<IBranchCollection>();
9293
branches.GetEnumerator().Returns(_ => ((IEnumerable<IBranch>)new[] { mockBranch }).GetEnumerator());

src/GitVersionCore.Tests/Mocks/MockCommit.cs

Lines changed: 0 additions & 52 deletions
This file was deleted.

src/GitVersionCore.Tests/Model/GitVersionContextTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void CanInheritVersioningMode(VersioningMode mode)
3030

3131
const string branchName = "master";
3232

33-
var mockCommit = new MockCommit { CommitterEx = Generate.SignatureNow() };
33+
var mockCommit = GitToolsTestingExtensions.CreateMockCommit();
3434
var mockBranch = GitToolsTestingExtensions.CreateMockBranch(branchName, mockCommit);
3535

3636
var branches = Substitute.For<IBranchCollection>();
@@ -94,8 +94,8 @@ public void UsesBranchSpecificConfigOverTopLevelDefaults()
9494
})
9595
.Build();
9696

97-
var master = GitToolsTestingExtensions.CreateMockBranch("master", new MockCommit { CommitterEx = Generate.SignatureNow() });
98-
var develop = GitToolsTestingExtensions.CreateMockBranch(branchName, new MockCommit { CommitterEx = Generate.SignatureNow() });
97+
var master = GitToolsTestingExtensions.CreateMockBranch("master", GitToolsTestingExtensions.CreateMockCommit());
98+
var develop = GitToolsTestingExtensions.CreateMockBranch(branchName, GitToolsTestingExtensions.CreateMockCommit());
9999

100100
var branches = Substitute.For<IBranchCollection>();
101101
branches.GetEnumerator().Returns(_ => ((IEnumerable<IBranch>)new[] { master, develop }).GetEnumerator());
@@ -138,8 +138,8 @@ public void UsesFirstBranchConfigWhenMultipleMatch()
138138
})
139139
.Build();
140140

141-
var releaseLatestBranch = GitToolsTestingExtensions.CreateMockBranch("release/latest", new MockCommit { CommitterEx = Generate.SignatureNow() });
142-
var releaseVersionBranch = GitToolsTestingExtensions.CreateMockBranch("release/1.0.0", new MockCommit { CommitterEx = Generate.SignatureNow() });
141+
var releaseLatestBranch = GitToolsTestingExtensions.CreateMockBranch("release/latest", GitToolsTestingExtensions.CreateMockCommit());
142+
var releaseVersionBranch = GitToolsTestingExtensions.CreateMockBranch("release/1.0.0", GitToolsTestingExtensions.CreateMockCommit());
143143

144144
var branches = Substitute.For<IBranchCollection>();
145145
branches.GetEnumerator().Returns(_ => ((IEnumerable<IBranch>)new[] { releaseLatestBranch, releaseVersionBranch }).GetEnumerator());

src/GitVersionCore.Tests/VersionCalculation/BaseVersionCalculatorTests.cs

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
using System;
22
using System.Collections.Generic;
3-
using GitTools.Testing;
43
using GitVersion;
54
using GitVersion.Model.Configuration;
65
using GitVersion.VersionCalculation;
76
using GitVersionCore.Tests.Helpers;
8-
using GitVersionCore.Tests.Mocks;
97
using Microsoft.Extensions.DependencyInjection;
108
using Microsoft.Extensions.DependencyInjection.Extensions;
9+
using NSubstitute;
1110
using NUnit.Framework;
1211
using Shouldly;
1312

@@ -85,7 +84,7 @@ public void UsesWhenFromNextBestMatchIfHighestDoesntHaveWhenReversedOrder()
8584
public void ShouldNotFilterVersion()
8685
{
8786
var fakeIgnoreConfig = new TestIgnoreConfig(new ExcludeSourcesContainingExclude());
88-
var version = new BaseVersion("dummy", false, new SemanticVersion(2), new MockCommit(), null);
87+
var version = new BaseVersion("dummy", false, new SemanticVersion(2), GitToolsTestingExtensions.CreateMockCommit(), null);
8988

9089
var versionCalculator = GetBaseVersionCalculator(contextBuilder =>
9190
{
@@ -110,8 +109,8 @@ public void ShouldFilterVersion()
110109
{
111110
var fakeIgnoreConfig = new TestIgnoreConfig(new ExcludeSourcesContainingExclude());
112111

113-
var higherVersion = new BaseVersion("exclude", false, new SemanticVersion(2), new MockCommit(), null);
114-
var lowerVersion = new BaseVersion("dummy", false, new SemanticVersion(1), new MockCommit(), null);
112+
var higherVersion = new BaseVersion("exclude", false, new SemanticVersion(2), GitToolsTestingExtensions.CreateMockCommit(), null);
113+
var lowerVersion = new BaseVersion("dummy", false, new SemanticVersion(1), GitToolsTestingExtensions.CreateMockCommit(), null);
115114

116115
var versionCalculator = GetBaseVersionCalculator(contextBuilder =>
117116
{
@@ -136,7 +135,7 @@ public void ShouldIgnorePreReleaseVersionInMainlineMode()
136135
{
137136
var fakeIgnoreConfig = new TestIgnoreConfig(new ExcludeSourcesContainingExclude());
138137

139-
var lowerVersion = new BaseVersion("dummy", false, new SemanticVersion(1), new MockCommit(), null);
138+
var lowerVersion = new BaseVersion("dummy", false, new SemanticVersion(1), GitToolsTestingExtensions.CreateMockCommit(), null);
140139
var preReleaseVersion = new BaseVersion(
141140
"prerelease",
142141
false,
@@ -148,7 +147,7 @@ public void ShouldIgnorePreReleaseVersionInMainlineMode()
148147
Number = 1
149148
}
150149
},
151-
new MockCommit(),
150+
GitToolsTestingExtensions.CreateMockCommit(),
152151
null
153152
);
154153

@@ -218,7 +217,15 @@ private sealed class V1Strategy : IVersionStrategy
218217

219218
public V1Strategy(DateTimeOffset? when)
220219
{
221-
this.when = when == null ? null : new MockCommit { CommitterEx = Generate.Signature(when.Value) };
220+
if (when != null)
221+
{
222+
this.when = GitToolsTestingExtensions.CreateMockCommit();
223+
this.when.CommitterWhen.Returns(when.Value);
224+
}
225+
else
226+
{
227+
this.when = null;
228+
}
222229
}
223230

224231
public IEnumerable<BaseVersion> GetVersions()
@@ -233,7 +240,15 @@ private sealed class V2Strategy : IVersionStrategy
233240

234241
public V2Strategy(DateTimeOffset? when)
235242
{
236-
this.when = when == null ? null : new MockCommit { CommitterEx = Generate.Signature(when.Value) };
243+
if (when != null)
244+
{
245+
this.when = GitToolsTestingExtensions.CreateMockCommit();
246+
this.when.CommitterWhen.Returns(when.Value);
247+
}
248+
else
249+
{
250+
this.when = null;
251+
}
237252
}
238253

239254
public IEnumerable<BaseVersion> GetVersions()

src/GitVersionCore.Tests/VersionCalculation/MinDateVersionFilterTests.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using GitVersion;
33
using GitVersion.VersionCalculation;
44
using GitVersionCore.Tests.Helpers;
5-
using GitVersionCore.Tests.Mocks;
65
using NUnit.Framework;
76
using Shouldly;
87

@@ -23,7 +22,7 @@ public void VerifyNullGuard()
2322
[Test]
2423
public void WhenCommitShouldExcludeWithReason()
2524
{
26-
var commit = new MockCommit(); //when = UtcNow
25+
var commit = GitToolsTestingExtensions.CreateMockCommit();
2726
var version = new BaseVersion("dummy", false, new SemanticVersion(1), commit, string.Empty);
2827
var futureDate = DateTimeOffset.UtcNow.AddYears(1);
2928
var sut = new MinDateVersionFilter(futureDate);
@@ -35,7 +34,7 @@ public void WhenCommitShouldExcludeWithReason()
3534
[Test]
3635
public void WhenShaMismatchShouldNotExclude()
3736
{
38-
var commit = new MockCommit(); //when = UtcNow
37+
var commit = GitToolsTestingExtensions.CreateMockCommit();
3938
var version = new BaseVersion("dummy", false, new SemanticVersion(1), commit, string.Empty);
4039
var pastDate = DateTimeOffset.UtcNow.AddYears(-1);
4140
var sut = new MinDateVersionFilter(pastDate);

src/GitVersionCore.Tests/VersionCalculation/NextVersionCalculatorTests.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using GitVersion.VersionCalculation;
77
using GitVersionCore.Tests.Helpers;
88
using GitVersionCore.Tests.IntegrationTests;
9-
using GitVersionCore.Tests.Mocks;
109
using LibGit2Sharp;
1110
using Microsoft.Extensions.DependencyInjection;
1211
using NUnit.Framework;
@@ -26,7 +25,8 @@ public void ShouldIncrementVersionBasedOnConfig()
2625
contextBuilder
2726
.OverrideServices(services =>
2827
{
29-
services.AddSingleton<IBaseVersionCalculator>(new TestBaseVersionCalculator(true, new SemanticVersion(1), new MockCommit()));
28+
var testBaseVersionCalculator = new TestBaseVersionCalculator(true, new SemanticVersion(1), GitToolsTestingExtensions.CreateMockCommit());
29+
services.AddSingleton<IBaseVersionCalculator>(testBaseVersionCalculator);
3030
services.AddSingleton<IMainlineVersionCalculator>(new TestMainlineVersionCalculator(semanticVersionBuildMetaData));
3131
})
3232
.WithConfig(new Config())
@@ -50,7 +50,8 @@ public void DoesNotIncrementWhenBaseVersionSaysNotTo()
5050
contextBuilder
5151
.OverrideServices(services =>
5252
{
53-
services.AddSingleton<IBaseVersionCalculator>(new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit()));
53+
var testBaseVersionCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), GitToolsTestingExtensions.CreateMockCommit());
54+
services.AddSingleton<IBaseVersionCalculator>(testBaseVersionCalculator);
5455
services.AddSingleton<IMainlineVersionCalculator>(new TestMainlineVersionCalculator(semanticVersionBuildMetaData));
5556
})
5657
.WithConfig(new Config())
@@ -74,7 +75,8 @@ public void AppliesBranchPreReleaseTag()
7475
contextBuilder
7576
.OverrideServices(services =>
7677
{
77-
services.AddSingleton<IBaseVersionCalculator>(new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit()));
78+
var testBaseVersionCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), GitToolsTestingExtensions.CreateMockCommit());
79+
services.AddSingleton<IBaseVersionCalculator>(testBaseVersionCalculator);
7880
services.AddSingleton<IMainlineVersionCalculator>(new TestMainlineVersionCalculator(semanticVersionBuildMetaData));
7981
})
8082
.WithDevelopBranch()

src/GitVersionCore.Tests/VersionCalculation/ShaVersionFilterTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using GitVersion;
33
using GitVersion.VersionCalculation;
44
using GitVersionCore.Tests.Helpers;
5-
using GitVersionCore.Tests.Mocks;
65
using NUnit.Framework;
76
using Shouldly;
87

@@ -20,7 +19,7 @@ public void VerifyNullGuard()
2019
[Test]
2120
public void VerifyNullGuard2()
2221
{
23-
var commit = new MockCommit();
22+
var commit = GitToolsTestingExtensions.CreateMockCommit();
2423
var sut = new ShaVersionFilter(new[] { commit.Sha });
2524

2625
Should.Throw<ArgumentNullException>(() => sut.Exclude(null, out _));
@@ -29,7 +28,7 @@ public void VerifyNullGuard2()
2928
[Test]
3029
public void WhenShaMatchShouldExcludeWithReason()
3130
{
32-
var commit = new MockCommit();
31+
var commit = GitToolsTestingExtensions.CreateMockCommit();
3332
var version = new BaseVersion("dummy", false, new SemanticVersion(1), commit, string.Empty);
3433
var sut = new ShaVersionFilter(new[] { commit.Sha });
3534

@@ -40,7 +39,7 @@ public void WhenShaMatchShouldExcludeWithReason()
4039
[Test]
4140
public void WhenShaMismatchShouldNotExclude()
4241
{
43-
var commit = new MockCommit();
42+
var commit = GitToolsTestingExtensions.CreateMockCommit();
4443
var version = new BaseVersion("dummy", false, new SemanticVersion(1), commit, string.Empty);
4544
var sut = new ShaVersionFilter(new[] { "mismatched" });
4645

src/GitVersionCore.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@ public void ShouldNotAllowIncrementOfVersion()
2020
{
2121
// When a branch is merged in you want to start building stable packages of that version
2222
// So we shouldn't bump the version
23-
var mockCommit = new MockCommit
24-
{
25-
MessageEx = "Merge branch 'release-0.1.5'",
26-
ParentsEx = GetParents(true)
27-
};
28-
// var mockBranch = new MockBranch("master"); mockBranch.Add(mockCommit);
23+
var mockCommit = GitToolsTestingExtensions.CreateMockCommit();
24+
mockCommit.Message.Returns("Merge branch 'release-0.1.5'");
25+
mockCommit.Parents.Returns(GetParents(true));
26+
2927
var mockBranch = GitToolsTestingExtensions.CreateMockBranch("master", mockCommit);
3028
var branches = Substitute.For<IBranchCollection>();
3129
branches.GetEnumerator().Returns(_ => ((IEnumerable<IBranch>)new[] { mockBranch }).GetEnumerator());
@@ -157,15 +155,13 @@ public void TakesVersionFromMergeOfConfiguredReleaseBranch(string message, strin
157155
AssertMergeMessage(message, expectedVersion, parents, config);
158156
}
159157

160-
private void AssertMergeMessage(string message, string expectedVersion, IList<ICommit> parents, Config config = null)
158+
private static void AssertMergeMessage(string message, string expectedVersion, IEnumerable<ICommit> parents, Config config = null)
161159
{
162-
var commit = new MockCommit
163-
{
164-
MessageEx = message,
165-
ParentsEx = parents
166-
};
160+
var commit = GitToolsTestingExtensions.CreateMockCommit();
161+
commit.Message.Returns(message);
162+
commit.Parents.Returns(parents);
167163

168-
var mockBranch = GitToolsTestingExtensions.CreateMockBranch("master", commit, new MockCommit());
164+
var mockBranch = GitToolsTestingExtensions.CreateMockBranch("master", commit, GitToolsTestingExtensions.CreateMockCommit());
169165

170166
var contextBuilder = new GitVersionContextBuilder()
171167
.WithConfig(config ?? new Config())

0 commit comments

Comments
 (0)