Skip to content

Commit dde2129

Browse files
committed
(test) use DI for tests
1 parent cdb6597 commit dde2129

File tree

85 files changed

+808
-953
lines changed

Some content is hidden

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

85 files changed

+808
-953
lines changed

src/GitVersionCore.Tests/AssemblyFileVersionTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Shouldly;
33
using GitVersion.Extensions;
44
using GitVersion;
5+
using GitVersionCore.Tests.Helpers;
56

67
namespace GitVersionCore.Tests
78
{

src/GitVersionCore.Tests/AssemblyInfoFileUpdaterTests.cs

Lines changed: 53 additions & 56 deletions
Large diffs are not rendered by default.

src/GitVersionCore.Tests/BuildServers/AzurePipelinesBuildNumberTests.cs

Lines changed: 0 additions & 60 deletions
This file was deleted.

src/GitVersionCore.Tests/BuildServers/AzurePipelinesTests.cs

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,30 @@
22
using Shouldly;
33
using GitVersion.BuildServers;
44
using GitVersion;
5-
using GitVersion.Logging;
65
using GitVersionCore.Tests.Helpers;
6+
using Microsoft.Extensions.DependencyInjection;
77

88
namespace GitVersionCore.Tests.BuildServers
99
{
1010
[TestFixture]
1111
public class AzurePipelinesTests : TestBase
1212
{
13-
private readonly string key = "BUILD_BUILDNUMBER";
13+
private const string key = "BUILD_BUILDNUMBER";
14+
private const string logPrefix = "##vso[build.updatebuildnumber]";
1415

1516
private IEnvironment environment;
16-
private ILog log;
17+
private AzurePipelines buildServer;
1718

1819
[SetUp]
1920
public void SetEnvironmentVariableForTest()
2021
{
21-
environment = new TestEnvironment();
22-
log = new NullLog();
22+
var sp = ConfigureServices(services =>
23+
{
24+
services.AddSingleton<AzurePipelines>();
25+
});
26+
environment = sp.GetService<IEnvironment>();
27+
buildServer = sp.GetService<AzurePipelines>();
28+
2329
environment.SetEnvironmentVariable(key, "Some Build_Value $(GitVersion_FullSemVer) 20151310.3 $(UnknownVar) Release");
2430
}
2531

@@ -32,18 +38,16 @@ public void ClearEnvironmentVariableForTest()
3238
[Test]
3339
public void DevelopBranch()
3440
{
35-
var versionBuilder = new AzurePipelines(environment, log);
3641
var vars = new TestableVersionVariables(fullSemVer: "0.0.0-Unstable4");
37-
var vsVersion = versionBuilder.GenerateSetVersionMessage(vars);
42+
var vsVersion = buildServer.GenerateSetVersionMessage(vars);
3843

3944
vsVersion.ShouldBe("##vso[build.updatebuildnumber]Some Build_Value 0.0.0-Unstable4 20151310.3 $(UnknownVar) Release");
4045
}
4146

4247
[Test]
4348
public void EscapeValues()
4449
{
45-
var versionBuilder = new AzurePipelines(environment, log);
46-
var vsVersion = versionBuilder.GenerateSetParameterMessage("Foo", "0.8.0-unstable568 Branch:'develop' Sha:'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb'");
50+
var vsVersion = buildServer.GenerateSetParameterMessage("Foo", "0.8.0-unstable568 Branch:'develop' Sha:'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb'");
4751

4852
vsVersion[0].ShouldBe("##vso[task.setvariable variable=GitVersion.Foo;isOutput=true]0.8.0-unstable568 Branch:'develop' Sha:'ee69bff1087ebc95c6b43aa2124bd58f5722e0cb'");
4953
}
@@ -53,11 +57,34 @@ public void MissingEnvShouldNotBlowUp()
5357
{
5458
environment.SetEnvironmentVariable(key, null);
5559

56-
var versionBuilder = new AzurePipelines(environment, log);
5760
var semver = "0.0.0-Unstable4";
5861
var vars = new TestableVersionVariables(fullSemVer: semver);
59-
var vsVersion = versionBuilder.GenerateSetVersionMessage(vars);
62+
var vsVersion = buildServer.GenerateSetVersionMessage(vars);
6063
vsVersion.ShouldBe(semver);
6164
}
65+
66+
[TestCase("$(GitVersion.FullSemVer)", "1.0.0", "1.0.0")]
67+
[TestCase("$(GITVERSION_FULLSEMVER)", "1.0.0", "1.0.0")]
68+
[TestCase("$(GitVersion.FullSemVer)-Build.1234", "1.0.0", "1.0.0-Build.1234")]
69+
[TestCase("$(GITVERSION_FULLSEMVER)-Build.1234", "1.0.0", "1.0.0-Build.1234")]
70+
public void AzurePipelinesBuildNumberWithFullSemVer(string buildNumberFormat, string myFullSemVer, string expectedBuildNumber)
71+
{
72+
environment.SetEnvironmentVariable(key, buildNumberFormat);
73+
var vars = new TestableVersionVariables(fullSemVer: myFullSemVer);
74+
var logMessage = buildServer.GenerateSetVersionMessage(vars);
75+
logMessage.ShouldBe(logPrefix + expectedBuildNumber);
76+
}
77+
78+
[TestCase("$(GitVersion.SemVer)", "1.0.0", "1.0.0")]
79+
[TestCase("$(GITVERSION_SEMVER)", "1.0.0", "1.0.0")]
80+
[TestCase("$(GitVersion.SemVer)-Build.1234", "1.0.0", "1.0.0-Build.1234")]
81+
[TestCase("$(GITVERSION_SEMVER)-Build.1234", "1.0.0", "1.0.0-Build.1234")]
82+
public void AzurePipelinesBuildNumberWithSemVer(string buildNumberFormat, string mySemVer, string expectedBuildNumber)
83+
{
84+
environment.SetEnvironmentVariable(key, buildNumberFormat);
85+
var vars = new TestableVersionVariables(semVer: mySemVer);
86+
var logMessage = buildServer.GenerateSetVersionMessage(vars);
87+
logMessage.ShouldBe(logPrefix + expectedBuildNumber);
88+
}
6289
}
6390
}

src/GitVersionCore.Tests/BuildServers/BuildServerBaseTests.cs

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,25 @@
55
using GitVersion.OutputVariables;
66
using GitVersion;
77
using GitVersion.Logging;
8-
using GitVersion.VersionCalculation;
98
using GitVersionCore.Tests.Helpers;
9+
using Microsoft.Extensions.DependencyInjection;
1010

1111
namespace GitVersionCore.Tests.BuildServers
1212
{
1313
[TestFixture]
1414
public class BuildServerBaseTests : TestBase
1515
{
16-
17-
private IEnvironment environment;
18-
private ILog log;
19-
private IVariableProvider variableProvider;
16+
private IVariableProvider buildServer;
17+
private IServiceProvider sp;
2018

2119
[SetUp]
2220
public void SetUp()
2321
{
24-
environment = new TestEnvironment();
25-
log = new NullLog();
26-
var metaDataCalculator = new MetaDataCalculator();
27-
var baseVersionCalculator = new BaseVersionCalculator(log, null);
28-
var mainlineVersionCalculator = new MainlineVersionCalculator(log, metaDataCalculator);
29-
var nextVersionCalculator = new NextVersionCalculator(log, metaDataCalculator, baseVersionCalculator, mainlineVersionCalculator);
30-
variableProvider = new VariableProvider(nextVersionCalculator, new TestEnvironment());
22+
sp = ConfigureServices(services =>
23+
{
24+
services.AddSingleton<BuildServer>();
25+
});
26+
buildServer = sp.GetService<IVariableProvider>();
3127
}
3228

3329
[Test]
@@ -48,8 +44,9 @@ public void BuildNumberIsFullSemVer()
4844

4945
var config = new TestEffectiveConfiguration();
5046

51-
var variables = variableProvider.GetVariablesFor(semanticVersion, config, false);
52-
new BuildServer(environment, log).WriteIntegration(writes.Add, variables);
47+
var variables = this.buildServer.GetVariablesFor(semanticVersion, config, false);
48+
var buildServer = sp.GetService<BuildServer>();
49+
buildServer.WriteIntegration(writes.Add, variables);
5350

5451
writes[1].ShouldBe("1.2.3-beta.1+5");
5552
}

src/GitVersionCore.Tests/BuildServers/CodeBuildTests.cs

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,46 +7,41 @@
77
using GitVersion.BuildServers;
88
using GitVersion;
99
using GitVersion.OutputVariables;
10-
using GitVersion.Logging;
11-
using GitVersion.VersionCalculation;
1210
using GitVersionCore.Tests.Helpers;
11+
using Microsoft.Extensions.DependencyInjection;
1312

1413
namespace GitVersionCore.Tests.BuildServers
1514
{
1615
[TestFixture]
1716
public sealed class CodeBuildTests : TestBase
1817
{
1918
private IEnvironment environment;
20-
private ILog log;
21-
private IVariableProvider variableProvider;
19+
private IServiceProvider sp;
20+
private CodeBuild buildServer;
2221

2322
[SetUp]
2423
public void SetUp()
2524
{
26-
log = new NullLog();
27-
28-
environment = new TestEnvironment();
29-
var metaDataCalculator = new MetaDataCalculator();
30-
var baseVersionCalculator = new BaseVersionCalculator(log, null);
31-
var mainlineVersionCalculator = new MainlineVersionCalculator(log, metaDataCalculator);
32-
var nextVersionCalculator = new NextVersionCalculator(log, metaDataCalculator, baseVersionCalculator, mainlineVersionCalculator);
33-
variableProvider = new VariableProvider(nextVersionCalculator, new TestEnvironment());
25+
sp = ConfigureServices(services =>
26+
{
27+
services.AddSingleton<CodeBuild>();
28+
});
29+
environment = sp.GetService<IEnvironment>();
30+
buildServer = sp.GetService<CodeBuild>();
3431
}
3532

3633
[Test]
3734
public void CorrectlyIdentifiesCodeBuildPresence()
3835
{
3936
environment.SetEnvironmentVariable(CodeBuild.HeadRefEnvironmentName, "a value");
40-
var cb = new CodeBuild(environment, log);
41-
cb.CanApplyToCurrentContext().ShouldBe(true);
37+
buildServer.CanApplyToCurrentContext().ShouldBe(true);
4238
}
4339

4440
[Test]
4541
public void PicksUpBranchNameFromEnvironment()
4642
{
4743
environment.SetEnvironmentVariable(CodeBuild.HeadRefEnvironmentName, "refs/heads/master");
48-
var cb = new CodeBuild(environment, log);
49-
cb.GetCurrentBranch(false).ShouldBe("refs/heads/master");
44+
buildServer.GetCurrentBranch(false).ShouldBe("refs/heads/master");
5045
}
5146

5247
[Test]
@@ -65,7 +60,7 @@ public void WriteAllVariablesToTheTextWriter()
6560
}
6661
}
6762

68-
private void AssertVariablesAreWrittenToFile(string f)
63+
private void AssertVariablesAreWrittenToFile(string file)
6964
{
7065
var writes = new List<string>();
7166
var semanticVersion = new SemanticVersion
@@ -82,17 +77,19 @@ private void AssertVariablesAreWrittenToFile(string f)
8277

8378
var config = new TestEffectiveConfiguration();
8479

80+
var variableProvider = sp.GetService<IVariableProvider>();
81+
8582
var variables = variableProvider.GetVariablesFor(semanticVersion, config, false);
8683

87-
var j = new CodeBuild(environment, log, f);
84+
buildServer.WithPropertyFile(file);
8885

89-
j.WriteIntegration(writes.Add, variables);
86+
buildServer.WriteIntegration(writes.Add, variables);
9087

9188
writes[1].ShouldBe("1.2.3-beta.1+5");
9289

93-
File.Exists(f).ShouldBe(true);
90+
File.Exists(file).ShouldBe(true);
9491

95-
var props = File.ReadAllText(f);
92+
var props = File.ReadAllText(file);
9693

9794
props.ShouldContain("GitVersion_Major=1");
9895
props.ShouldContain("GitVersion_Minor=2");
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
1+
using System;
12
using NUnit.Framework;
23
using GitVersion.BuildServers;
3-
using GitVersion;
4-
using GitVersion.Logging;
54
using GitVersionCore.Tests.Helpers;
5+
using Microsoft.Extensions.DependencyInjection;
66

77
namespace GitVersionCore.Tests.BuildServers
88
{
99
[TestFixture]
1010
public class ContinuaCiTests : TestBase
1111
{
12-
private IEnvironment environment;
13-
private ILog log;
12+
private IServiceProvider sp;
1413

1514
[SetUp]
1615
public void SetUp()
1716
{
18-
environment = new TestEnvironment();
19-
log = new NullLog();
17+
sp = ConfigureServices(services =>
18+
{
19+
services.AddSingleton<ContinuaCi>();
20+
});
2021
}
2122

2223
[Test]
2324
public void GenerateBuildVersion()
2425
{
25-
var versionBuilder = new ContinuaCi(environment, log);
26+
var buildServer = sp.GetService<ContinuaCi>();
2627
var vars = new TestableVersionVariables(fullSemVer: "0.0.0-Beta4.7");
27-
var continuaCiVersion = versionBuilder.GenerateSetVersionMessage(vars);
28+
var continuaCiVersion = buildServer.GenerateSetVersionMessage(vars);
2829
Assert.AreEqual("@@continua[setBuildVersion value='0.0.0-Beta4.7']", continuaCiVersion);
2930
}
30-
3131
}
3232
}

0 commit comments

Comments
 (0)