Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// Licensed under the MIT license.

using Shouldly;
using System;
using System.IO;
using Xunit;

Expand All @@ -23,6 +24,8 @@ public void BasicGlobalJson()
GlobalJsonCreator globalJson = GlobalJsonCreator.Create(TestDirectory, "8.0.100")
.Save();

globalJson.FullPath.ShouldNotBeNull();

new FileInfo(globalJson.FullPath).ShouldExist();

string json = File.ReadAllText(globalJson.FullPath);
Expand All @@ -36,6 +39,28 @@ public void BasicGlobalJson()
StringCompareShould.IgnoreLineEndings);
}

[Fact]
public void GlobalJsonCreateWithoutDirectoryCanSaveToDirectoryInfo()
{
GlobalJsonCreator globalJson = GlobalJsonCreator
.Create(sdkVersion: "10.0.100")
.Save(TestDirectory);

globalJson.FullPath.ShouldBe(Path.Combine(TestDirectory.FullName, "global.json"));
new FileInfo(globalJson.FullPath!).ShouldExist();
}

[Fact]
public void GlobalJsonCreateWithoutDirectoryCanSaveToStringPath()
{
GlobalJsonCreator globalJson = GlobalJsonCreator
.Create(sdkVersion: "10.0.100")
.Save(TestDirectory.FullName);

globalJson.FullPath.ShouldBe(Path.Combine(TestDirectory.FullName, "global.json"));
new FileInfo(globalJson.FullPath!).ShouldExist();
}

[Fact]
public void GlobalJsonImplicitConversionToString()
{
Expand All @@ -51,6 +76,27 @@ public void GlobalJsonImplicitConversionToString()
StringCompareShould.IgnoreLineEndings);
}

[Fact]
public void GlobalJsonSaveWithoutDirectoryThrows()
{
Should.Throw<InvalidOperationException>(
() => GlobalJsonCreator.Create().Save());
}

[Fact]
public void GlobalJsonSdkRollForwardEnumValuesAreStable()
{
((int)GlobalJsonSdkRollForward.LatestPatch).ShouldBe(0);
((int)GlobalJsonSdkRollForward.LatestFeature).ShouldBe(1);
((int)GlobalJsonSdkRollForward.LatestMinor).ShouldBe(2);
((int)GlobalJsonSdkRollForward.LatestMajor).ShouldBe(3);
((int)GlobalJsonSdkRollForward.Disable).ShouldBe(4);
((int)GlobalJsonSdkRollForward.Patch).ShouldBe(5);
((int)GlobalJsonSdkRollForward.Feature).ShouldBe(6);
((int)GlobalJsonSdkRollForward.Minor).ShouldBe(7);
((int)GlobalJsonSdkRollForward.Major).ShouldBe(8);
}

[Fact]
public void GlobalJsonToJson()
{
Expand All @@ -75,6 +121,8 @@ public void GlobalJsonWithAllowPrerelease()
.Create(TestDirectory, "8.0.100", allowPrerelease: true)
.Save();

globalJson.FullPath.ShouldNotBeNull();

new FileInfo(globalJson.FullPath).ShouldExist();

string json = File.ReadAllText(globalJson.FullPath);
Expand All @@ -98,6 +146,8 @@ public void GlobalJsonWithMsbuildSdks()
.MSBuildSdk("Microsoft.Build.Traversal", "4.1.0")
.Save();

globalJson.FullPath.ShouldNotBeNull();

new FileInfo(globalJson.FullPath).ShouldExist();

string json = File.ReadAllText(globalJson.FullPath);
Expand All @@ -122,6 +172,8 @@ public void GlobalJsonWithRollForward()
.Create(TestDirectory, "10.0.100", GlobalJsonSdkRollForward.LatestMinor)
.Save();

globalJson.FullPath.ShouldNotBeNull();

new FileInfo(globalJson.FullPath).ShouldExist();

string json = File.ReadAllText(globalJson.FullPath);
Expand All @@ -133,6 +185,60 @@ public void GlobalJsonWithRollForward()
""rollForward"": ""latestMinor""
}
}",
StringCompareShould.IgnoreLineEndings);
}

[Theory]
[InlineData(GlobalJsonSdkRollForward.Patch, "patch")]
[InlineData(GlobalJsonSdkRollForward.Feature, "feature")]
[InlineData(GlobalJsonSdkRollForward.Minor, "minor")]
[InlineData(GlobalJsonSdkRollForward.Major, "major")]
[InlineData(GlobalJsonSdkRollForward.LatestPatch, "latestPatch")]
[InlineData(GlobalJsonSdkRollForward.LatestFeature, "latestFeature")]
[InlineData(GlobalJsonSdkRollForward.LatestMinor, "latestMinor")]
[InlineData(GlobalJsonSdkRollForward.LatestMajor, "latestMajor")]
[InlineData(GlobalJsonSdkRollForward.Disable, "disable")]
public void GlobalJsonWithRollForwardValues(GlobalJsonSdkRollForward rollForward, string expectedRollForwardValue)
{
string json = GlobalJsonCreator
.Create(TestDirectory, "10.0.100", rollForward)
.ToJson();

json.ShouldBe(
$@"{{
""sdk"": {{
""version"": ""10.0.100"",
""rollForward"": ""{expectedRollForwardValue}""
}}
}}",
StringCompareShould.IgnoreLineEndings);
}

[Fact]
public void GlobalJsonWithSdkErrorMessagePathsAndTestRunner()
{
string json = GlobalJsonCreator
.Create(sdkVersion: "10.0.100")
.SdkErrorMessage("Install .NET SDK 10.0.100")
.SdkPath("$host$")
.SdkPath(".dotnet")
.TestRunner("vstest")
.ToJson();

json.ShouldBe(
@"{
""sdk"": {
""version"": ""10.0.100"",
""paths"": [
""$host$"",
"".dotnet""
],
""errorMessage"": ""Install .NET SDK 10.0.100""
},
""test"": {
""runner"": ""vstest""
}
}",
StringCompareShould.IgnoreLineEndings);
}
}
Expand Down
Loading