Skip to content

Commit 57ecfd1

Browse files
committed
injected IGitVersionContextFactory into VersionStrategyBase
1 parent 0f7b723 commit 57ecfd1

13 files changed

+42
-40
lines changed

src/GitVersionCore.Tests/VersionCalculation/BaseVersionCalculatorTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public V1Strategy(DateTimeOffset? when)
182182
this.when = when == null ? null : new MockCommit { CommitterEx = Generate.Signature(when.Value) };
183183
}
184184

185-
public IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
185+
public IEnumerable<BaseVersion> GetVersions()
186186
{
187187
yield return new BaseVersion("Source 1", false, new SemanticVersion(1), when, null);
188188
}
@@ -197,7 +197,7 @@ public V2Strategy(DateTimeOffset? when)
197197
this.when = when == null ? null : new MockCommit { CommitterEx = Generate.Signature(when.Value) };
198198
}
199199

200-
public IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
200+
public IEnumerable<BaseVersion> GetVersions()
201201
{
202202
yield return new BaseVersion("Source 2", true, new SemanticVersion(2), when, null);
203203
}
@@ -212,7 +212,7 @@ public TestVersionStrategy(params BaseVersion[] versions)
212212
this.versions = versions;
213213
}
214214

215-
public IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
215+
public IEnumerable<BaseVersion> GetVersions()
216216
{
217217
return versions;
218218
}

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,11 @@ private static BaseVersion GetBaseVersion(Config config = null)
4444
contextBuilder = contextBuilder.WithConfig(config);
4545
}
4646

47-
var gitVersionContext = contextBuilder.Build();
48-
47+
contextBuilder.Build();
4948
var contextFactory = contextBuilder.ServicesProvider.GetService<IGitVersionContextFactory>();
5049
var strategy = new ConfigNextVersionVersionStrategy(contextFactory);
5150

52-
return strategy.GetVersions(gitVersionContext).SingleOrDefault();
51+
return strategy.GetVersions().SingleOrDefault();
5352
}
5453
}
5554
}

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,12 @@ public void ShouldNotAllowIncrementOfVersion()
2929
ParentsEx = GetParents(true)
3030
} }
3131
});
32-
var context = contextBuilder.Build();
33-
32+
contextBuilder.Build();
3433
var log = contextBuilder.ServicesProvider.GetService<ILog>();
3534
var contextFactory = contextBuilder.ServicesProvider.GetService<IGitVersionContextFactory>();
3635
var strategy = new MergeMessageVersionStrategy(log, contextFactory);
3736

38-
var baseVersion = strategy.GetVersions(context).Single();
37+
var baseVersion = strategy.GetVersions().Single();
3938

4039
baseVersion.ShouldIncrement.ShouldBe(false);
4140
}
@@ -169,13 +168,12 @@ private void AssertMergeMessage(string message, string expectedVersion, IList<Co
169168
new MockCommit()
170169
}
171170
});
172-
var context = contextBuilder.Build();
173-
171+
contextBuilder.Build();
174172
var log = contextBuilder.ServicesProvider.GetService<ILog>();
175173
var contextFactory = contextBuilder.ServicesProvider.GetService<IGitVersionContextFactory>();
176174
var strategy = new MergeMessageVersionStrategy(log, contextFactory);
177175

178-
var baseVersion = strategy.GetVersions(context).SingleOrDefault();
176+
var baseVersion = strategy.GetVersions().SingleOrDefault();
179177

180178
if (expectedVersion == null)
181179
{

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

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ public void CanTakeVersionFromNameOfReleaseBranch(string branchName, string expe
2929

3030
var gitVersionContextFactory = GetGitVersionContextFactory();
3131
gitVersionContextFactory.Init(fixture.Repository, branch);
32-
var context = gitVersionContextFactory.Context;
33-
var baseVersion = strategy.GetVersions(context).Single();
32+
var baseVersion = strategy.GetVersions().Single();
3433

3534
baseVersion.SemanticVersion.ToString().ShouldBe(expectedBaseVersion);
3635
}
@@ -47,8 +46,7 @@ public void ShouldNotTakeVersionFromNameOfNonReleaseBranch(string branchName)
4746

4847
var gitVersionContextFactory = GetGitVersionContextFactory();
4948
gitVersionContextFactory.Init(fixture.Repository, branch);
50-
var context = gitVersionContextFactory.Context;
51-
var baseVersions = strategy.GetVersions(context);
49+
var baseVersions = strategy.GetVersions();
5250

5351
baseVersions.ShouldBeEmpty();
5452
}
@@ -67,8 +65,7 @@ public void CanTakeVersionFromNameOfConfiguredReleaseBranch(string branchName, s
6765
var gitVersionContextFactory = GetGitVersionContextFactory(config);
6866

6967
gitVersionContextFactory.Init(fixture.Repository, branch);
70-
var context = gitVersionContextFactory.Context;
71-
var baseVersion = strategy.GetVersions(context).Single();
68+
var baseVersion = strategy.GetVersions().Single();
7269

7370
baseVersion.SemanticVersion.ToString().ShouldBe(expectedBaseVersion);
7471
}
@@ -87,8 +84,7 @@ public void CanTakeVersionFromNameOfRemoteReleaseBranch(string branchName, strin
8784

8885
var gitVersionContextFactory = GetGitVersionContextFactory();
8986
gitVersionContextFactory.Init(fixture.Repository, branch);
90-
var context = gitVersionContextFactory.Context;
91-
var baseVersion = strategy.GetVersions(context).Single();
87+
var baseVersion = strategy.GetVersions().Single();
9288

9389
baseVersion.SemanticVersion.ToString().ShouldBe(expectedBaseVersion);
9490
}

