Skip to content

Commit ecc7c56

Browse files
committed
#2292 add tests for config overrides
1 parent 12a2baa commit ecc7c56

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

src/GitVersionCore.Tests/Configuration/ConfigProviderTests.cs

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,5 +352,108 @@ 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
426+
{
427+
TagPrefix = "tag-prefix-from-override-config"
428+
});
429+
430+
config.TagPrefix.ShouldBe("tag-prefix-from-override-config");
431+
}
432+
433+
[Test]
434+
public void ShouldNotOverrideDefaultTagPrefixWhenNotSetInOverrideConfig([Values(null, "", " ")] string overridenTagPrefix)
435+
{
436+
const string text = "";
437+
SetupConfigFileContent(text);
438+
var config = configProvider.Provide(repoPath, overrideConfig: new Config
439+
{
440+
TagPrefix = overridenTagPrefix
441+
});
442+
443+
config.TagPrefix.ShouldBe("[vV]");
444+
}
445+
446+
[Test]
447+
public void ShouldNotOverrideTagPrefixFromConfigFileWhenNotSetInOverrideConfig([Values(null, "", " ")] string overridenTagPrefix)
448+
{
449+
const string text = "tag-prefix: custom-tag-prefix-from-yml";
450+
SetupConfigFileContent(text);
451+
var config = configProvider.Provide(repoPath, overrideConfig: new Config
452+
{
453+
TagPrefix = overridenTagPrefix
454+
});
455+
456+
config.TagPrefix.ShouldBe("custom-tag-prefix-from-yml");
457+
}
355458
}
356459
}

0 commit comments

Comments
 (0)