11namespace GitVersionExe . Tests
22{
3+ using System ;
34 using System . Collections . Generic ;
45 using System . IO ;
56 using GitVersion ;
910 [ TestFixture ]
1011 public class AssemblyInfoFileUpdateTests
1112 {
13+ readonly string assemblyInfoFile = @"AssemblyVersion(""1.0.0.0"");
14+ AssemblyInformationalVersion(""1.0.0.0"");
15+ AssemblyFileVersion(""1.0.0.0"");" ;
16+
1217 [ Test ]
1318 public void ShouldStartSearchFromWorkingDirectory ( )
1419 {
@@ -19,5 +24,81 @@ public void ShouldStartSearchFromWorkingDirectory()
1924 fileSystem . Received ( ) . DirectoryGetFiles ( Arg . Is ( workingDir ) , Arg . Any < string > ( ) , Arg . Any < SearchOption > ( ) ) ;
2025 }
2126 }
27+
28+ [ Test ]
29+ public void ShouldReplaceAssemblyVersion ( )
30+ {
31+ var fileSystem = Substitute . For < IFileSystem > ( ) ;
32+ var version = new SemanticVersion ( )
33+ {
34+ BuildMetaData = new SemanticVersionBuildMetaData ( 3 , "foo" , "hash" , DateTimeOffset . Now ) ,
35+ Major = 2 ,
36+ Minor = 3 ,
37+ Patch = 1
38+ } ;
39+
40+ const string workingDir = "C:\\ Testing" ;
41+ const string assemblyInfoFile = @"AssemblyVersion(""1.0.0.0"");
42+ AssemblyInformationalVersion(""1.0.0.0"");
43+ AssemblyFileVersion(""1.0.0.0"");" ;
44+
45+ fileSystem . Exists ( "C:\\ Testing\\ AssemblyInfo.cs" ) . Returns ( true ) ;
46+ fileSystem . ReadAllText ( "C:\\ Testing\\ AssemblyInfo.cs" ) . Returns ( assemblyInfoFile ) ;
47+ var config = new Config ( )
48+ {
49+ AssemblyVersioningScheme = AssemblyVersioningScheme . MajorMinorPatch
50+ } ;
51+ var variable = VariableProvider . GetVariablesFor ( version , config ) ;
52+ var args = new Arguments
53+ {
54+ UpdateAssemblyInfo = true ,
55+ UpdateAssemblyInfoFileName = "AssemblyInfo.cs"
56+ } ;
57+ using ( new AssemblyInfoFileUpdate ( args , workingDir , variable , fileSystem ) )
58+ {
59+ var expected = @"AssemblyVersion(""2.3.0.0"");
60+ AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"");
61+ AssemblyFileVersion(""2.3.1.0"");" ;
62+ fileSystem . Received ( ) . WriteAllText ( "C:\\ Testing\\ AssemblyInfo.cs" , expected ) ;
63+ }
64+ }
65+
66+ [ Test ]
67+ public void ShouldReplaceAssemblyVersionWithStar ( )
68+ {
69+ var fileSystem = Substitute . For < IFileSystem > ( ) ;
70+ var version = new SemanticVersion ( )
71+ {
72+ BuildMetaData = new SemanticVersionBuildMetaData ( 3 , "foo" , "hash" , DateTimeOffset . Now ) ,
73+ Major = 2 ,
74+ Minor = 3 ,
75+ Patch = 1
76+ } ;
77+
78+ const string workingDir = "C:\\ Testing" ;
79+ const string assemblyInfoFile = @"AssemblyVersion(""1.0.0.*"");
80+ AssemblyInformationalVersion(""1.0.0.*"");
81+ AssemblyFileVersion(""1.0.0.*"");" ;
82+
83+ fileSystem . Exists ( "C:\\ Testing\\ AssemblyInfo.cs" ) . Returns ( true ) ;
84+ fileSystem . ReadAllText ( "C:\\ Testing\\ AssemblyInfo.cs" ) . Returns ( assemblyInfoFile ) ;
85+ var config = new Config ( )
86+ {
87+ AssemblyVersioningScheme = AssemblyVersioningScheme . MajorMinorPatch
88+ } ;
89+ var variable = VariableProvider . GetVariablesFor ( version , config ) ;
90+ var args = new Arguments
91+ {
92+ UpdateAssemblyInfo = true ,
93+ UpdateAssemblyInfoFileName = "AssemblyInfo.cs"
94+ } ;
95+ using ( new AssemblyInfoFileUpdate ( args , workingDir , variable , fileSystem ) )
96+ {
97+ var expected = @"AssemblyVersion(""2.3.0.0"");
98+ AssemblyInformationalVersion(""2.3.1+3.Branch.foo.Sha.hash"");
99+ AssemblyFileVersion(""2.3.1.0"");" ;
100+ fileSystem . Received ( ) . WriteAllText ( "C:\\ Testing\\ AssemblyInfo.cs" , expected ) ;
101+ }
102+ }
22103 }
23104}
0 commit comments