Files
Terminal.Gui/Tests/UnitTestsParallelizable/Configuration/SchemeManagerTests.cs
Tig fdeaa8331b Fixes #4298 - Updates test namespaces (#4299)
* Refactored test namespaces.
Moved some tests that were in wrong project.
Code cleanup

* Parrallel -> Parallel
2025-10-20 14:14:38 -06:00

81 lines
2.3 KiB
C#

#nullable enable
using System.Diagnostics;
using System.Text.Json;
namespace UnitTests_Parallelizable.ConfigurationTests;
public class SchemeManagerTests
{
[Fact]
public void GetHardCodedSchemes_Gets_HardCodedDefaults ()
{
var hardCoded = SchemeManager.GetHardCodedSchemes ();
// Check that the hardcoded schemes are not null
Assert.NotNull (hardCoded);
// Check that the hardcoded schemes are not empty
Assert.NotEmpty (hardCoded);
}
[Fact]
public void RemoveScheme_Throws_On_BuiltIn_Scheme ()
{
// Built-in scheme name
Assert.Throws<InvalidOperationException> (() => SchemeManager.RemoveScheme ("Base"));
}
[Fact]
public void RemoveScheme_Throws_On_NonExistent_Scheme ()
{
Assert.Throws<InvalidOperationException> (() => SchemeManager.RemoveScheme ("DoesNotExist"));
}
[Fact]
public void GetScheme_By_Enum_Returns_Scheme ()
{
var scheme = SchemeManager.GetScheme (Schemes.Base);
Assert.NotNull (scheme);
Assert.IsType<Scheme> (scheme);
}
[Fact]
public void GetSchemeNames_Returns_All_Scheme_Names ()
{
var names = SchemeManager.GetSchemeNames ();
Assert.NotNull (names);
Assert.Contains ("Base", names);
Assert.Contains ("Menu", names);
Assert.Contains ("Dialog", names);
Assert.Contains ("Toplevel", names);
Assert.Contains ("Error", names);
}
[Fact]
public void SchemesToSchemeName_And_SchemeNameToSchemes_RoundTrip ()
{
foreach (Schemes s in Enum.GetValues (typeof (Schemes)))
{
var name = SchemeManager.SchemesToSchemeName (s);
Assert.NotNull (name);
var roundTrip = SchemeManager.SchemeNameToSchemes (name!);
Assert.NotNull (roundTrip);
Assert.Equal (name, roundTrip);
}
}
[Fact]
public void GetScheme_Throws_On_Invalid_Enum ()
{
// Use an invalid enum value (not defined in Schemes)
Assert.Throws<ArgumentException> (() => SchemeManager.GetScheme ((Schemes)999));
}
[Fact]
public void GetScheme_Throws_On_Invalid_String ()
{
Assert.Throws<KeyNotFoundException> (() => SchemeManager.GetScheme ("NotAScheme"));
}
}