Skip to content

Commit 637c91c

Browse files
committed
Merge pull request #302 from JakeGinnivan/ConfigFileUpdates
Config file updates
2 parents cdca529 + 9264a60 commit 637c91c

File tree

77 files changed

+657
-304
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+657
-304
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System.IO;
2+
using GitVersion;
3+
using NUnit.Framework;
4+
using Shouldly;
5+
6+
[TestFixture]
7+
public class ConfigReaderTests
8+
{
9+
10+
[Test]
11+
public void CanReadDocument()
12+
{
13+
const string text = @"
14+
assemblyVersioningScheme: MajorMinor
15+
develop-branch-tag: alpha
16+
release-branch-tag: rc
17+
";
18+
var config = ConfigReader.Read(new StringReader(text));
19+
config.AssemblyVersioningScheme.ShouldBe(AssemblyVersioningScheme.MajorMinor);
20+
config.DevelopBranchTag.ShouldBe("alpha");
21+
config.ReleaseBranchTag.ShouldBe("rc");
22+
}
23+
24+
[Test]
25+
public void CanReadDefaultDocument()
26+
{
27+
const string text = "";
28+
var config = ConfigReader.Read(new StringReader(text));
29+
config.AssemblyVersioningScheme.ShouldBe(AssemblyVersioningScheme.MajorMinorPatch);
30+
config.DevelopBranchTag.ShouldBe("unstable");
31+
config.ReleaseBranchTag.ShouldBe("beta");
32+
}
33+
}

GitVersionCore.Tests/GitFlow/BaseGitFlowRepositoryFixture.cs renamed to GitVersionCore.Tests/Fixtures/BaseGitFlowRepositoryFixture.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
using System;
22
using System.IO;
3+
using GitVersion;
34
using LibGit2Sharp;
45

