2
0

EscSeqRequestsTests.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using UnitTests;
  2. namespace UnitTests_Parallelizable.DriverTests;
  3. public class EscSeqRequestsTests : FakeDriverBase
  4. {
  5. [Fact]
  6. public void Add_Tests ()
  7. {
  8. EscSeqRequests.Add ("t");
  9. Assert.Single (EscSeqRequests.Statuses);
  10. Assert.Equal ("t", EscSeqRequests.Statuses [^1].Terminator);
  11. Assert.Equal (1, EscSeqRequests.Statuses [^1].NumRequests);
  12. Assert.Equal (1, EscSeqRequests.Statuses [^1].NumOutstanding);
  13. EscSeqRequests.Add ("t", 2);
  14. Assert.Single (EscSeqRequests.Statuses);
  15. Assert.Equal ("t", EscSeqRequests.Statuses [^1].Terminator);
  16. Assert.Equal (3, EscSeqRequests.Statuses [^1].NumRequests);
  17. Assert.Equal (3, EscSeqRequests.Statuses [^1].NumOutstanding);
  18. EscSeqRequests.Clear ();
  19. EscSeqRequests.Add ("t", 2);
  20. Assert.Single (EscSeqRequests.Statuses);
  21. Assert.Equal ("t", EscSeqRequests.Statuses [^1].Terminator);
  22. Assert.Equal (2, EscSeqRequests.Statuses [^1].NumRequests);
  23. Assert.Equal (2, EscSeqRequests.Statuses [^1].NumOutstanding);
  24. EscSeqRequests.Add ("t", 3);
  25. Assert.Single (EscSeqRequests.Statuses);
  26. Assert.Equal ("t", EscSeqRequests.Statuses [^1].Terminator);
  27. Assert.Equal (5, EscSeqRequests.Statuses [^1].NumRequests);
  28. Assert.Equal (5, EscSeqRequests.Statuses [^1].NumOutstanding);
  29. EscSeqRequests.Clear ();
  30. }
  31. [Fact]
  32. public void Constructor_Defaults ()
  33. {
  34. Assert.NotNull (EscSeqRequests.Statuses);
  35. Assert.Empty (EscSeqRequests.Statuses);
  36. }
  37. [Fact]
  38. public void Remove_Tests ()
  39. {
  40. EscSeqRequests.Add ("t");
  41. EscSeqRequests.Remove ("t");
  42. Assert.Empty (EscSeqRequests.Statuses);
  43. EscSeqRequests.Add ("t", 2);
  44. EscSeqRequests.Remove ("t");
  45. Assert.Single (EscSeqRequests.Statuses);
  46. Assert.Equal ("t", EscSeqRequests.Statuses [^1].Terminator);
  47. Assert.Equal (2, EscSeqRequests.Statuses [^1].NumRequests);
  48. Assert.Equal (1, EscSeqRequests.Statuses [^1].NumOutstanding);
  49. EscSeqRequests.Remove ("t");
  50. Assert.Empty (EscSeqRequests.Statuses);
  51. EscSeqRequests.Clear ();
  52. }
  53. [Fact]
  54. public void HasResponse_Tests ()
  55. {
  56. Assert.False (EscSeqRequests.HasResponse ("t"));
  57. EscSeqRequests.Add ("t");
  58. Assert.False (EscSeqRequests.HasResponse ("r"));
  59. Assert.True (EscSeqRequests.HasResponse ("t"));
  60. Assert.Single (EscSeqRequests.Statuses);
  61. Assert.Equal ("t", EscSeqRequests.Statuses [^1].Terminator);
  62. Assert.Equal (1, EscSeqRequests.Statuses [^1].NumRequests);
  63. Assert.Equal (1, EscSeqRequests.Statuses [^1].NumOutstanding);
  64. EscSeqRequests.Remove ("t");
  65. Assert.Empty (EscSeqRequests.Statuses);
  66. }
  67. [Theory]
  68. [InlineData (null)]
  69. [InlineData ("")]
  70. public void Add_Null_Or_Empty_Terminator_Throws (string terminator)
  71. {
  72. if (terminator is null)
  73. {
  74. Assert.Throws<ArgumentNullException> (() => EscSeqRequests.Add (terminator));
  75. }
  76. else
  77. {
  78. Assert.Throws<ArgumentException> (() => EscSeqRequests.Add (terminator));
  79. }
  80. }
  81. [Theory]
  82. [InlineData (null)]
  83. [InlineData ("")]
  84. public void HasResponse_Null_Or_Empty_Terminator_Does_Not_Throws (string terminator)
  85. {
  86. EscSeqRequests.Add ("t");
  87. Assert.False (EscSeqRequests.HasResponse (terminator));
  88. EscSeqRequests.Clear ();
  89. }
  90. [Theory]
  91. [InlineData (null)]
  92. [InlineData ("")]
  93. public void Remove_Null_Or_Empty_Terminator_Throws (string terminator)
  94. {
  95. EscSeqRequests.Add ("t");
  96. if (terminator is null)
  97. {
  98. Assert.Throws<ArgumentNullException> (() => EscSeqRequests.Remove (terminator));
  99. }
  100. else
  101. {
  102. Assert.Throws<ArgumentException> (() => EscSeqRequests.Remove (terminator));
  103. }
  104. EscSeqRequests.Clear ();
  105. }
  106. }