11 using System ;
2+ using System . Diagnostics ;
23 using GitVersion ;
34 using LibGit2Sharp ;
45 using NUnit . Framework ;
78[ TestFixture ]
89public class LastVersionOnMasterFinderTests
910{
11+
12+ [ Test ]
13+ public void WhenMasterHasPatchTagEnsureLastMinorTagIsUsed ( )
14+ {
15+ using ( var fixture = new EmptyRepositoryFixture ( ) )
16+ {
17+ var stamp = new DateTimeOffset ( 2000 , 1 , 1 , 1 , 1 , 1 , TimeSpan . Zero ) ;
18+ fixture . Repository . MakeACommit ( stamp ) ;
19+ fixture . Repository . ApplyTag ( "1.2.0" ) ;
20+ fixture . Repository . MakeACommit ( stamp ) ;
21+ fixture . Repository . ApplyTag ( "1.2.1" ) ;
22+ fixture . Repository . MakeACommit ( ) ;
23+
24+ var dateTimeOffset = LastMinorVersionFinder . Execute ( fixture . Repository , fixture . Repository . Head . Tip ) ;
25+ Assert . AreEqual ( stamp , dateTimeOffset ) ;
26+ }
27+ }
28+ [ Test ]
29+ public void WhenSupportIsBranchedFromMasterEnsureLastMinorTagIsUsed ( )
30+ {
31+ using ( var fixture = new EmptyRepositoryFixture ( ) )
32+ {
33+ var stamp = new DateTimeOffset ( 2000 , 1 , 1 , 1 , 1 , 1 , TimeSpan . Zero ) ;
34+ fixture . Repository . MakeACommit ( stamp ) ;
35+ fixture . Repository . ApplyTag ( "1.2.0" ) ;
36+ fixture . Repository . CreateBranch ( "Support-1.2.0" ) ;
37+ fixture . Repository . Checkout ( "Support-1.2.0" ) ;
38+ fixture . Repository . MakeACommit ( ) ;
39+
40+ var dateTimeOffset = LastMinorVersionFinder . Execute ( fixture . Repository , fixture . Repository . Head . Tip ) ;
41+ Assert . AreEqual ( stamp , dateTimeOffset ) ;
42+ }
43+ }
44+
45+ [ Test ]
46+ public void WhenSupportIsBranchedAndTaggedFromAnotherSupportEnsureNewMinorIsUsed ( )
47+ {
48+ using ( var fixture = new EmptyRepositoryFixture ( ) )
49+ {
50+ fixture . Repository . MakeACommit ( ) ;
51+ fixture . Repository . CreateBranch ( "Support-1.2.0" ) ;
52+ fixture . Repository . Checkout ( "Support-1.2.0" ) ;
53+ fixture . Repository . MakeACommit ( ) ;
54+ fixture . Repository . ApplyTag ( "1.2.0" ) ;
55+
56+ fixture . Repository . CreateBranch ( "Support-1.3.0" ) ;
57+ fixture . Repository . Checkout ( "Support-1.3.0" ) ;
58+ var stamp = new DateTimeOffset ( 2000 , 1 , 1 , 1 , 1 , 1 , TimeSpan . Zero ) ;
59+ var commit = fixture . Repository . MakeACommit ( stamp ) ;
60+ fixture . Repository . ApplyTag ( "1.3.0" , commit . Sha ) ;
61+
62+ //Move On
63+ fixture . Repository . MakeACommit ( ) ;
64+ fixture . Repository . MakeACommit ( ) ;
65+
66+
67+ var dateTimeOffset = LastMinorVersionFinder . Execute ( fixture . Repository , fixture . Repository . Head . Tip ) ;
68+ Assert . AreEqual ( stamp , dateTimeOffset ) ;
69+ }
70+ }
71+
1072 /*
1173 * hotfix-1.2.1 -----------C--
1274 * / \
@@ -39,13 +101,13 @@ public void CanCorrectlyDetectCommitCountsAndReleaseDataWhenThatApplies()
39101 EnsureMetaDataMatch ( f , "develop" ) ;
40102
41103 ResetToN ( f . Repository ) ;
42- EnsureMetaDataMatch ( f , "master" , r => ( Commit ) r . Tags [ "1.3.0" ] . Target ) ;
104+ EnsureMetaDataMatch ( f , "master" , r => ( Commit ) r . Tags [ "1.3.0" ] . Target ) ;
43105
44106 ResetToM ( f . Repository ) ;
45107 EnsureMetaDataMatch ( f , "develop" ) ;
46108
47109 ResetToL ( f . Repository ) ;
48- EnsureMetaDataMatch ( f , "hotfix-1.3.1" , r => ( Commit ) r . Tags [ "1.3.0" ] . Target ) ;
110+ EnsureMetaDataMatch ( f , "hotfix-1.3.1" , r => ( Commit ) r . Tags [ "1.3.0" ] . Target ) ;
49111
50112 ResetToK ( f . Repository ) ;
51113 EnsureMetaDataMatch ( f , "feature" ) ;
@@ -57,13 +119,13 @@ public void CanCorrectlyDetectCommitCountsAndReleaseDataWhenThatApplies()
57119 EnsureMetaDataMatch ( f , "develop" ) ;
58120
59121 ResetToH ( f . Repository ) ;
60- EnsureMetaDataMatch ( f , "master" , r => ( Commit ) r . Tags [ "1.3.0" ] . Target ) ;
122+ EnsureMetaDataMatch ( f , "master" , r => ( Commit ) r . Tags [ "1.3.0" ] . Target ) ;
61123
62124 ResetToG ( f . Repository ) ;
63125 EnsureMetaDataMatch ( f , "release-1.3.0" ) ;
64126
65127 ResetToF ( f . Repository ) ;
66- EnsureMetaDataMatch ( f , "master" , r => ( Commit ) r . Tags [ "1.2.0" ] . Target ) ;
128+ EnsureMetaDataMatch ( f , "master" , r => ( Commit ) r . Tags [ "1.2.0" ] . Target ) ;
67129
68130 ResetToE ( f . Repository ) ;
69131 EnsureMetaDataMatch ( f , "develop" ) ;
@@ -72,7 +134,7 @@ public void CanCorrectlyDetectCommitCountsAndReleaseDataWhenThatApplies()
72134 EnsureMetaDataMatch ( f , "release-1.3.0" ) ;
73135
74136 ResetToC ( f . Repository ) ;
75- EnsureMetaDataMatch ( f , "hotfix-1.2.1" , r => ( Commit ) r . Tags [ "1.2.0" ] . Target ) ;
137+ EnsureMetaDataMatch ( f , "hotfix-1.2.1" , r => ( Commit ) r . Tags [ "1.2.0" ] . Target ) ;
76138
77139 ResetToB ( f . Repository ) ;
78140 EnsureMetaDataMatch ( f , "develop" ) ;
@@ -84,7 +146,7 @@ static void EnsureMetaDataMatch(CommitCountingRepoFixture fixture, string branch
84146 var referenceCommitFinder = commitFinder ?? ( r => r . FindBranch ( branchName ) . Tip ) ;
85147
86148 var commit = referenceCommitFinder ( fixture . Repository ) ;
87- var releaseDate = LastVersionOnMasterFinder . Execute ( fixture . Repository , commit ) ;
149+ var releaseDate = LastMinorVersionFinder . Execute ( fixture . Repository , commit ) ;
88150 releaseDate . ShouldBe ( commit . When ( ) ) ;
89151 }
90152
0 commit comments