var dotnet = fixture.BuiltDotnet;
- // Set specified CLI version = 9999.0.0-global-dummy
+ // Set specified CLI version = 9999.3.4-global-dummy
SetGlobalJsonVersion("SingleDigit-global.json");
// Add some dummy versions
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.1", "9999.0.0-dummy");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.4.1", "9999.3.4-dummy");
- // Specified CLI version: 9999.0.0-global-dummy
+ // Specified CLI version: 9999.3.4-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.1, 9999.0.0-dummy
- // Expected: 9999.0.1 from exe dir
+ // Exe: 9999.4.1, 9999.3.4-dummy
+ // Expected: no compatible version and a specific error message
+ dotnet.Exec("help")
+ .WorkingDirectory(_currentWorkingDir)
+ .WithUserProfile(_userDir)
+ .Environment(s_DefaultEnvironment)
+ .EnvironmentVariable("DOTNET_MULTILEVEL_LOOKUP", "0")
+ .CaptureStdOut()
+ .CaptureStdErr()
+ .Execute()
+ .Should()
+ .Fail()
+ .And
+ .HaveStdErrContaining("A compatible SDK version for global.json version");
+
+ // Add specified CLI version
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.3");
+
+ // Specified CLI version: 9999.3.4-global-dummy
+ // CWD: empty
+ // User: empty
+ // Exe: 9999.4.1, 9999.3.4-dummy, 9999.3.3
+ // Expected: no compatible version and a specific error message
+ dotnet.Exec("help")
+ .WorkingDirectory(_currentWorkingDir)
+ .WithUserProfile(_userDir)
+ .Environment(s_DefaultEnvironment)
+ .EnvironmentVariable("DOTNET_MULTILEVEL_LOOKUP", "0")
+ .CaptureStdOut()
+ .CaptureStdErr()
+ .Execute()
+ .Should()
+ .Fail()
+ .And
+ .HaveStdErrContaining("A compatible SDK version for global.json version");
+
+ // Add specified CLI version
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.4");
+
+ // Specified CLI version: 9999.3.4-global-dummy
+ // CWD: empty
+ // User: empty
+ // Exe: 9999.4.1, 9999.3.4-dummy, 9999.3.3, 9999.3.4
+ // Expected: 9999.3.4 from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.1", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.3.4", _dotnetSdkDllMessageTerminator));
// Add specified CLI version
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.4");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.5-dummy");
- // Specified CLI version: 9999.0.0-global-dummy
+ // Specified CLI version: 9999.3.4-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.1, 9999.0.0-dummy, 9999.0.4
- // Expected: 9999.0.4 from exe dir
+ // Exe: 9999.4.1, 9999.3.4-dummy, 9999.3.3, 9999.3.4, 9999.3.5-dummy
+ // Expected: 9999.3.5-dummy from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.4", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.3.5-dummy", _dotnetSdkDllMessageTerminator));
// Add specified CLI version
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.6-dummy");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.600");
- // Specified CLI version: 9999.0.0-global-dummy
+ // Specified CLI version: 9999.3.4-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.1, 9999.0.0-dummy, 9999.0.4, 9999.0.6-dummy
- // Expected: 9999.0.6-dummy from exe dir
+ // Exe: 9999.4.1, 9999.3.4-dummy, 9999.3.3, 9999.3.4, 9999.3.5-dummy, 9999.3.600
+ // Expected: 9999.3.5-dummy from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.6-dummy", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.3.5-dummy", _dotnetSdkDllMessageTerminator));
// Add specified CLI version
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.0-global-dummy");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.4-global-dummy");
- // Specified CLI version: 9999.0.0-global-dummy
+ // Specified CLI version: 9999.3.4-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.1, 9999.0.0-dummy, 9999.0.4, 9999.0.6-dummy, 9999.0.0-global-dummy
- // Expected: 9999.0.0-global-dummy from exe dir
+ // Exe: 9999.4.1, 9999.3.4-dummy, 9999.3.3, 9999.3.4, 9999.3.5-dummy, 9999.3.600, 9999.3.4-global-dummy
+ // Expected: 9999.3.4-global-dummy from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.0-global-dummy", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.3.4-global-dummy", _dotnetSdkDllMessageTerminator));
// Verify we have the expected sdk versions
dotnet.Exec("--list-sdks")
.Should()
.Pass()
.And
- .HaveStdOutContaining("9999.0.0-dummy")
+ .HaveStdOutContaining("9999.3.4-dummy")
+ .And
+ .HaveStdOutContaining("9999.3.4-global-dummy")
.And
- .HaveStdOutContaining("9999.0.0-global-dummy")
+ .HaveStdOutContaining("9999.4.1")
.And
- .HaveStdOutContaining("9999.0.1")
+ .HaveStdOutContaining("9999.3.3")
.And
- .HaveStdOutContaining("9999.0.4")
+ .HaveStdOutContaining("9999.3.4")
.And
- .HaveStdOutContaining("9999.0.6-dummy");
+ .HaveStdOutContaining("9999.3.600")
+ .And
+ .HaveStdOutContaining("9999.3.5-dummy");
}
[Fact]
var dotnet = fixture.BuiltDotnet;
- // Set specified CLI version = 9999.0.300-global-dummy
+ // Set specified CLI version = 9999.3.304-global-dummy
SetGlobalJsonVersion("TwoPart-global.json");
// Add some dummy versions
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.301", "9999.0.300-dummy");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.57", "9999.3.4-dummy");
+
+ // Specified CLI version: 9999.3.304-global-dummy
+ // CWD: empty
+ // User: empty
+ // Exe: 9999.3.57, 9999.3.4-dummy
+ // Expected: no compatible version and a specific error message
+ dotnet.Exec("help")
+ .WorkingDirectory(_currentWorkingDir)
+ .WithUserProfile(_userDir)
+ .Environment(s_DefaultEnvironment)
+ .EnvironmentVariable("DOTNET_MULTILEVEL_LOOKUP", "0")
+ .CaptureStdOut()
+ .CaptureStdErr()
+ .Execute()
+ .Should()
+ .Fail()
+ .And
+ .HaveStdErrContaining("A compatible SDK version for global.json version");
+
+ // Add specified CLI version
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.300", "9999.7.304-global-dummy");
- // Specified CLI version: 9999.0.300-global-dummy
+ // Specified CLI version: 9999.3.304-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.301, 9999.0.300-dummy
- // Expected: 9999.0.301 from exe dir
+ // Exe: 9999.3.57, 9999.3.4-dummy, 9999.3.300, 9999.7.304-global-dummy
+ // Expected: no compatible version and a specific error message
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.CaptureStdErr()
.Execute()
.Should()
- .Pass()
+ .Fail()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.301", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining("A compatible SDK version for global.json version");
// Add specified CLI version
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.304-dummy");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.304");
- // Specified CLI version: 9999.0.300-global-dummy
+ // Specified CLI version: 9999.3.304-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.301, 9999.0.300-dummy, 9999.0.304-dummy
- // Expected: 9999.0.304-dummy from exe dir
+ // Exe: 99999.3.57, 9999.3.4-dummy, 9999.3.300, 9999.7.304-global-dummy, 9999.3.304
+ // Expected: 9999.3.304 from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.304-dummy", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.3.304", _dotnetSdkDllMessageTerminator));
// Add specified CLI version
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.399", "9999.0.399-dummy", "9999.0.400");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.399", "9999.3.399-dummy", "9999.3.400");
- // Specified CLI version: 9999.0.300-global-dummy
+ // Specified CLI version: 9999.3.304-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.301, 9999.0.300-dummy, 9999.0.304-dummy, 9999.0.399, 9999.0.399-dummy, 9999.0.400
- // Expected: 9999.0.399 from exe dir
+ // Exe: 9999.3.57, 9999.3.4-dummy, 9999.3.300, 9999.7.304-global-dummy, 9999.3.304, 9999.3.399, 9999.3.399-dummy, 9999.3.400
+ // Expected: 9999.3.399 from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.399", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.3.399", _dotnetSdkDllMessageTerminator));
// Add specified CLI version
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.2400, 9999.0.60000000");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.2400, 9999.3.3004");
- // Specified CLI version: 9999.0.300-global-dummy
+ // Specified CLI version: 9999.3.304-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.301, 9999.0.300-dummy, 9999.0.304-dummy, 9999.0.399, 9999.0.399-dummy, 9999.0.400, 9999.0.2400, 9999.0.60000000
- // Expected: 9999.0.399 from exe dir
+ // Exe: 9999.3.57, 9999.3.4-dummy, 9999.3.300, 9999.7.304-global-dummy, 9999.3.304, 9999.3.399, 9999.3.399-dummy, 9999.3.400, 9999.3.2400, 9999.3.3004
+ // Expected: 9999.3.399 from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.399", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.3.399", _dotnetSdkDllMessageTerminator));
// Add specified CLI version
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.300-global-dummy");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.3.304-global-dummy");
- // Specified CLI version: 9999.0.300-global-dummy
+ // Specified CLI version: 9999.3.304-global-dummy
// CWD: empty
// User: empty
- // Exe: 9999.0.301, 9999.0.300-dummy, 9999.0.304-dummy, 9999.0.399, 9999.0.399-dummy, 9999.0.400, 9999.0.2400, 9999.0.60000000, 9999.0.300-global-dummy
- // Expected: 9999.0.300-global-dummy from exe dir
+ // Exe: 9999.3.57, 9999.3.4-dummy, 9999.3.300, 9999.7.304-global-dummy, 9999.3.304, 9999.3.399, 9999.3.399-dummy, 9999.3.400, 9999.3.2400, 9999.3.3004, 9999.3.304-global-dummy
+ // Expected: 9999.3.304-global-dummy from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.300-global-dummy", _dotnetSdkDllMessageTerminator));
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.3.304-global-dummy", _dotnetSdkDllMessageTerminator));
// Verify we have the expected sdk versions
dotnet.Exec("--list-sdks")
.Should()
.Pass()
.And
- .HaveStdOutContaining("9999.0.301")
+ .HaveStdOutContaining("9999.3.57")
+ .And
+ .HaveStdOutContaining("9999.3.4-dummy")
.And
- .HaveStdOutContaining("9999.0.300-dummy")
+ .HaveStdOutContaining("9999.3.300")
.And
- .HaveStdOutContaining("9999.0.304-dummy")
+ .HaveStdOutContaining("9999.7.304-global-dummy")
.And
- .HaveStdOutContaining("9999.0.399")
+ .HaveStdOutContaining("9999.3.399")
.And
- .HaveStdOutContaining("9999.0.399-dummy")
+ .HaveStdOutContaining("9999.3.399-dummy")
.And
- .HaveStdOutContaining("9999.0.400")
+ .HaveStdOutContaining("9999.3.400")
.And
- .HaveStdOutContaining("9999.0.2400")
+ .HaveStdOutContaining("9999.3.2400")
.And
- .HaveStdOutContaining("9999.0.60000000")
+ .HaveStdOutContaining("9999.3.3004")
.And
- .HaveStdOutContaining("9999.0.300-global-dummy");
+ .HaveStdOutContaining("9999.3.304")
+ .And
+ .HaveStdOutContaining("9999.3.304-global-dummy");
}
[Fact]
.HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.3-dummy", _dotnetSdkDllMessageTerminator));
// Add dummy versions in the exe dir
- AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.5");
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.3");
// Specified CLI version: none
// CWD: empty
// User: empty
- // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.5
- // Expected: 9999.0.5 from exe dir
+ // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.3
+ // Expected: 9999.0.3 from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.WithUserProfile(_userDir)
.Should()
.Pass()
.And
- .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.5", _dotnetSdkDllMessageTerminator));
-
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.3", _dotnetSdkDllMessageTerminator));
// Add dummy versions
AddAvailableSdkVersions(_userSdkBaseDir, "9999.0.200");
// Specified CLI version: none
// CWD: 10000.0.0 --> should not be picked
// User: 9999.0.200 --> should not be picked
- // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.5, 9999.0.100
+ // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.3, 9999.0.100
// Expected: 9999.0.100 from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
// Specified CLI version: none
// CWD: 10000.0.0 --> should not be picked
// User: 9999.0.200 --> should not be picked
- // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.5, 9999.0.100, 9999.0.80
+ // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.3, 9999.0.100, 9999.0.80
// Expected: 9999.0.100 from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
// Specified CLI version: none
// CWD: 10000.0.0 --> should not be picked
// User: 9999.0.200 --> should not be picked
- // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.5, 9999.0.100, 9999.0.80, 9999.0.5500000
+ // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.3, 9999.0.100, 9999.0.80, 9999.0.5500000
// Expected: 9999.0.5500000 from exe dir
dotnet.Exec("help")
.WorkingDirectory(_currentWorkingDir)
.And
.HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.5500000", _dotnetSdkDllMessageTerminator));
+ // Add a dummy version in the user dir
+ AddAvailableSdkVersions(_exeSdkBaseDir, "9999.0.52000000");
+
+ // Specified CLI version: none
+ // CWD: 10000.0.0 --> should not be picked
+ // User: 9999.0.200 --> should not be picked
+ // Exe: 9999.0.0, 9999.0.3-dummy, 9999.0.3, 9999.0.100, 9999.0.80, 9999.0.5500000, 9999.0.52000000
+ // Expected: 9999.0.5500000 from exe dir
+ dotnet.Exec("help")
+ .WorkingDirectory(_currentWorkingDir)
+ .WithUserProfile(_userDir)
+ .Environment(s_DefaultEnvironment)
+ .CaptureStdOut()
+ .CaptureStdErr()
+ .Execute()
+ .Should()
+ .Pass()
+ .And
+ .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "9999.0.52000000", _dotnetSdkDllMessageTerminator));
+
// Verify we have the expected sdk versions
dotnet.Exec("--list-sdks")
.WorkingDirectory(_currentWorkingDir)
.And
.HaveStdOutContaining("9999.0.3-dummy")
.And
- .HaveStdOutContaining("9999.0.5")
+ .HaveStdOutContaining("9999.0.3")
.And
.HaveStdOutContaining("9999.0.100")
.And
.HaveStdOutContaining("9999.0.80")
.And
- .HaveStdOutContaining("9999.0.5500000");
+ .HaveStdOutContaining("9999.0.5500000")
+ .And
+ .HaveStdOutContaining("9999.0.52000000");
}
// This method adds a list of new sdk version folders in the specified
}
// Put a global.json file in the cwd in order to specify a CLI
- // dummy version (9999.0.0-global-dummy)
public void SetGlobalJsonVersion(string globalJsonFileName)
{
string destFile = Path.Combine(_currentWorkingDir, "global.json");