Skip to content

Commit 7c34c52

Browse files
committed
Made it easy to test Pull requests and verified #281 is fixed
1 parent d853e7b commit 7c34c52

File tree

3 files changed

+26
-29
lines changed

3 files changed

+26
-29
lines changed

GitVersionCore.Tests/Helpers/GitTestExtensions.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,21 @@ public static Tag MakeATaggedCommit(this IRepository repository, string tag)
7878
return existingTag;
7979
return repository.Tags.Add(tag, commit);
8080
}
81+
82+
public static Branch CreatePullRequest(this IRepository repository, string from, string to, int prNumber = 2, bool isRemotePr = true)
83+
{
84+
repository.Checkout(to);
85+
repository.MergeNoFF(from);
86+
repository.CreateBranch("pull/" + prNumber + "/merge").Checkout();
87+
repository.Checkout(to);
88+
repository.Reset(ResetMode.Hard, "HEAD~1");
89+
var pullBranch = repository.Checkout("pull/" + prNumber + "/merge");
90+
if (isRemotePr)
91+
{
92+
// If we delete the branch, it is effectively the same as remote PR
93+
repository.Branches.Remove(from);
94+
}
95+
96+
return pullBranch;
97+
}
8198
}

GitVersionCore.Tests/IntegrationTests/HotfixBranchScenarios.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ public void PatchOlderReleaseExample()
6767
fixture.AssertFullSemver("1.1.1-fix.1+1");
6868
fixture.Repository.MakeACommit();
6969
fixture.AssertFullSemver("1.1.1-fix.1+2");
70+
71+
fixture.Repository.CreatePullRequest("feature/fix", "hotfix-1.1.1", isRemotePr: false);
72+
fixture.AssertFullSemver("1.1.1-PullRequest.2+3");
7073
fixture.Repository.Checkout("hotfix-1.1.1");
7174
fixture.Repository.MergeNoFF("feature/fix", Constants.SignatureNow());
7275
fixture.AssertFullSemver("1.1.1-beta.1+1");

GitVersionCore.Tests/IntegrationTests/PullRequestScenarios.cs

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,8 @@ public void CanCalculatePullRequestChanges()
1313
fixture.Repository.MakeATaggedCommit("0.1.0");
1414
fixture.Repository.CreateBranch("feature/Foo").Checkout();
1515
fixture.Repository.MakeACommit();
16-
17-
fixture.Repository.Checkout("master");
18-
fixture.Repository.MergeNoFF("feature/Foo");
19-
fixture.Repository.CreateBranch("pull/2/merge").Checkout();
20-
fixture.Repository.Checkout("master");
21-
fixture.Repository.Reset(ResetMode.Hard, "HEAD~1");
22-
fixture.Repository.Checkout("pull/2/merge");
16+
17+
fixture.Repository.CreatePullRequest("feature/Foo", "master");
2318

2419
fixture.DumpGraph();
2520
fixture.AssertFullSemver("0.1.1-PullRequest.2+2");
@@ -37,12 +32,7 @@ public void CanCalculatePullRequestChangesInheritingConfig()
3732
fixture.Repository.CreateBranch("feature/Foo").Checkout();
3833
fixture.Repository.MakeACommit();
3934

40-
fixture.Repository.Checkout("develop");
41-
fixture.Repository.MergeNoFF("feature/Foo");
42-
fixture.Repository.CreateBranch("pull/44/merge").Checkout();
43-
fixture.Repository.Checkout("develop");
44-
fixture.Repository.Reset(ResetMode.Hard, "HEAD~1");
45-
fixture.Repository.Checkout("pull/44/merge");
35+
fixture.Repository.CreatePullRequest("feature/Foo", "develop", 44);
4636

4737
fixture.DumpGraph();
4838
fixture.AssertFullSemver("0.2.0-PullRequest.44+3");
@@ -58,14 +48,8 @@ public void CanCalculatePullRequestChangesFromRemoteRepo()
5848
fixture.Repository.CreateBranch("feature/Foo").Checkout();
5949
fixture.Repository.MakeACommit();
6050

61-
fixture.Repository.Checkout("master");
62-
fixture.Repository.MergeNoFF("feature/Foo");
63-
fixture.Repository.CreateBranch("pull/2/merge").Checkout();
64-
fixture.Repository.Checkout("master");
65-
fixture.Repository.Reset(ResetMode.Hard, "HEAD~1");
66-
fixture.Repository.Checkout("pull/2/merge");
67-
// If we delete the branch, it is effectively the same as remote PR
68-
fixture.Repository.Branches.Remove("feature/Foo");
51+
52+
fixture.Repository.CreatePullRequest("feature/Foo", "master");
6953

7054
fixture.DumpGraph();
7155
fixture.AssertFullSemver("0.1.1-PullRequest.2+2");
@@ -83,14 +67,7 @@ public void CanCalculatePullRequestChangesInheritingConfigFromRemoteRepo()
8367
fixture.Repository.CreateBranch("feature/Foo").Checkout();
8468
fixture.Repository.MakeACommit();
8569

86-
fixture.Repository.Checkout("develop");
87-
fixture.Repository.MergeNoFF("feature/Foo");
88-
fixture.Repository.CreateBranch("pull/2/merge").Checkout();
89-
fixture.Repository.Checkout("develop");
90-
fixture.Repository.Reset(ResetMode.Hard, "HEAD~1");
91-
fixture.Repository.Checkout("pull/2/merge");
92-
// If we delete the branch, it is effectively the same as remote PR
93-
fixture.Repository.Branches.Remove("feature/Foo");
70+
fixture.Repository.CreatePullRequest("feature/Foo", "develop");
9471

9572
fixture.AssertFullSemver("0.2.0-PullRequest.2+3");
9673
}

0 commit comments

Comments
 (0)