56
public class BaseGitFlowRepositoryFixture : EmptyRepositoryFixture
67
{
7-
public BaseGitFlowRepositoryFixture(string initialVersion)
8+
public BaseGitFlowRepositoryFixture(string initialVersion) : base(new Config())
89
{
910
SetupRepo(r => r.MakeATaggedCommit(initialVersion));
1011
}
1112

12-
public BaseGitFlowRepositoryFixture(Action<IRepository> initialMasterAction)
13+
public BaseGitFlowRepositoryFixture(Action<IRepository> initialMasterAction) : base(new Config())
1314
{
1415
SetupRepo(initialMasterAction);
1516
}

GitVersionCore.Tests/CommitCountingRepoFixture.cs renamed to GitVersionCore.Tests/Fixtures/CommitCountingRepoFixture.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
using System;
22
using System.IO;
3+
using GitVersion;
34
using LibGit2Sharp;
45

56
public class CommitCountingRepoFixture : RepositoryFixtureBase
67
{
78
public CommitCountingRepoFixture() :
8-
base(CloneTestRepo)
9+
base(CloneTestRepo, new Config())
910
{
1011
}
1112

GitVersionCore.Tests/EmptyRepositoryFixture.cs renamed to GitVersionCore.Tests/Fixtures/EmptyRepositoryFixture.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
using System;
2+
using GitVersion;
23
using LibGit2Sharp;
34

45
public class EmptyRepositoryFixture : RepositoryFixtureBase
56
{
6-
public EmptyRepositoryFixture() :
7-
base(CreateNewRepository)
7+
public EmptyRepositoryFixture(Config configuration) :
8+
base(CreateNewRepository, configuration)
89
{
910
}
1011

GitVersionCore.Tests/RepositoryFixtureBase.cs renamed to GitVersionCore.Tests/Fixtures/RepositoryFixtureBase.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ public abstract class RepositoryFixtureBase : IDisposable
77
{
88
public string RepositoryPath;
99
public IRepository Repository;
10+
private Config configuration;
1011

11-
protected RepositoryFixtureBase(Func<string, IRepository> repoBuilder)
12+
protected RepositoryFixtureBase(Func<string, IRepository> repoBuilder, Config configuration)
1213
{
14+
this.configuration = configuration;
1315
RepositoryPath = PathHelper.GetTempPath();
1416
Repository = repoBuilder(RepositoryPath);
1517
Repository.Config.Set("user.name", "Test");
@@ -19,7 +21,7 @@ protected RepositoryFixtureBase(Func<string, IRepository> repoBuilder)
1921
public SemanticVersion ExecuteGitVersion()
2022
{
2123
var vf = new GitVersionFinder();
22-
return vf.FindVersion(new GitVersionContext(Repository));
24+
return vf.FindVersion(new GitVersionContext(Repository, configuration));
2325
}
2426

2527
public void AssertFullSemver(string fullSemver)

GitVersionCore.Tests/GitFlow/DevelopScenarios.cs

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

GitVersionCore.Tests/GitVersionCore.Tests.csproj

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -65,27 +65,29 @@
6565
<Compile Include="..\GitVersionTask.Tests\Helpers\DirectoryHelper.cs">
6666
<Link>Helpers\DirectoryHelper.cs</Link>
6767
</Compile>
68-
<Compile Include="CommitCountingRepoFixture.cs" />
68+
<Compile Include="Fixtures\CommitCountingRepoFixture.cs" />
69+
<Compile Include="ConfigReaderTests.cs" />
6970
<Compile Include="GitDirFinderTests.cs" />
70-
<Compile Include="GitFlow\BaseGitFlowRepositoryFixture.cs" />
71-
<Compile Include="GitFlow\DevelopScenarios.cs" />
72-
<Compile Include="GitFlow\MetaDataByCommitFixture.cs" />
73-
<Compile Include="GitFlow\PatchScenarios.cs" />
74-
<Compile Include="GitFlow\WikiScenarios.cs" />
75-
<Compile Include="GitHubFlow\OtherBranchTests.cs" />
76-
<Compile Include="GitHubFlow\ReleaseBranchTests.cs" />
71+
<Compile Include="Fixtures\BaseGitFlowRepositoryFixture.cs" />
72+
<Compile Include="IntegrationTests\GitFlow\DevelopScenarios.cs" />
73+
<Compile Include="IntegrationTests\GitFlow\MetaDataByCommitScenarios.cs" />
74+
<Compile Include="IntegrationTests\GitFlow\PatchScenarios.cs" />
75+
<Compile Include="IntegrationTests\GitFlow\ReleaseBranchTests.cs" />
76+
<Compile Include="IntegrationTests\GitFlow\WikiScenarios.cs" />
77+
<Compile Include="IntegrationTests\GitHubFlow\OtherBranchTests.cs" />
78+
<Compile Include="IntegrationTests\GitHubFlow\ReleaseBranchTests.cs" />
7779
<Compile Include="Helpers\Constants.cs" />
7880
<Compile Include="Helpers\NextVersionWriter.cs" />
7981
<Compile Include="InformationalVersionBuilderTests.cs" />
8082
<Compile Include="JsonVersionBuilderTests.cs" />
8183
<Compile Include="LastVersionOnMasterFinderTests.cs" />
8284
<Compile Include="ModuleInitializer.cs" />
83-
<Compile Include="EmptyRepositoryFixture.cs" />
85+
<Compile Include="Fixtures\EmptyRepositoryFixture.cs" />
8486
<Compile Include="Helpers\GitHelper.cs" />
8587
<Compile Include="Helpers\PathHelper.cs" />
86-
<Compile Include="GitHubFlow\MasterTests.cs" />
88+
<Compile Include="IntegrationTests\GitHubFlow\MasterTests.cs" />
8789
<Compile Include="ApprovalTestsConfig.cs" />
88-
<Compile Include="RepositoryFixtureBase.cs" />
90+
<Compile Include="Fixtures\RepositoryFixtureBase.cs" />
8991
<Compile Include="SemanticVersionTests.cs" />
9092
<Compile Include="ShortVersionParserTests.cs" />
9193
<Compile Include="VariableProviderTests.cs" />
@@ -103,6 +105,7 @@
103105
<Content Include="FodyWeavers.xml" />
104106
<Content Include="JsonVersionBuilderTests.Json.approved.txt" />
105107
</ItemGroup>
108+
<ItemGroup />
106109
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
107110
<PropertyGroup>
108111
<PostBuildEvent>

GitVersionCore.Tests/GitVersionCore.Tests.v2.ncrunchproject

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@
2222
<UseCPUArchitecture>AutoDetect</UseCPUArchitecture>
2323
<MSTestThreadApartmentState>STA</MSTestThreadApartmentState>
2424
<BuildProcessArchitecture>x86</BuildProcessArchitecture>
25-
<AdditionalFilesToInclude>..\Packages\LibGit2Sharp.0.19.0.0\lib\net40\NativeBinaries\**.*</AdditionalFilesToInclude>
25+
<AdditionalFilesToInclude>..\Packages\LibGit2Sharp.0.19.0.0\lib\net40\NativeBinaries\**.*;Resources\**.*</AdditionalFilesToInclude>
2626
<HiddenWarnings>PostBuildEventDisabled</HiddenWarnings>
2727
</ProjectConfiguration>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
using GitVersion;
2+
using LibGit2Sharp;
3+
using NUnit.Framework;
4+
5+
[TestFixture]
6+
public class DevelopScenarios
7+
{
8+
[Test]
9+
public void WhenDevelopBranchedFromMaster_MinorIsIncreased()
10+
{
11+
using (var fixture = new EmptyRepositoryFixture(new Config()))
12+
{
13+
fixture.Repository.MakeATaggedCommit("1.0.0");
14+
fixture.Repository.CreateBranch("develop").Checkout();
15+
fixture.AssertFullSemver("1.1.0-unstable.0+0");
16+
}
17+
}
18+
19+
[Test]
20+
public void CanChangeDevelopTagViaConfig()
21+
{
22+
using (var fixture = new EmptyRepositoryFixture(new Config
23+
{
24+
DevelopBranchTag = "alpha"
25+
}))
26+
{
27+
fixture.Repository.MakeATaggedCommit("1.0.0");
28+
fixture.Repository.CreateBranch("develop").Checkout();
29+
fixture.AssertFullSemver("1.1.0-alpha.0+0");
30+
}
31+
}
32+
33+
[Test]
34+
public void CanClearDevelopTagViaConfig()
35+
{
36+
using (var fixture = new EmptyRepositoryFixture(new Config
37+
{
38+
DevelopBranchTag = ""
39+
}))
40+
{
41+
fixture.Repository.MakeATaggedCommit("1.0.0");
42+
fixture.Repository.CreateBranch("develop").Checkout();
43+
fixture.AssertFullSemver("1.1.0+0");
44+
}
45+
}
46+
47+
[Test]
48+
public void WhenDevelopBranchedFromMasterDetachedHead_MinorIsIncreased()
49+
{
50+
using (var fixture = new EmptyRepositoryFixture(new Config()))
51+
{
52+
fixture.Repository.MakeATaggedCommit("1.0.0");
53+
fixture.Repository.CreateBranch("develop").Checkout();
54+
fixture.Repository.MakeACommit();
55+
var commit = fixture.Repository.Head.Tip;
56+
fixture.Repository.MakeACommit();
57+
fixture.Repository.Checkout(commit);
58+
fixture.AssertFullSemver("1.1.0-unstable.1+1");
59+
}
60+
}
61+
}

GitVersionCore.Tests/GitFlow/MetaDataByCommitFixture.cs renamed to GitVersionCore.Tests/IntegrationTests/GitFlow/MetaDataByCommitScenarios.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Shouldly;
44

55
[TestFixture]
6-
public class MetaDataByCommitFixture
6+
public class MetaDataByCommitScenarios
77
{
88
/*
99
* hotfix-1.2.1 -----------C--
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
using GitVersion;
2+
using LibGit2Sharp;
3+
using NUnit.Framework;
4+
5+
[TestFixture]
6+
public class GitFlowReleaseBranchTests
7+
{
8+
[Test]
9+
public void CanTakeVersionFromReleaseBranch()
10+
{
11+
using (var fixture = new EmptyRepositoryFixture(new Config()))
12+
{
13+
fixture.Repository.MakeATaggedCommit("1.0.3");
14+
fixture.Repository.CreateBranch("develop");
15+
fixture.Repository.MakeCommits(5);
16+
fixture.Repository.CreateBranch("release-2.0.0");
17+
fixture.Repository.Checkout("release-2.0.0");
18+
19+
fixture.AssertFullSemver("2.0.0-beta.1+5");
20+
}
21+
}
22+
23+
[Test]
24+
public void CanTakeVersionFromReleaseBranchWithTagOverriden()
25+
{
26+
using (var fixture = new EmptyRepositoryFixture(new Config { ReleaseBranchTag = "rc" }))
27+
{
28+
fixture.Repository.MakeATaggedCommit("1.0.3");
29+
fixture.Repository.CreateBranch("develop");
30+
fixture.Repository.MakeCommits(5);
31+
fixture.Repository.CreateBranch("release-2.0.0");
32+
fixture.Repository.Checkout("release-2.0.0");
33+
34+
fixture.AssertFullSemver("2.0.0-rc.1+5");
35+
}
36+
}
37+
38+
[Test]
39+
public void WhenReleaseBranchIsMergedIntoMasterVersionIsTakenWithIt()
40+
{
41+
using (var fixture = new EmptyRepositoryFixture(new Config()))
42+
{
43+
fixture.Repository.MakeATaggedCommit("1.0.3");
44+
fixture.Repository.CreateBranch("develop");
45+
fixture.Repository.MakeCommits(1);
46+
fixture.Repository.CreateBranch("release-2.0.0");
47+
fixture.Repository.Checkout("release-2.0.0");
48+
fixture.Repository.MakeCommits(4);
49+
fixture.Repository.Checkout("master");
50+
fixture.Repository.MergeNoFF("release-2.0.0", Constants.SignatureNow());
51+
52+
// TODO For GitHubFlow this is 2.0.0+6, why is it different
53+
fixture.AssertFullSemver("2.0.0");
54+
}
55+
}
56+
57+
// TODO This test fails for GitFlow, it needs to be fixed (although in reality a support branch should be used)
58+
[Test, Ignore]
59+
public void WhenReleaseBranchIsMergedIntoMasterHighestVersionIsTakenWithIt()
60+
{
61+
using (var fixture = new EmptyRepositoryFixture(new Config()))
62+
{
63+
fixture.Repository.MakeATaggedCommit("1.0.3");
64+
fixture.Repository.CreateBranch("develop");
65+
fixture.Repository.MakeCommits(1);
66+
67+
fixture.Repository.CreateBranch("release-2.0.0");
68+
fixture.Repository.Checkout("release-2.0.0");
69+
fixture.Repository.MakeCommits(4);
70+
fixture.Repository.Checkout("master");
71+
fixture.Repository.MergeNoFF("release-2.0.0", Constants.SignatureNow());
72+
fixture.Repository.Checkout("develop");
73+
fixture.Repository.MergeNoFF("release-2.0.0", Constants.SignatureNow());
74+
75+
fixture.Repository.CreateBranch("release-1.0.0");
76+
fixture.Repository.Checkout("release-1.0.0");
77+
fixture.Repository.MakeCommits(4);
78+
fixture.Repository.Checkout("master");
79+
fixture.Repository.MergeNoFF("release-1.0.0", Constants.SignatureNow());
80+
fixture.Repository.Checkout("develop");
81+
fixture.Repository.MergeNoFF("release-1.0.0", Constants.SignatureNow());
82+
83+
fixture.AssertFullSemver("2.0.0+11");
84+
}
85+
}
86+
}

GitVersionCore.Tests/GitFlow/WikiScenarios.cs renamed to GitVersionCore.Tests/IntegrationTests/GitFlow/WikiScenarios.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using LibGit2Sharp;
1+
using GitVersion;
2+
using LibGit2Sharp;
23
using NUnit.Framework;
34

45
[TestFixture]
@@ -37,7 +38,7 @@ participant release-1.3.0
3738
[Test]
3839
public void MinorReleaseExample()
3940
{
40-
using (var fixture = new EmptyRepositoryFixture())
41+
using (var fixture = new EmptyRepositoryFixture(new Config()))
4142
{
4243
fixture.Repository.MakeATaggedCommit("1.2.0");
4344

0 commit comments

Comments
 (0)