Files
Terminal.Gui/UnitTests/Input/AnsiEscapeSequenceRequestsTests.cs
2024-11-11 16:02:45 +00:00

80 lines
3.5 KiB
C#

namespace Terminal.Gui.InputTests;
public class AnsiEscapeSequenceRequestsTests
{
[Fact]
public void Add_Tests ()
{
AnsiEscapeSequenceRequests.Clear ();
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
Assert.Single (AnsiEscapeSequenceRequests.Statuses);
Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
Assert.Equal (2, AnsiEscapeSequenceRequests.Statuses.Count);
Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
AnsiEscapeSequenceRequests.Clear ();
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
Assert.Equal (2, AnsiEscapeSequenceRequests.Statuses.Count);
Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
Assert.Equal (3, AnsiEscapeSequenceRequests.Statuses.Count);
Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
}
[Fact]
public void Constructor_Defaults ()
{
AnsiEscapeSequenceRequests.Clear ();
Assert.NotNull (AnsiEscapeSequenceRequests.Statuses);
Assert.Empty (AnsiEscapeSequenceRequests.Statuses);
}
[Fact]
public void Remove_Tests ()
{
AnsiEscapeSequenceRequests.Clear ();
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
AnsiEscapeSequenceRequests.HasResponse ("t", out AnsiEscapeSequenceRequestStatus seqReqStatus);
AnsiEscapeSequenceRequests.Remove (seqReqStatus);
Assert.Empty (AnsiEscapeSequenceRequests.Statuses);
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
AnsiEscapeSequenceRequests.HasResponse ("t", out seqReqStatus);
AnsiEscapeSequenceRequests.Remove (seqReqStatus);
Assert.Single (AnsiEscapeSequenceRequests.Statuses);
Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
AnsiEscapeSequenceRequests.HasResponse ("t", out seqReqStatus);
AnsiEscapeSequenceRequests.Remove (seqReqStatus);
Assert.Empty (AnsiEscapeSequenceRequests.Statuses);
}
[Fact]
public void Requested_Tests ()
{
AnsiEscapeSequenceRequests.Clear ();
Assert.False (AnsiEscapeSequenceRequests.HasResponse ("t", out AnsiEscapeSequenceRequestStatus seqReqStatus));
Assert.Null (seqReqStatus);
AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
Assert.False (AnsiEscapeSequenceRequests.HasResponse ("r", out seqReqStatus));
Assert.NotNull (seqReqStatus);
Assert.Equal ("t", seqReqStatus.AnsiRequest.Terminator);
Assert.True (AnsiEscapeSequenceRequests.HasResponse ("t", out seqReqStatus));
Assert.NotNull (seqReqStatus);
Assert.Equal ("t", seqReqStatus.AnsiRequest.Terminator);
}
[Fact]
public void Request_Initialization_AnsiEscapeSequenceResponse_Is_Null ()
{
AnsiEscapeSequenceRequest ansiRequest = new () { Request = "\u001b[0c", Terminator = "c"};
Assert.Null (ansiRequest.AnsiEscapeSequenceResponse);
}
}