src/GitVersionCore/VersionCalculation/BaseVersionCalculator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ public BaseVersionCalculator(ILog log, IGitVersionContextFactory gitVersionConte
2222
public BaseVersion GetBaseVersion()
2323
{
2424
var context = gitVersionContextFactory.Context;
25+
2526
using (log.IndentLog("Calculating base versions"))
2627
{
2728
var baseVersions = strategies
28-
.SelectMany(s => s.GetVersions(context))
29+
.SelectMany(s => s.GetVersions())
2930
.Where(v =>
3031
{
3132
if (v == null) return false;

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/ConfigNextVersionVersionStrategy.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ public ConfigNextVersionVersionStrategy(IGitVersionContextFactory gitVersionCont
1313
{
1414
}
1515

16-
public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
16+
public override IEnumerable<BaseVersion> GetVersions()
1717
{
18+
var context = ContextFactory.Context;
1819
if (string.IsNullOrEmpty(context.Configuration.NextVersion) || context.IsCurrentCommitTagged)
1920
yield break;
2021
var semanticVersion = SemanticVersion.Parse(context.Configuration.NextVersion, context.Configuration.GitTagPrefix);

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/FallbackVersionStrategy.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ public class FallbackVersionStrategy : VersionStrategyBase
1414
public FallbackVersionStrategy(IGitVersionContextFactory gitVersionContextFactory) : base(gitVersionContextFactory)
1515
{
1616
}
17-
public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
17+
public override IEnumerable<BaseVersion> GetVersions()
1818
{
19+
var context = ContextFactory.Context;
1920
Commit baseVersionSource;
2021
var currentBranchTip = context.CurrentBranch.Tip;
2122

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/MergeMessageVersionStrategy.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ public MergeMessageVersionStrategy(ILog log, IGitVersionContextFactory gitVersio
2323
this.log = log ?? throw new ArgumentNullException(nameof(log));
2424
}
2525

26-
public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
26+
public override IEnumerable<BaseVersion> GetVersions()
2727
{
28+
var context = ContextFactory.Context;
2829
var commitsPriorToThan = context.CurrentBranch
2930
.CommitsPriorToThan(context.CurrentCommit.When());
3031
var baseVersions = commitsPriorToThan

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@ public TaggedCommitVersionStrategy(IGitRepoMetadataProvider gitRepoMetadataProvi
2121
this.gitRepoMetadataProvider = gitRepoMetadataProvider ?? throw new ArgumentNullException(nameof(gitRepoMetadataProvider));
2222
}
2323

24-
public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
24+
public override IEnumerable<BaseVersion> GetVersions()
2525
{
26-
return GetTaggedVersions(context, context.CurrentBranch, context.CurrentCommit.When());
26+
var context = ContextFactory.Context;
27+
return GetTaggedVersions(context.CurrentBranch, context.CurrentCommit.When());
2728
}
2829

29-
public IEnumerable<BaseVersion> GetTaggedVersions(GitVersionContext context, Branch currentBranch, DateTimeOffset? olderThan)
30+
internal IEnumerable<BaseVersion> GetTaggedVersions(Branch currentBranch, DateTimeOffset? olderThan)
3031
{
32+
var context = ContextFactory.Context;
3133
var allTags = gitRepoMetadataProvider.GetValidVersionTags(context.Configuration.GitTagPrefix, olderThan);
3234

3335
var tagsOnBranch = currentBranch

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TrackReleaseBranchesVersionStrategy.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ public TrackReleaseBranchesVersionStrategy(IGitRepoMetadataProvider gitRepoMetad
3838
taggedCommitVersionStrategy = new TaggedCommitVersionStrategy(gitRepoMetadataProvider, gitVersionContextFactory);
3939
}
4040

41-
public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
41+
public override IEnumerable<BaseVersion> GetVersions()
4242
{
43+
var context = ContextFactory.Context;
4344
if (context.Configuration.TracksReleaseBranches)
4445
{
4546
return ReleaseBranchBaseVersions(context).Union(MasterTagsVersions(context));
@@ -53,7 +54,7 @@ private IEnumerable<BaseVersion> MasterTagsVersions(GitVersionContext context)
5354
var master = context.Repository.FindBranch("master");
5455
if (master != null)
5556
{
56-
return taggedCommitVersionStrategy.GetTaggedVersions(context, master, null);
57+
return taggedCommitVersionStrategy.GetTaggedVersions(master, null);
5758
}
5859

5960
return new BaseVersion[0];
@@ -100,7 +101,7 @@ private IEnumerable<BaseVersion> GetReleaseVersion(GitVersionContext context, Br
100101
}
101102

102103
return releaseVersionStrategy
103-
.GetVersions(context, tagPrefixRegex, releaseBranch)
104+
.GetVersions(tagPrefixRegex, releaseBranch)
104105
.Select(b => new BaseVersion(b.Source, true, b.SemanticVersion, baseSource, b.BranchNameOverride));
105106
}
106107
}

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/VersionInBranchNameVersionStrategy.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,17 @@ public VersionInBranchNameVersionStrategy(IGitRepoMetadataProvider gitRepoMetada
2121
this.gitRepoMetadataProvider = gitRepoMetadataProvider ?? throw new ArgumentNullException(nameof(gitRepoMetadataProvider));
2222
}
2323

24-
public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
24+
public override IEnumerable<BaseVersion> GetVersions()
2525
{
26+
var context = ContextFactory.Context;
2627
var currentBranch = context.CurrentBranch;
2728
var tagPrefixRegex = context.Configuration.GitTagPrefix;
28-
return GetVersions(context, tagPrefixRegex, currentBranch);
29+
return GetVersions(tagPrefixRegex, currentBranch);
2930
}
3031

31-
public IEnumerable<BaseVersion> GetVersions(GitVersionContext context, string tagPrefixRegex, Branch currentBranch)
32+
internal IEnumerable<BaseVersion> GetVersions(string tagPrefixRegex, Branch currentBranch)
3233
{
34+
var context = ContextFactory.Context;
3335
if (!context.FullConfiguration.IsReleaseBranch(currentBranch.NameWithoutOrigin()))
3436
{
3537
yield break;

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/VersionStrategyBase.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@ public class VersionStrategyBase : IVersionStrategy
99

1010
public VersionStrategyBase(IGitVersionContextFactory gitVersionContextFactory)
1111
{
12-
this.ContextFactory = gitVersionContextFactory ?? throw new ArgumentNullException(nameof(gitVersionContextFactory));
12+
ContextFactory = gitVersionContextFactory ?? throw new ArgumentNullException(nameof(gitVersionContextFactory));
13+
}
14+
public virtual IEnumerable<BaseVersion> GetVersions()
15+
{
16+
throw new NotImplementedException();
1317
}
14-
public virtual IEnumerable<BaseVersion> GetVersions(GitVersionContext context) => throw new NotImplementedException();
1518
}
1619
}

src/GitVersionCore/VersionCalculation/IVersionStrategy.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@ namespace GitVersion.VersionCalculation
55
public interface IVersionStrategy
66
{
77
/// <summary>
8-
/// Calculates the <see cref="T:GitVersion.VersionCalculation.BaseVersionCalculators.BaseVersion" /> values for the given <paramref name="context" />.
8+
/// Calculates the <see cref="T:GitVersion.VersionCalculation.BaseVersionCalculators.BaseVersion" /> values.
99
/// </summary>
10-
/// <param name="context">
11-
/// The context for calculating the <see cref="T:GitVersion.VersionCalculation.BaseVersionCalculators.BaseVersion" />.
12-
/// </param>
1310
/// <returns>
1411
/// An <see cref="T:System.Collections.Generic.IEnumerable`1" /> of the base version values found by the strategy.
1512
/// </returns>
16-
IEnumerable<BaseVersion> GetVersions(GitVersionContext context);
13+
IEnumerable<BaseVersion> GetVersions();
1714
}
1815
}

0 commit comments

Comments
 (0)