1
- namespace GitVersionCore . Tests . VersionCalculation . Strategies
1
+ namespace GitVersionCore . Tests . VersionCalculation . Strategies
2
2
{
3
3
using System . Collections . Generic ;
4
4
using System . Linq ;
5
+
6
+ using GitVersion ;
5
7
using GitVersion . VersionCalculation . BaseVersionCalculators ;
6
8
using LibGit2Sharp ;
7
9
using NUnit . Framework ;
@@ -19,7 +21,7 @@ public void ShouldNotAllowIncrementOfVersion()
19
21
{
20
22
Head = new MockBranch ( "master" ) { new MockCommit
21
23
{
22
- MessageEx = "Merge branch 'hotfix -0.1.5'" ,
24
+ MessageEx = "Merge branch 'release -0.1.5'" ,
23
25
ParentsEx = GetParents ( true )
24
26
} }
25
27
} ) . Build ( ) ;
@@ -30,38 +32,22 @@ public void ShouldNotAllowIncrementOfVersion()
30
32
baseVersion . ShouldIncrement . ShouldBe ( false ) ;
31
33
}
32
34
33
- [ TestCase ( "Merge branch 'hotfix-0.1.5'" , false , null ) ]
34
- [ TestCase ( "Merge branch 'develop' of github.com:Particular/NServiceBus into develop" , true , null ) ]
35
- [ TestCase ( "Merge branch '4.0.3'" , true , "4.0.3" ) ] //TODO: possible make it a config option to support this
36
35
[ TestCase ( "Merge branch 'release-10.10.50'" , true , "10.10.50" ) ]
37
- [ TestCase ( "Merge branch 's'" , true , null ) ] // Must start with a number
38
- [ TestCase ( "Merge tag '10.10.50'" , true , "10.10.50" ) ]
39
36
[ TestCase ( "Merge branch 'release-0.2.0'" , true , "0.2.0" ) ]
40
37
[ TestCase ( "Merge branch 'Release-0.2.0'" , true , "0.2.0" ) ]
41
38
[ TestCase ( "Merge branch 'Release/0.2.0'" , true , "0.2.0" ) ]
42
- [ TestCase ( "Merge branch 'hotfix-4.6.6' into support-4.6" , true , "4.6.6" ) ]
43
- [ TestCase ( "Merge branch 'hotfix-10.10.50'" , true , "10.10.50" ) ]
44
- [ TestCase ( "Merge branch 'Hotfix-10.10.50'" , true , "10.10.50" ) ]
45
- [ TestCase ( "Merge branch 'Hotfix/10.10.50'" , true , "10.10.50" ) ]
46
- [ TestCase ( "Merge branch 'hotfix-0.1.5'" , true , "0.1.5" ) ]
47
- [ TestCase ( "Merge branch 'hotfix-4.2.2' into support-4.2" , true , "4.2.2" ) ]
48
- [ TestCase ( "Merge branch 'somebranch' into release-3.0.0" , true , null ) ]
49
- [ TestCase ( "Merge branch 'hotfix-0.1.5'\n \n Relates to: TicketId" , true , "0.1.5" ) ]
50
- [ TestCase ( "Merge branch 'alpha-0.1.5'" , true , "0.1.5" ) ]
51
- [ TestCase ( "Merge pull request #165 from Particular/release-1.0.0" , true , "1.0.0" ) ]
52
- [ TestCase ( "Merge pull request #95 from Particular/issue-94" , false , null ) ]
53
- [ TestCase ( "Merge pull request #165 in Particular/release-1.0.0" , true , "1.0.0" ) ]
54
- [ TestCase ( "Merge pull request #95 in Particular/issue-94" , true , null ) ]
55
- [ TestCase ( "Merge pull request #95 in Particular/issue-94" , false , null ) ]
56
- [ TestCase ( "Merge pull request #64 from arledesma/feature-VS2013_3rd_party_test_framework_support" , true , null ) ]
57
- [ TestCase ( "Merge pull request #500 in FOO/bar from Particular/release-1.0.0 to develop)" , true , "1.0.0" ) ]
58
- [ TestCase ( "Merge pull request #500 in FOO/bar from feature/new-service to develop)" , true , null ) ]
39
+ [ TestCase ( "Merge branch 'releases-0.2.0'" , true , "0.2.0" ) ]
40
+ [ TestCase ( "Merge branch 'Releases-0.2.0'" , true , "0.2.0" ) ]
41
+ [ TestCase ( "Merge branch 'Releases/0.2.0'" , true , "0.2.0" ) ]
42
+ [ TestCase ( "Merge branch 'release-4.6.6' into support-4.6" , true , "4.6.6" ) ]
43
+ [ TestCase ( "Merge branch 'release-10.10.50'" , true , "10.10.50" ) ]
44
+ [ TestCase ( "Merge branch 'release-0.1.5'\n \n Relates to: TicketId" , true , "0.1.5" ) ]
59
45
[ TestCase ( "Finish Release-0.12.0" , true , "0.12.0" ) ] //Support Syntevo SmartGit/Hg's Gitflow merge commit messages for finishing a 'Release' branch
60
- [ TestCase ( "Finish 0.14.1" , true , "0.14.1" ) ] //Support Syntevo SmartGit/Hg's Gitflow merge commit messages for finishing a 'Hotfix' branch
61
46
[ TestCase ( "Merge branch 'Release-v0.2.0'" , true , "0.2.0" ) ]
62
47
[ TestCase ( "Merge branch 'Release-v2.2'" , true , "2.2.0" ) ]
63
48
[ TestCase ( "Merge remote-tracking branch 'origin/release/0.8.0' into develop/master" , true , "0.8.0" ) ]
64
- public void AssertMergeMessage ( string message , bool isMergeCommit , string expectedVersion )
49
+ [ TestCase ( "Merge remote-tracking branch 'refs/remotes/origin/release/2.0.0'" , true , "2.0.0" ) ]
50
+ public void TakesVersionFromMergeOfReleaseBranch ( string message , bool isMergeCommit , string expectedVersion )
65
51
{
66
52
var parents = GetParents ( isMergeCommit ) ;
67
53
AssertMergeMessage ( message , expectedVersion , parents ) ;
@@ -74,6 +60,56 @@ public void AssertMergeMessage(string message, bool isMergeCommit, string expect
74
60
AssertMergeMessage ( message + "\n " , expectedVersion , parents ) ;
75
61
}
76
62
63
+ [ TestCase ( "Merge branch 'hotfix-0.1.5'" , false ) ]
64
+ [ TestCase ( "Merge branch 'develop' of github.com:Particular/NServiceBus into develop" , true ) ]
65
+ [ TestCase ( "Merge branch '4.0.3'" , true ) ]
66
+ [ TestCase ( "Merge branch 's'" , true ) ]
67
+ [ TestCase ( "Merge tag '10.10.50'" , true ) ]
68
+ [ TestCase ( "Merge branch 'hotfix-4.6.6' into support-4.6" , true ) ]
69
+ [ TestCase ( "Merge branch 'hotfix-10.10.50'" , true ) ]
70
+ [ TestCase ( "Merge branch 'Hotfix-10.10.50'" , true ) ]
71
+ [ TestCase ( "Merge branch 'Hotfix/10.10.50'" , true ) ]
72
+ [ TestCase ( "Merge branch 'hotfix-0.1.5'" , true ) ]
73
+ [ TestCase ( "Merge branch 'hotfix-4.2.2' into support-4.2" , true ) ]
74
+ [ TestCase ( "Merge branch 'somebranch' into release-3.0.0" , true ) ]
75
+ [ TestCase ( "Merge branch 'hotfix-0.1.5'\n \n Relates to: TicketId" , true ) ]
76
+ [ TestCase ( "Merge branch 'alpha-0.1.5'" , true ) ]
77
+ [ TestCase ( "Merge pull request #95 from Particular/issue-94" , false ) ]
78
+ [ TestCase ( "Merge pull request #95 in Particular/issue-94" , true ) ]
79
+ [ TestCase ( "Merge pull request #95 in Particular/issue-94" , false ) ]
80
+ [ TestCase ( "Merge pull request #64 from arledesma/feature-VS2013_3rd_party_test_framework_support" , true ) ]
81
+ [ TestCase ( "Merge pull request #500 in FOO/bar from Particular/release-1.0.0 to develop)" , true ) ]
82
+ [ TestCase ( "Merge pull request #500 in FOO/bar from feature/new-service to develop)" , true ) ]
83
+ [ TestCase ( "Finish 0.14.1" , true ) ] // Don't support Syntevo SmartGit/Hg's Gitflow merge commit messages for finishing a 'Hotfix' branch
84
+ public void ShouldNotTakeVersionFromMergeOfNonReleaseBranch ( string message , bool isMergeCommit )
85
+ {
86
+ var parents = GetParents ( isMergeCommit ) ;
87
+ AssertMergeMessage ( message , null , parents ) ;
88
+ AssertMergeMessage ( message + " " , null , parents ) ;
89
+ AssertMergeMessage ( message + "\r " , null , parents ) ;
90
+ AssertMergeMessage ( message + "\r " , null , parents ) ;
91
+ AssertMergeMessage ( message + "\r \n " , null , parents ) ;
92
+ AssertMergeMessage ( message + "\r \n " , null , parents ) ;
93
+ AssertMergeMessage ( message + "\n " , null , parents ) ;
94
+ AssertMergeMessage ( message + "\n " , null , parents ) ;
95
+ }
96
+
97
+ [ TestCase ( "Merge pull request #165 from Particular/release-1.0.0" , true ) ]
98
+ [ TestCase ( "Merge pull request #165 in Particular/release-1.0.0" , true ) ]
99
+ [ TestCase ( "Merge pull request #500 in FOO/bar from Particular/release-1.0.0 to develop)" , true ) ]
100
+ public void ShouldNotTakeVersionFromMergeOfReleaseBranchWithRemoteOtherThanOrigin ( string message , bool isMergeCommit )
101
+ {
102
+ var parents = GetParents ( isMergeCommit ) ;
103
+ AssertMergeMessage ( message , null , parents ) ;
104
+ AssertMergeMessage ( message + " " , null , parents ) ;
105
+ AssertMergeMessage ( message + "\r " , null , parents ) ;
106
+ AssertMergeMessage ( message + "\r " , null , parents ) ;
107
+ AssertMergeMessage ( message + "\r \n " , null , parents ) ;
108
+ AssertMergeMessage ( message + "\r \n " , null , parents ) ;
109
+ AssertMergeMessage ( message + "\n " , null , parents ) ;
110
+ AssertMergeMessage ( message + "\n " , null , parents ) ;
111
+ }
112
+
77
113
[ TestCase ( @"Merge pull request #1 in FOO/bar from feature/ISSUE-1 to develop
78
114
79
115
* commit '38560a7eed06e8d3f3f1aaf091befcdf8bf50fea':
@@ -89,14 +125,26 @@ Another commit message
89
125
[ TestCase ( @"Merge branch 'master' of http://172.16.3.10:8082/r/asu_tk/p_sd" ) ]
90
126
[ TestCase ( @"Merge branch 'master' of http://212.248.89.56:8082/r/asu_tk/p_sd" ) ]
91
127
[ TestCase ( @"Merge branch 'DEMO' of http://10.10.10.121/gitlab/mtolland/orcid into DEMO" ) ]
92
- public void MergeMessagesThatIsNotRelatedToGitVersion ( string commitMessage )
128
+ public void ShouldNotTakeVersionFromUnrelatedMerge ( string commitMessage )
93
129
{
94
130
var parents = GetParents ( true ) ;
95
131
96
132
AssertMergeMessage ( commitMessage , null , parents ) ;
97
133
}
98
134
99
- static void AssertMergeMessage ( string message , string expectedVersion , List < Commit > parents )
135
+ [ TestCase ( "Merge branch 'support/0.2.0'" , "support" , "0.2.0" ) ]
136
+ [ TestCase ( "Merge branch 'support/0.2.0'" , null , null ) ]
137
+ [ TestCase ( "Merge branch 'release/2.0.0'" , null , "2.0.0" ) ]
138
+ public void TakesVersionFromMergeOfConfiguredReleaseBranch ( string message , string releaseBranch , string expectedVersion )
139
+ {
140
+ var config = new Config ( ) ;
141
+ if ( releaseBranch != null ) config . Branches [ releaseBranch ] = new BranchConfig { IsReleaseBranch = true } ;
142
+ var parents = GetParents ( true ) ;
143
+
144
+ AssertMergeMessage ( message , expectedVersion , parents , config ) ;
145
+ }
146
+
147
+ static void AssertMergeMessage ( string message , string expectedVersion , List < Commit > parents , Config config = null )
100
148
{
101
149
var commit = new MockCommit
102
150
{
@@ -105,6 +153,7 @@ static void AssertMergeMessage(string message, string expectedVersion, List<Comm
105
153
} ;
106
154
107
155
var context = new GitVersionContextBuilder ( )
156
+ . WithConfig ( config ?? new Config ( ) )
108
157
. WithRepository ( new MockRepository
109
158
{
110
159
Head = new MockBranch ( "master" )
@@ -145,4 +194,4 @@ static List<Commit> GetParents(bool isMergeCommit)
145
194
} ;
146
195
}
147
196
}
148
- }
197
+ }
0 commit comments