AnsiEscapeSequenceRequestsTests.cs 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. namespace Terminal.Gui.InputTests;
  2. public class AnsiEscapeSequenceRequestsTests
  3. {
  4. [Fact]
  5. public void Add_Tests ()
  6. {
  7. AnsiEscapeSequenceRequests.Clear ();
  8. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  9. Assert.Single (AnsiEscapeSequenceRequests.Statuses);
  10. Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
  11. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  12. Assert.Equal (2, AnsiEscapeSequenceRequests.Statuses.Count);
  13. Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
  14. AnsiEscapeSequenceRequests.Clear ();
  15. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  16. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  17. Assert.Equal (2, AnsiEscapeSequenceRequests.Statuses.Count);
  18. Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
  19. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  20. Assert.Equal (3, AnsiEscapeSequenceRequests.Statuses.Count);
  21. Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
  22. }
  23. [Fact]
  24. public void Constructor_Defaults ()
  25. {
  26. AnsiEscapeSequenceRequests.Clear ();
  27. Assert.NotNull (AnsiEscapeSequenceRequests.Statuses);
  28. Assert.Empty (AnsiEscapeSequenceRequests.Statuses);
  29. }
  30. [Fact]
  31. public void Remove_Tests ()
  32. {
  33. AnsiEscapeSequenceRequests.Clear ();
  34. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  35. AnsiEscapeSequenceRequests.HasResponse ("t", out AnsiEscapeSequenceRequestStatus seqReqStatus);
  36. AnsiEscapeSequenceRequests.Remove (seqReqStatus);
  37. Assert.Empty (AnsiEscapeSequenceRequests.Statuses);
  38. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  39. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  40. AnsiEscapeSequenceRequests.HasResponse ("t", out seqReqStatus);
  41. AnsiEscapeSequenceRequests.Remove (seqReqStatus);
  42. Assert.Single (AnsiEscapeSequenceRequests.Statuses);
  43. Assert.Equal ("t", AnsiEscapeSequenceRequests.Statuses.ToArray () [^1].AnsiRequest.Terminator);
  44. AnsiEscapeSequenceRequests.HasResponse ("t", out seqReqStatus);
  45. AnsiEscapeSequenceRequests.Remove (seqReqStatus);
  46. Assert.Empty (AnsiEscapeSequenceRequests.Statuses);
  47. }
  48. [Fact]
  49. public void Requested_Tests ()
  50. {
  51. AnsiEscapeSequenceRequests.Clear ();
  52. Assert.False (AnsiEscapeSequenceRequests.HasResponse ("t", out AnsiEscapeSequenceRequestStatus seqReqStatus));
  53. Assert.Null (seqReqStatus);
  54. AnsiEscapeSequenceRequests.Add (new () { Request = "", Terminator = "t" });
  55. Assert.False (AnsiEscapeSequenceRequests.HasResponse ("r", out seqReqStatus));
  56. Assert.NotNull (seqReqStatus);
  57. Assert.Equal ("t", seqReqStatus.AnsiRequest.Terminator);
  58. Assert.True (AnsiEscapeSequenceRequests.HasResponse ("t", out seqReqStatus));
  59. Assert.NotNull (seqReqStatus);
  60. Assert.Equal ("t", seqReqStatus.AnsiRequest.Terminator);
  61. }
  62. [Fact]
  63. public void Request_Initialization_AnsiEscapeSequenceResponse_Is_Null ()
  64. {
  65. AnsiEscapeSequenceRequest ansiRequest = new () { Request = "\u001b[0c", Terminator = "c"};
  66. Assert.Null (ansiRequest.AnsiEscapeSequenceResponse);
  67. }
  68. }