Skip to content

Commit 5b566a5

Browse files
authored
Merge pull request #1861 from arturcic/feature/di
Refactor to better support Dependency Injection.
2 parents 7f82e51 + b992fc5 commit 5b566a5

File tree

144 files changed

+2000
-1427
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+2000
-1427
lines changed

src/GitVersionCore.Tests/AssemblyInfoFileUpdaterTests.cs

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,23 @@
99
using GitVersion.Extensions;
1010
using GitVersion.Extensions.VersionAssemblyInfoResources;
1111
using GitVersion.Common;
12+
using GitVersion.Logging;
1213

1314
namespace GitVersionCore.Tests
1415
{
1516
[TestFixture]
1617
[Parallelizable(ParallelScope.None)]
1718
public class AssemblyInfoFileUpdaterTests : TestBase
1819
{
20+
private IVariableProvider variableProvider;
21+
private ILog log;
22+
1923
[SetUp]
2024
public void Setup()
2125
{
2226
ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute<TestCaseAttribute>();
27+
log = new NullLog();
28+
variableProvider = new VariableProvider(log);
2329
}
2430

2531
[TestCase("cs")]
@@ -33,9 +39,9 @@ public void ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo(strin
3339
var workingDir = Path.GetTempPath();
3440
var assemblyInfoFile = "VersionAssemblyInfo." + fileExtension;
3541
var fullPath = Path.Combine(workingDir, assemblyInfoFile);
36-
var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
42+
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
3743

38-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, true))
44+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, true))
3945
{
4046
assemblyInfoFileUpdater.Update();
4147

@@ -54,9 +60,9 @@ public void ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo
5460
var workingDir = Path.GetTempPath();
5561
var assemblyInfoFile = Path.Combine("src", "Project", "Properties", "VersionAssemblyInfo." + fileExtension);
5662
var fullPath = Path.Combine(workingDir, assemblyInfoFile);
57-
var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
63+
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
5864

59-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, true))
65+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, true))
6066
{
6167
assemblyInfoFileUpdater.Update();
6268

@@ -78,9 +84,9 @@ public void ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInf
7884
"AssemblyInfo." + fileExtension,
7985
Path.Combine("src", "Project", "Properties", "VersionAssemblyInfo." + fileExtension)
8086
};
81-
var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
87+
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
8288

83-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFiles, workingDir, variables, fileSystem, true))
89+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFiles, workingDir, variables, fileSystem, log, true))
8490
{
8591
assemblyInfoFileUpdater.Update();
8692

@@ -101,9 +107,9 @@ public void ShouldNotCreateAssemblyInfoFileWhenNotExistsAndNotEnsureAssemblyInfo
101107
var workingDir = Path.GetTempPath();
102108
var assemblyInfoFile = "VersionAssemblyInfo." + fileExtension;
103109
var fullPath = Path.Combine(workingDir, assemblyInfoFile);
104-
var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
110+
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
105111

106-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
112+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
107113
{
108114
assemblyInfoFileUpdater.Update();
109115

@@ -118,9 +124,9 @@ public void ShouldNotCreateAssemblyInfoFileForUnknownSourceCodeAndEnsureAssembly
118124
var workingDir = Path.GetTempPath();
119125
var assemblyInfoFile = "VersionAssemblyInfo.js";
120126
var fullPath = Path.Combine(workingDir, assemblyInfoFile);
121-
var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
127+
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
122128

123-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, true))
129+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, true))
124130
{
125131
assemblyInfoFileUpdater.Update();
126132

@@ -134,9 +140,9 @@ public void ShouldStartSearchFromWorkingDirectory()
134140
var fileSystem = Substitute.For<IFileSystem>();
135141
var workingDir = Path.GetTempPath();
136142
var assemblyInfoFiles = new HashSet<string>();
137-
var variables = VariableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
143+
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);
138144

