-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCISettingsTests.cs
91 lines (76 loc) · 2.93 KB
/
CISettingsTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// ReSharper disable InconsistentNaming
namespace CSharpInteractive.Tests;
public class CISettingsTests
{
private readonly Mock<IHostEnvironment> _hostEnvironment = new();
private readonly Mock<IEnvironment> _environment = new();
[Theory]
[InlineData("Abc", "1", true)]
[InlineData("Abc", null, true)]
[InlineData("Abc", " ", true)]
[InlineData("Abc", "", true)]
[InlineData(null, "1", true)]
[InlineData("", "", false)]
[InlineData("", " ", false)]
[InlineData(" ", "", false)]
[InlineData(" ", " ", false)]
[InlineData(" ", null, false)]
[InlineData(null, " ", false)]
[InlineData(null, null, false)]
public void ShouldProvideIsUnderTeamCity(string? projectName, string? version, bool expectedIsUnderTeamCity)
{
// Given
var settings = CreateInstance();
_hostEnvironment.Setup(i => i.GetEnvironmentVariable("TEAMCITY_PROJECT_NAME")).Returns(projectName);
_hostEnvironment.Setup(i => i.GetEnvironmentVariable("TEAMCITY_VERSION")).Returns(version);
// When
var actualIsUnderTeamCity = settings.CIType;
// Then
actualIsUnderTeamCity.ShouldBe(expectedIsUnderTeamCity ? CIType.TeamCity : CIType.Unknown);
}
[Theory]
[InlineData("Abc", true)]
[InlineData("", false)]
[InlineData(" ", false)]
[InlineData(null, false)]
public void ShouldProvideIsGitLab(string? pipelineId, bool expectedIsUnderGitLab)
{
// Given
var settings = CreateInstance();
_hostEnvironment.Setup(i => i.GetEnvironmentVariable("CI_PIPELINE_ID")).Returns(pipelineId);
// When
var actualIsUnderGitLab = settings.CIType;
// Then
actualIsUnderGitLab.ShouldBe(expectedIsUnderGitLab ? CIType.GitLab : CIType.Unknown);
}
[Theory]
[InlineData("Abc", true)]
[InlineData("", false)]
[InlineData(" ", false)]
[InlineData(null, false)]
public void ShouldProvideIsAzureDevOps(string? pipelineId, bool expectedIsUnderAzureDevOps)
{
// Given
var settings = CreateInstance();
_hostEnvironment.Setup(i => i.GetEnvironmentVariable("TF_BUILD")).Returns(pipelineId);
// When
var actualIsUnderAzureDevOps = settings.CIType;
// Then
actualIsUnderAzureDevOps.ShouldBe(expectedIsUnderAzureDevOps ? CIType.AzureDevOps : CIType.Unknown);
}
[Theory]
[InlineData("Abc", "Abc")]
[InlineData(null, "ROOT")]
[InlineData(" ", "ROOT")]
public void ShouldProvideFlowId(string? flowId, string expectedFlowId)
{
// Given
var settings = CreateInstance();
_hostEnvironment.Setup(i => i.GetEnvironmentVariable("TEAMCITY_PROCESS_FLOW_ID")).Returns(flowId);
// When
var actualFlowId = settings.FlowId;
// Then
actualFlowId.ShouldBe(expectedFlowId);
}
private CISettings CreateInstance() => new(_hostEnvironment.Object, _environment.Object);
}