10
10
using LibGit2Sharp ;
11
11
using Microsoft . Extensions . DependencyInjection ;
12
12
using Microsoft . Extensions . Options ;
13
+ using NSubstitute ;
13
14
using NUnit . Framework ;
14
15
using Shouldly ;
15
16
@@ -24,18 +25,19 @@ public void CanInheritVersioningMode(VersioningMode mode)
24
25
using var fixture = new EmptyRepositoryFixture ( ) ;
25
26
26
27
var config = new ConfigurationBuilder ( )
27
- . Add ( new Config { VersioningMode = mode } )
28
- . Build ( ) ;
28
+ . Add ( new Config { VersioningMode = mode } )
29
+ . Build ( ) ;
29
30
30
31
var branchName = "master" ;
32
+
31
33
var mockBranch = new MockBranch ( branchName ) { new MockCommit { CommitterEx = Generate . SignatureNow ( ) } } ;
34
+ var branches = Substitute . For < IBranchCollection > ( ) ;
35
+ branches . GetEnumerator ( ) . Returns ( _ => ( ( IEnumerable < IBranch > ) new [ ] { mockBranch } ) . GetEnumerator ( ) ) ;
36
+
32
37
var mockRepository = new MockRepository
33
38
{
34
39
Head = mockBranch ,
35
- Branches = new MockBranchCollection
36
- {
37
- mockBranch
38
- }
40
+ Branches = branches
39
41
} ;
40
42
41
43
var context = GetGitVersionContext ( fixture . RepositoryPath , mockRepository , branchName , config ) ;
@@ -54,8 +56,8 @@ public void CanInheritIncrement(IncrementStrategy increment, IncrementStrategy?
54
56
const string dummyBranchName = "dummy" ;
55
57
56
58
var config = new ConfigurationBuilder ( )
57
- . Add ( new Config { Increment = increment } )
58
- . Build ( ) ;
59
+ . Add ( new Config { Increment = increment } )
60
+ . Build ( ) ;
59
61
60
62
using var fixture = new EmptyRepositoryFixture ( ) ;
61
63
fixture . MakeACommit ( ) ;
@@ -74,31 +76,31 @@ public void UsesBranchSpecificConfigOverTopLevelDefaults()
74
76
75
77
var branchName = "develop" ;
76
78
var config = new ConfigurationBuilder ( )
77
- . Add ( new Config
78
- {
79
- VersioningMode = VersioningMode . ContinuousDelivery ,
80
- Branches =
81
- {
82
- {
83
- branchName , new BranchConfig
84
- {
85
- VersioningMode = VersioningMode . ContinuousDeployment ,
86
- Tag = "alpha"
87
- }
88
- }
89
- }
90
- } )
91
- . Build ( ) ;
92
-
79
+ . Add ( new Config
80
+ {
81
+ VersioningMode = VersioningMode . ContinuousDelivery ,
82
+ Branches =
83
+ {
84
+ {
85
+ branchName , new BranchConfig
86
+ {
87
+ VersioningMode = VersioningMode . ContinuousDeployment ,
88
+ Tag = "alpha"
89
+ }
90
+ }
91
+ }
92
+ } )
93
+ . Build ( ) ;
94
+
95
+ var master = new MockBranch ( "master" ) { new MockCommit { CommitterEx = Generate . SignatureNow ( ) } } ;
93
96
var develop = new MockBranch ( branchName ) { new MockCommit { CommitterEx = Generate . SignatureNow ( ) } } ;
97
+ var branches = Substitute . For < IBranchCollection > ( ) ;
98
+ branches . GetEnumerator ( ) . Returns ( _ => ( ( IEnumerable < IBranch > ) new [ ] { master , develop } ) . GetEnumerator ( ) ) ;
99
+
94
100
var mockRepository = new MockRepository
95
101
{
96
102
Head = develop ,
97
- Branches = new MockBranchCollection
98
- {
99
- new MockBranch ( "master" ) { new MockCommit { CommitterEx = Generate . SignatureNow ( ) } } ,
100
- develop
101
- }
103
+ Branches = branches
102
104
} ;
103
105
104
106
var context = GetGitVersionContext ( fixture . RepositoryPath , mockRepository , branchName , config ) ;
@@ -122,27 +124,26 @@ public void UsesFirstBranchConfigWhenMultipleMatch()
122
124
SourceBranches = new HashSet < string > ( )
123
125
} ;
124
126
var config = new ConfigurationBuilder ( )
125
- . Add ( new Config
126
- {
127
- VersioningMode = VersioningMode . ContinuousDelivery ,
128
- Branches =
129
- {
130
- { "release/latest" , new BranchConfig ( branchConfig ) { Increment = IncrementStrategy . None , Regex = "release/latest" } } ,
131
- { "release" , new BranchConfig ( branchConfig ) { Increment = IncrementStrategy . Patch , Regex = "releases?[/-]" } }
132
- }
133
- } )
134
- . Build ( ) ;
127
+ . Add ( new Config
128
+ {
129
+ VersioningMode = VersioningMode . ContinuousDelivery ,
130
+ Branches =
131
+ {
132
+ { "release/latest" , new BranchConfig ( branchConfig ) { Increment = IncrementStrategy . None , Regex = "release/latest" } } ,
133
+ { "release" , new BranchConfig ( branchConfig ) { Increment = IncrementStrategy . Patch , Regex = "releases?[/-]" } }
134
+ }
135
+ } )
136
+ . Build ( ) ;
135
137
136
138
var releaseLatestBranch = new MockBranch ( "release/latest" ) { new MockCommit { CommitterEx = Generate . SignatureNow ( ) } } ;
137
139
var releaseVersionBranch = new MockBranch ( "release/1.0.0" ) { new MockCommit { CommitterEx = Generate . SignatureNow ( ) } } ;
138
140
141
+ var branches = Substitute . For < IBranchCollection > ( ) ;
142
+ branches . GetEnumerator ( ) . Returns ( _ => ( ( IEnumerable < IBranch > ) new [ ] { releaseLatestBranch , releaseVersionBranch } ) . GetEnumerator ( ) ) ;
143
+
139
144
var mockRepository = new MockRepository
140
145
{
141
- Branches = new MockBranchCollection
142
- {
143
- releaseLatestBranch ,
144
- releaseVersionBranch
145
- } ,
146
+ Branches = branches ,
146
147
Head = releaseLatestBranch
147
148
} ;
148
149
@@ -158,15 +159,15 @@ public void UsesFirstBranchConfigWhenMultipleMatch()
158
159
public void CanFindParentBranchForInheritingIncrementStrategy ( )
159
160
{
160
161
var config = new ConfigurationBuilder ( )
161
- . Add ( new Config
162
- {
163
- Branches =
164
- {
165
- { "develop" , new BranchConfig { Increment = IncrementStrategy . Major } } ,
166
- { "feature" , new BranchConfig { Increment = IncrementStrategy . Inherit } }
167
- }
168
- } )
169
- . Build ( ) ;
162
+ . Add ( new Config
163
+ {
164
+ Branches =
165
+ {
166
+ { "develop" , new BranchConfig { Increment = IncrementStrategy . Major } } ,
167
+ { "feature" , new BranchConfig { Increment = IncrementStrategy . Inherit } }
168
+ }
169
+ } )
170
+ . Build ( ) ;
170
171
171
172
using var fixture = new EmptyRepositoryFixture ( ) ;
172
173
fixture . Repository . MakeACommit ( ) ;
0 commit comments