Skip to content

Commit efe08cd

Browse files
authored
Merge branch 'master' into before-compile
2 parents 4cdd601 + d7abddb commit efe08cd

28 files changed

+207
-88
lines changed

src/GitVersionCore.Tests/Configuration/ConfigProviderTests.cs

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,5 +352,99 @@ public void ShouldUseDefaultSourceBranchesWhenNotSpecifiedForFeature()
352352
config.Branches["feature"].SourceBranches.ShouldBe(
353353
new List<string> { "develop", "master", "release", "feature", "support", "hotfix" });
354354
}
355+
356+
[Test]
357+
public void ShouldNotOverrideAnythingWhenOverrideConfigIsEmpty()
358+
{
359+
const string text = @"
360+
next-version: 1.2.3
361+
tag-prefix: custom-tag-prefix-from-yml";
362+
SetupConfigFileContent(text);
363+
364+
var expectedConfig = configProvider.Provide(repoPath, overrideConfig: null);
365+
var overridenConfig = configProvider.Provide(repoPath, overrideConfig: new Config());
366+
367+
overridenConfig.AssemblyVersioningScheme.ShouldBe(expectedConfig.AssemblyVersioningScheme);
368+
overridenConfig.AssemblyFileVersioningScheme.ShouldBe(expectedConfig.AssemblyFileVersioningScheme);
369+
overridenConfig.AssemblyInformationalFormat.ShouldBe(expectedConfig.AssemblyInformationalFormat);
370+
overridenConfig.AssemblyVersioningFormat.ShouldBe(expectedConfig.AssemblyVersioningFormat);
371+
overridenConfig.AssemblyFileVersioningFormat.ShouldBe(expectedConfig.AssemblyFileVersioningFormat);
372+
overridenConfig.VersioningMode.ShouldBe(expectedConfig.VersioningMode);
373+
overridenConfig.TagPrefix.ShouldBe(expectedConfig.TagPrefix);
374+
overridenConfig.ContinuousDeploymentFallbackTag.ShouldBe(expectedConfig.ContinuousDeploymentFallbackTag);
375+
overridenConfig.NextVersion.ShouldBe(expectedConfig.NextVersion);
376+
overridenConfig.MajorVersionBumpMessage.ShouldBe(expectedConfig.MajorVersionBumpMessage);
377+
overridenConfig.MinorVersionBumpMessage.ShouldBe(expectedConfig.MinorVersionBumpMessage);
378+
overridenConfig.PatchVersionBumpMessage.ShouldBe(expectedConfig.PatchVersionBumpMessage);
379+
overridenConfig.NoBumpMessage.ShouldBe(expectedConfig.NoBumpMessage);
380+
overridenConfig.LegacySemVerPadding.ShouldBe(expectedConfig.LegacySemVerPadding);
381+
overridenConfig.BuildMetaDataPadding.ShouldBe(expectedConfig.BuildMetaDataPadding);
382+
overridenConfig.CommitsSinceVersionSourcePadding.ShouldBe(expectedConfig.CommitsSinceVersionSourcePadding);
383+
overridenConfig.TagPreReleaseWeight.ShouldBe(expectedConfig.TagPreReleaseWeight);
384+
overridenConfig.CommitMessageIncrementing.ShouldBe(expectedConfig.CommitMessageIncrementing);
385+
overridenConfig.Increment.ShouldBe(expectedConfig.Increment);
386+
overridenConfig.CommitDateFormat.ShouldBe(expectedConfig.CommitDateFormat);
387+
overridenConfig.MergeMessageFormats.ShouldBe(expectedConfig.MergeMessageFormats);
388+
overridenConfig.UpdateBuildNumber.ShouldBe(expectedConfig.UpdateBuildNumber);
389+
390+
overridenConfig.Ignore.ShouldBeEquivalentTo(expectedConfig.Ignore);
391+
392+
overridenConfig.Branches.Keys.ShouldBe(expectedConfig.Branches.Keys);
393+
394+
foreach (var branch in overridenConfig.Branches.Keys)
395+
{
396+
overridenConfig.Branches[branch].ShouldBeEquivalentTo(expectedConfig.Branches[branch]);
397+
}
398+
}
399+
400+
[Test]
401+
public void ShouldUseDefaultTagPrefixWhenNotSetInConfigFile()
402+
{
403+
const string text = "";
404+
SetupConfigFileContent(text);
405+
var config = configProvider.Provide(repoPath);
406+
407+
config.TagPrefix.ShouldBe("[vV]");
408+
}
409+
410+
[Test]
411+
public void ShouldUseTagPrefixFromConfigFileWhenProvided()
412+
{
413+
const string text = "tag-prefix: custom-tag-prefix-from-yml";
414+
SetupConfigFileContent(text);
415+
var config = configProvider.Provide(repoPath);
416+
417+
config.TagPrefix.ShouldBe("custom-tag-prefix-from-yml");
418+
}
419+
420+
[Test]
421+
public void ShouldOverrideTagPrefixWithOverrideConfigValue([Values] bool tagPrefixSetAtYmlFile)
422+
{
423+
var text = tagPrefixSetAtYmlFile ? "tag-prefix: custom-tag-prefix-from-yml" : "";
424+
SetupConfigFileContent(text);
425+
var config = configProvider.Provide(repoPath, overrideConfig: new Config { TagPrefix = "tag-prefix-from-override-config" });
426+
427+
config.TagPrefix.ShouldBe("tag-prefix-from-override-config");
428+
}
429+
430+
[Test]
431+
public void ShouldNotOverrideDefaultTagPrefixWhenNotSetInOverrideConfig()
432+
{
433+
const string text = "";
434+
SetupConfigFileContent(text);
435+
var config = configProvider.Provide(repoPath, overrideConfig: new Config { TagPrefix = null });
436+
437+
config.TagPrefix.ShouldBe("[vV]");
438+
}
439+
440+
[Test]
441+
public void ShouldNotOverrideTagPrefixFromConfigFileWhenNotSetInOverrideConfig()
442+
{
443+
const string text = "tag-prefix: custom-tag-prefix-from-yml";
444+
SetupConfigFileContent(text);
445+
var config = configProvider.Provide(repoPath, overrideConfig: new Config { TagPrefix = null });
446+
447+
config.TagPrefix.ShouldBe("custom-tag-prefix-from-yml");
448+
}
355449
}
356450
}

