Files
Terminal.Gui/Tests/UnitTestsParallelizable/Configuration/KeyCodeJsonConverterTests.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

30 lines
1.2 KiB
C#

using System.Text.Json;
namespace UnitTests_Parallelizable.ConfigurationTests;
public class KeyCodeJsonConverterTests
{
[Theory]
[InlineData (KeyCode.A, "A")]
[InlineData (KeyCode.A | KeyCode.ShiftMask, "A, ShiftMask")]
[InlineData (KeyCode.A | KeyCode.CtrlMask, "A, CtrlMask")]
[InlineData (KeyCode.A | KeyCode.AltMask | KeyCode.CtrlMask, "A, CtrlMask, AltMask")]
[InlineData ((KeyCode)'a' | KeyCode.AltMask | KeyCode.CtrlMask, "Space, A, CtrlMask, AltMask")]
[InlineData ((KeyCode)'a' | KeyCode.ShiftMask, "Space, A, ShiftMask")]
[InlineData (KeyCode.Delete | KeyCode.AltMask | KeyCode.CtrlMask, "Delete, CtrlMask, AltMask")]
[InlineData (KeyCode.D4, "D4")]
[InlineData (KeyCode.Esc, "Esc")]
public void TestKeyRoundTripConversion (KeyCode key, string expectedStringTo)
{
// Arrange
var options = new JsonSerializerOptions ();
options.Converters.Add (new KeyCodeJsonConverter ());
// Act
string json = JsonSerializer.Serialize (key, options);
var deserializedKey = JsonSerializer.Deserialize<KeyCode> (json, options);
// Assert
Assert.Equal (expectedStringTo, deserializedKey.ToString ());
}
}