forked from GitTools/GitVersion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJsonOutputOnBuildServerTest.cs
71 lines (56 loc) · 2.88 KB
/
JsonOutputOnBuildServerTest.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
using GitTools.Testing;
using GitVersion.BuildAgents;
using GitVersion.Helpers;
using GitVersion.OutputVariables;
using NUnit.Framework;
using Shouldly;
namespace GitVersion.App.Tests;
public class JsonOutputOnBuildServerTest
{
[Test]
public void BeingOnBuildServerDoesntOverrideOutputJson()
{
using var fixture = new RemoteRepositoryFixture();
fixture.Repository.MakeATaggedCommit("1.2.3");
fixture.Repository.MakeACommit();
var env = new KeyValuePair<string, string?>(TeamCity.EnvironmentVariableName, "8.0.0");
var result = GitVersionHelper.ExecuteIn(fixture.LocalRepositoryFixture.RepositoryPath, arguments: " /output json", environments: env);
result.ExitCode.ShouldBe(0);
result.Output.ShouldStartWith("{");
result.Output.TrimEnd().ShouldEndWith("}");
}
[Test]
public void BeingOnBuildServerWithOutputJsonDoesNotFail()
{
using var fixture = new RemoteRepositoryFixture();
fixture.Repository.MakeATaggedCommit("1.2.3");
fixture.Repository.MakeACommit();
var env = new KeyValuePair<string, string?>(TeamCity.EnvironmentVariableName, "8.0.0");
var result = GitVersionHelper.ExecuteIn(fixture.LocalRepositoryFixture.RepositoryPath, arguments: " /output json /output buildserver", environments: env);
result.ExitCode.ShouldBe(0);
const string expectedVersion = "0.0.1+5";
result.Output.ShouldContain($"##teamcity[buildNumber '{expectedVersion}']");
result.OutputVariables.ShouldNotBeNull();
result.OutputVariables.FullSemVer.ShouldBeEquivalentTo(expectedVersion);
}
[TestCase("", "GitVersion.json")]
[TestCase("version.json", "version.json")]
public void BeingOnBuildServerWithOutputJsonAndOutputFileDoesNotFail(string outputFile, string fileName)
{
using var fixture = new RemoteRepositoryFixture();
fixture.Repository.MakeATaggedCommit("1.2.3");
fixture.Repository.MakeACommit();
var env = new KeyValuePair<string, string?>(TeamCity.EnvironmentVariableName, "8.0.0");
var result = GitVersionHelper.ExecuteIn(fixture.LocalRepositoryFixture.RepositoryPath, arguments: $" /output json /output buildserver /output file /outputfile {outputFile}", environments: env);
result.ExitCode.ShouldBe(0);
const string expectedVersion = "0.0.1+5";
result.Output.ShouldContain($"##teamcity[buildNumber '{expectedVersion}']");
result.OutputVariables.ShouldNotBeNull();
result.OutputVariables.FullSemVer.ShouldBeEquivalentTo(expectedVersion);
var filePath = PathHelper.Combine(fixture.LocalRepositoryFixture.RepositoryPath, fileName);
var json = File.ReadAllText(filePath);
var outputVariables = VersionVariables.FromJson(json);
outputVariables.ShouldNotBeNull();
outputVariables.FullSemVer.ShouldBeEquivalentTo(expectedVersion);
}
}