src/GitVersionCore.Tests/Core/GitVersionExecutorTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
using GitVersion.BuildAgents;
88
using GitVersion.Configuration;
99
using GitVersion.Logging;
10-
using GitVersion.Model.Configuration;
1110
using GitVersion.VersionCalculation.Cache;
1211
using GitVersionCore.Tests.Helpers;
1312
using LibGit2Sharp;
@@ -225,7 +224,7 @@ public void CacheFileExistsOnDiskWhenOverrideConfigIsSpecifiedVersionShouldBeDyn
225224

226225
var cacheDirectoryTimestamp = fileSystem.GetLastDirectoryWrite(cacheDirectory);
227226

228-
var config = new Config { TagPrefix = "prefix" };
227+
var config = new TestableConfig { TagPrefix = "prefix" };
229228
config.Reset();
230229
gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, ConfigInfo = { OverrideConfig = config } };
231230

src/GitVersionCore.Tests/Extensions/GitToolsTestingExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public static VersionVariables GetVersion(this RepositoryFixtureBase fixture, Co
2121
{
2222
if (configuration == null)
2323
{
24-
configuration = new Config();
24+
configuration = new TestableConfig();
2525
configuration.Reset();
2626
}
2727

@@ -67,7 +67,7 @@ public static VersionVariables GetVersion(this RepositoryFixtureBase fixture, Co
6767

6868
public static void AssertFullSemver(this RepositoryFixtureBase fixture, string fullSemver, Config configuration = null, IRepository repository = null, string commitId = null, bool onlyTrackedBranches = true, string targetBranch = null)
6969
{
70-
configuration ??= new Config();
70+
configuration ??= new TestableConfig();
7171
configuration.Reset();
7272
Console.WriteLine("---------");
7373

src/GitVersionCore.Tests/Helpers/GitVersionContextBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ private GitVersionContextBuilder AddBranch(string branchName)
7676
public void Build()
7777
{
7878
var repo = repository ?? CreateRepository();
79-
var config = configuration ?? new Config();
79+
var config = configuration ?? new TestableConfig();
8080

8181
config.Reset();
8282

src/GitVersionCore.Tests/Helpers/TestBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ protected static IServiceProvider ConfigureServices(Action<IServiceCollection> o
2626

2727
protected static IServiceProvider BuildServiceProvider(string workingDirectory, IRepository repository, string branch, Config config = null)
2828
{
29-
config ??= new Config().ApplyDefaults();
29+
config ??= new TestableConfig().ApplyDefaults();
3030
var options = Options.Create(new GitVersionOptions
3131
{
3232
WorkingDirectory = workingDirectory,
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System;
2+
using GitVersion.Model.Configuration;
3+
4+
namespace GitVersionCore.Tests.Helpers
5+
{
6+
[Obsolete("Do not use that config because it implicitly overwrites some settings (even default values). Use Config and override required settings explicitly instead.")]
7+
public class TestableConfig : Config
8+
{
9+
public override void MergeTo(Config targetConfig)
10+
{
11+
targetConfig.Ignore = this.Ignore;
12+
13+
targetConfig.Branches.Clear();
14+
targetConfig.Branches = this.Branches;
15+
16+
targetConfig.Increment = this.Increment;
17+
targetConfig.NextVersion = this.NextVersion;
18+
targetConfig.VersioningMode = this.VersioningMode;
19+
targetConfig.AssemblyFileVersioningFormat = this.AssemblyFileVersioningFormat;
20+
targetConfig.TagPrefix = this.TagPrefix;
21+
targetConfig.TagPreReleaseWeight = this.TagPreReleaseWeight;
22+
}
23+
}
24+
}

src/GitVersionCore.Tests/IntegrationTests/DevelopScenarios.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void WhenDevelopBranchedFromTaggedCommitOnMasterVersionDoesNotChange()
5555
[Test]
5656
public void CanChangeDevelopTagViaConfig()
5757
{
58-
var config = new Config
58+
var config = new TestableConfig
5959
{
6060
Branches =
6161
{
@@ -115,7 +115,7 @@ public void MergingReleaseBranchBackIntoDevelopWithMergingToMasterDoesBumpDevelo
115115
[Test]
116116
public void CanHandleContinuousDelivery()
117117
{
118-
var config = new Config
118+
var config = new TestableConfig
119119
{
120120
Branches =
121121
{
@@ -205,7 +205,7 @@ public void TagOnHotfixShouldNotAffectDevelop()
205205
[Test]
206206
public void CommitsSinceVersionSourceShouldNotGoDownUponGitFlowReleaseFinish()
207207
{
208-
var config = new Config
208+
var config = new TestableConfig
209209
{
210210
VersioningMode = VersioningMode.ContinuousDeployment
211211
};
@@ -246,7 +246,7 @@ public void CommitsSinceVersionSourceShouldNotGoDownUponGitFlowReleaseFinish()
246246
[Test]
247247
public void CommitsSinceVersionSourceShouldNotGoDownUponMergingFeatureOnlyToDevelop()
248248
{
249-
var config = new Config
249+
var config = new TestableConfig
250250
{
251251
VersioningMode = VersioningMode.ContinuousDeployment
252252
};

src/GitVersionCore.Tests/IntegrationTests/FeatureBranchScenarios.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void ShouldInheritIncrementCorrectlyWithMultiplePossibleParentsAndWeirdly
4141
[Test]
4242
public void BranchCreatedAfterFastForwardMergeShouldInheritCorrectly()
4343
{
44-
var config = new Config
44+
var config = new TestableConfig
4545
{
4646
Branches =
4747
{
@@ -169,14 +169,14 @@ public void ShouldBePossibleToMergeDevelopForALongRunningBranchWhereDevelopAndMa
169169
Commands.Checkout(fixture.Repository, "feature/longrunning");
170170
fixture.Repository.Merge(fixture.Repository.Branches["develop"], Generate.SignatureNow());
171171

172-
var configuration = new Config { VersioningMode = VersioningMode.ContinuousDeployment };
172+
var configuration = new TestableConfig { VersioningMode = VersioningMode.ContinuousDeployment };
173173
fixture.AssertFullSemver("1.2.0-longrunning.2", configuration);
174174
}
175175

176176
[Test]
177177
public void CanUseBranchNameOffAReleaseBranch()
178178
{
179-
var config = new Config
179+
var config = new TestableConfig
180180
{
181181
Branches =
182182
{
@@ -201,7 +201,7 @@ public void CanUseBranchNameOffAReleaseBranch()
201201
[TestCase("alpha.{BranchName}", "JIRA-123", "alpha.JIRA-123")]
202202
public void ShouldUseConfiguredTag(string tag, string featureName, string preReleaseTagName)
203203
{
204-
var config = new Config
204+
var config = new TestableConfig
205205
{
206206
Branches =
207207
{
@@ -301,7 +301,7 @@ public class WhenMasterMarkedAsIsDevelop
301301
[Test]
302302
public void ShouldPickUpVersionFromMasterAfterReleaseBranchCreated()
303303
{
304-
var config = new Config
304+
var config = new TestableConfig
305305
{
306306
Branches = new Dictionary<string, BranchConfig>
307307
{
@@ -332,7 +332,7 @@ public void ShouldPickUpVersionFromMasterAfterReleaseBranchCreated()
332332
[Test]
333333
public void ShouldPickUpVersionFromMasterAfterReleaseBranchMergedBack()
334334
{
335-
var config = new Config
335+
var config = new TestableConfig
336336
{
337337
Branches = new Dictionary<string, BranchConfig>
338338
{
@@ -411,7 +411,7 @@ public class WhenMasterMarkedAsIsDevelop
411411
[Test]
412412
public void ShouldPickUpVersionFromMasterAfterReleaseBranchCreated()
413413
{
414-
var config = new Config
414+
var config = new TestableConfig
415415
{
416416
Branches = new Dictionary<string, BranchConfig>
417417
{
@@ -442,7 +442,7 @@ public void ShouldPickUpVersionFromMasterAfterReleaseBranchCreated()
442442
[Test]
443443
public void ShouldPickUpVersionFromMasterAfterReleaseBranchMergedBack()
444444
{
445-
var config = new Config
445+
var config = new TestableConfig
446446
{
447447
Branches = new Dictionary<string, BranchConfig>
448448
{
@@ -477,7 +477,7 @@ public void ShouldPickUpVersionFromMasterAfterReleaseBranchMergedBack()
477477
[Test]
478478
public void PickUpVersionFromMasterMarkedWithIsTracksReleaseBranches()
479479
{
480-
var config = new Config
480+
var config = new TestableConfig
481481
{
482482
VersioningMode = VersioningMode.ContinuousDelivery,
483483
Branches = new Dictionary<string, BranchConfig>
@@ -521,7 +521,7 @@ public void PickUpVersionFromMasterMarkedWithIsTracksReleaseBranches()
521521
[Test]
522522
public void ShouldHaveAGreaterSemVerAfterDevelopIsMergedIntoFeature()
523523
{
524-
var config = new Config
524+
var config = new TestableConfig
525525
{
526526
VersioningMode = VersioningMode.ContinuousDeployment,
527527
AssemblyVersioningScheme = AssemblyVersioningScheme.Major,

src/GitVersionCore.Tests/IntegrationTests/HotfixBranchScenarios.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using System.Linq;
22
using GitTools.Testing;
33
using GitVersion.Extensions;
4-
using GitVersion.Model.Configuration;
54
using GitVersion.VersionCalculation;
65
using GitVersionCore.Tests.Helpers;
76
using LibGit2Sharp;
@@ -128,7 +127,7 @@ public void PatchOlderReleaseExample()
128127
[Test]
129128
public void FeatureOnHotfixFeatureBranchDeleted()
130129
{
131-
var config = new Config
130+
var config = new TestableConfig
132131
{
133132
AssemblyVersioningScheme = AssemblyVersioningScheme.MajorMinorPatchTag,
134133
VersioningMode = VersioningMode.ContinuousDeployment
@@ -181,7 +180,7 @@ public void FeatureOnHotfixFeatureBranchDeleted()
181180
[Test]
182181
public void FeatureOnHotfixFeatureBranchNotDeleted()
183182
{
184-
var config = new Config
183+
var config = new TestableConfig
185184
{
186185
AssemblyVersioningScheme = AssemblyVersioningScheme.MajorMinorPatchTag,
187186
VersioningMode = VersioningMode.ContinuousDeployment

src/GitVersionCore.Tests/IntegrationTests/MainlineDevelopmentMode.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace GitVersionCore.Tests.IntegrationTests
1515
{
1616
public class MainlineDevelopmentMode : TestBase
1717
{
18-
private readonly Config config = new Config
18+
private readonly Config config = new TestableConfig
1919
{
2020
VersioningMode = VersioningMode.Mainline
2121
};
@@ -397,7 +397,7 @@ public void VerifyMergingMasterIntoAFeatureBranchWorksWithMultipleBranches()
397397
[Test]
398398
public void MergingFeatureBranchThatIncrementsMinorNumberIncrementsMinorVersionOfMaster()
399399
{
400-
var currentConfig = new Config
400+
var currentConfig = new TestableConfig
401401
{
402402
VersioningMode = VersioningMode.Mainline,
403403
Branches = new Dictionary<string, BranchConfig>
@@ -430,7 +430,7 @@ public void MergingFeatureBranchThatIncrementsMinorNumberIncrementsMinorVersionO
430430
[Test]
431431
public void VerifyIncrementConfigIsHonoured()
432432
{
433-
var minorIncrementConfig = new Config
433+
var minorIncrementConfig = new TestableConfig
434434
{
435435
VersioningMode = VersioningMode.Mainline,
436436
Increment = IncrementStrategy.Minor,

0 commit comments

Comments
 (0)