139-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFiles, workingDir, variables, fileSystem, false))
145+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFiles, workingDir, variables, fileSystem, log, false))
140146
{
141147
assemblyInfoFileUpdater.Update();
142148

@@ -155,7 +161,7 @@ public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFi
155161

156162
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
157163
{
158-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
164+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
159165
{
160166
assemblyInfoFileUpdater.Update();
161167

@@ -180,7 +186,7 @@ public void ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone(string fileEx
180186

181187
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, verify: (fileSystem, variables) =>
182188
{
183-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
189+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
184190
{
185191
assemblyInfoFileUpdater.Update();
186192

@@ -201,7 +207,7 @@ public void ShouldReplaceAssemblyVersionInRelativePath(string fileExtension, str
201207

202208
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
203209
{
204-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
210+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
205211
{
206212
assemblyInfoFileUpdater.Update();
207213

@@ -224,7 +230,7 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithWhiteSpace(string file
224230

225231
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
226232
{
227-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
233+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
228234
{
229235
assemblyInfoFileUpdater.Update();
230236

@@ -247,7 +253,7 @@ public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string as
247253

248254
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
249255
{
250-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
256+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
251257
{
252258
assemblyInfoFileUpdater.Update();
253259

@@ -270,7 +276,7 @@ public void ShouldReplaceAssemblyVersionWithAtttributeSuffix(string fileExtensio
270276

271277
VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fileSystem, variables) =>
272278
{
273-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
279+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
274280
{
275281
assemblyInfoFileUpdater.Update();
276282

@@ -296,7 +302,7 @@ public void ShouldAddAssemblyVersionIfMissingFromInfoFile(string fileExtension)
296302

297303
VerifyAssemblyInfoFile("", fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
298304
{
299-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
305+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
300306
{
301307
assemblyInfoFileUpdater.Update();
302308

@@ -319,7 +325,7 @@ public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string a
319325

320326
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
321327
{
322-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
328+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
323329
{
324330
assemblyInfoFileUpdater.Update();
325331

@@ -342,7 +348,7 @@ public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsure
342348

343349
VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fileSystem, variables) =>
344350
{
345-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
351+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
346352
{
347353
assemblyInfoFileUpdater.Update();
348354

@@ -365,7 +371,7 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileE
365371

366372
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
367373
{
368-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
374+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
369375
{
370376
assemblyInfoFileUpdater.Update();
371377

@@ -388,7 +394,7 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace
388394

389395
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fileSystem, variables) =>
390396
{
391-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
397+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
392398
{
393399
assemblyInfoFileUpdater.Update();
394400

@@ -413,7 +419,7 @@ public void ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile
413419

414420
VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fileSystem, variables) =>
415421
{
416-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
422+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
417423
{
418424
assemblyInfoFileUpdater.Update();
419425

@@ -436,7 +442,7 @@ public void Issue1183_ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttr
436442

437443
VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fileSystem, variables) =>
438444
{
439-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
445+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
440446
{
441447
assemblyInfoFileUpdater.Update();
442448

@@ -459,7 +465,7 @@ public void ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionF
459465

460466
VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, verify: (fileSystem, variables) =>
461467
{
462-
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, false))
468+
using (var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false))
463469
{
464470
assemblyInfoFileUpdater.Update();
465471

@@ -469,7 +475,7 @@ public void ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionF
469475
});
470476
}
471477

472-
private static void VerifyAssemblyInfoFile(
478+
private void VerifyAssemblyInfoFile(
473479
string assemblyFileContent,
474480
string fileName,
475481
AssemblyVersioningScheme versioningScheme = AssemblyVersioningScheme.MajorMinorPatch,
@@ -493,7 +499,7 @@ private static void VerifyAssemblyInfoFile(
493499
});
494500

495501
var config = new TestEffectiveConfiguration(assemblyVersioningScheme: versioningScheme);
496-
var variables = VariableProvider.GetVariablesFor(version, config, false);
502+
var variables = variableProvider.GetVariablesFor(version, config, false);
497503

498504
verify?.Invoke(fileSystem, variables);
499505
}

src/GitVersionCore.Tests/BuildServers/VsoAgentBuildNumberTests.cs renamed to src/GitVersionCore.Tests/BuildServers/AzurePipelinesBuildNumberTests.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,30 @@
22
using Shouldly;
33
using GitVersion.BuildServers;
44
using GitVersion.Common;
5+
using GitVersion.Logging;
56

67
namespace GitVersionCore.Tests.BuildServers
78
{
89
[TestFixture]
9-
public class VsoAgentBuildNumberTests : TestBase
10+
public class AzurePipelinesBuildNumberTests : TestBase
1011
{
1112
string key = "BUILD_BUILDNUMBER";
1213
string logPrefix = "##vso[build.updatebuildnumber]";
13-
VsoAgent versionBuilder;
14+
AzurePipelines versionBuilder;
1415

1516
private IEnvironment environment;
17+
private ILog log;
1618

1719
[SetUp]
1820
public void SetUp()
1921
{
2022
environment = new TestEnvironment();
21-
versionBuilder = new VsoAgent(environment);
23+
log = new NullLog();
24+
versionBuilder = new AzurePipelines(environment, log);
2225
}
2326

2427
[TearDown]
25-
public void TearDownVsoAgentBuildNumberTest()
28+
public void TearDownAzurePipelinesBuildNumberTest()
2629
{
2730
environment.SetEnvironmentVariable(key, null);
2831
}
@@ -32,7 +35,7 @@ public void TearDownVsoAgentBuildNumberTest()
3235
[TestCase("$(GITVERSION_FULLSEMVER)", "1.0.0", "1.0.0")]
3336
[TestCase("$(GitVersion.FullSemVer)-Build.1234", "1.0.0", "1.0.0-Build.1234")]
3437
[TestCase("$(GITVERSION_FULLSEMVER)-Build.1234", "1.0.0", "1.0.0-Build.1234")]
35-
public void VsoAgentBuildNumberWithFullSemVer(string buildNumberFormat, string myFullSemVer, string expectedBuildNumber)
38+
public void AzurePipelinesBuildNumberWithFullSemVer(string buildNumberFormat, string myFullSemVer, string expectedBuildNumber)
3639
{
3740
environment.SetEnvironmentVariable(key, buildNumberFormat);
3841
var vars = new TestableVersionVariables(fullSemVer: myFullSemVer);
@@ -45,7 +48,7 @@ public void VsoAgentBuildNumberWithFullSemVer(string buildNumberFormat, string m
4548
[TestCase("$(GITVERSION_SEMVER)", "1.0.0", "1.0.0")]
4649
[TestCase("$(GitVersion.SemVer)-Build.1234", "1.0.0", "1.0.0-Build.1234")]
4750
[TestCase("$(GITVERSION_SEMVER)-Build.1234", "1.0.0", "1.0.0-Build.1234")]
48-
public void VsoAgentBuildNumberWithSemVer(string buildNumberFormat, string mySemVer, string expectedBuildNumber)
51+
public void AzurePipelinesBuildNumberWithSemVer(string buildNumberFormat, string mySemVer, string expectedBuildNumber)
4952
{
5053
environment.SetEnvironmentVariable(key, buildNumberFormat);
5154
var vars = new TestableVersionVariables(semVer: mySemVer);

src/GitVersionCore.Tests/BuildServers/VsoAgentTests.cs renamed to src/GitVersionCore.Tests/BuildServers/AzurePipelinesTests.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,23 @@
22
using Shouldly;
33
using GitVersion.BuildServers;
44
using GitVersion.Common;
5+
using GitVersion.Logging;
56

67
namespace GitVersionCore.Tests.BuildServers
78
{
89
[TestFixture]
9-
public class VsoAgentTests : TestBase
10+
public class AzurePipelinesTests : TestBase
1011
{
1112
string key = "BUILD_BUILDNUMBER";
1213

1314
private IEnvironment environment;
15+
private ILog log;
1416

1517
[SetUp]
1618
public void SetEnvironmentVariableForTest()
1719
{
1820
environment = new TestEnvironment();
21+
log = new NullLog();
1922
environment.SetEnvironmentVariable(key, "Some Build_Value $(GitVersion_FullSemVer) 20151310.3 $(UnknownVar) Release");
2023
}
2124

@@ -28,7 +31,7 @@ public void ClearEnvironmentVariableForTest()
2831
[Test]
2932
public void Develop_branch()
3033
{
31-
var versionBuilder = new VsoAgent(environment);
34+
var versionBuilder = new AzurePipelines(environment, log);
3235
var vars = new TestableVersionVariables(fullSemVer: "0.0.0-Unstable4");
3336
var vsVersion = versionBuilder.GenerateSetVersionMessage(vars);
3437

@@ -38,7 +41,7 @@ public void Develop_branch()
3841
[Test]
3942
public void EscapeValues()
4043
{
41-
var versionBuilder = new VsoAgent(environment);
44+
var versionBuilder = new AzurePipelines(environment, log);
4245
var vsVersion = versionBuilder.GenerateSetParameterMessage("Foo", "0.8.0-unstable568 Branch:'develop' Sha:'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb'");
4346

4447
vsVersion[0].ShouldBe("##vso[task.setvariable variable=GitVersion.Foo;]0.8.0-unstable568 Branch:'develop' Sha:'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb'");
@@ -49,7 +52,7 @@ public void MissingEnvShouldNotBlowUp()
4952
{
5053
environment.SetEnvironmentVariable(key, null);
5154

52-
var versionBuilder = new VsoAgent(environment);
55+
var versionBuilder = new AzurePipelines(environment, log);
5356
var semver = "0.0.0-Unstable4";
5457
var vars = new TestableVersionVariables(fullSemVer: semver);
5558
var vsVersion = versionBuilder.GenerateSetVersionMessage(vars);

0 commit comments

Comments
 (0)