FakeDriverRenderingTests.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using Xunit;
  2. using Xunit.Abstractions;
  3. namespace UnitTests_Parallelizable.Drivers;
  4. /// <summary>
  5. /// Tests for FakeDriver functionality including rendering and basic driver operations.
  6. /// These tests prove that FakeDriver can be used independently for testing Terminal.Gui applications.
  7. /// </summary>
  8. public class FakeDriverRenderingTests (ITestOutputHelper output)
  9. {
  10. private readonly ITestOutputHelper _output = output;
  11. #region View Rendering Tests
  12. [Fact]
  13. public void FakeDriver_Can_Render_Simple_Label ()
  14. {
  15. // Arrange
  16. var driver = new FakeDriver ();
  17. driver.Init ();
  18. var label = new Label { Text = "Hello World", X = 0, Y = 0 };
  19. label.Driver = driver;
  20. label.BeginInit ();
  21. label.EndInit ();
  22. // Act
  23. label.SetNeedsDraw ();
  24. label.Draw ();
  25. // Assert
  26. Assert.NotNull (driver.Contents);
  27. Assert.Equal (80, driver.Cols);
  28. Assert.Equal (25, driver.Rows);
  29. driver.End ();
  30. label.Dispose ();
  31. }
  32. [Fact]
  33. public void FakeDriver_Can_Render_View_With_Border ()
  34. {
  35. // Arrange
  36. var driver = new FakeDriver ();
  37. driver.Init ();
  38. var window = new Window
  39. {
  40. Title = "Test Window",
  41. X = 0,
  42. Y = 0,
  43. Width = 40,
  44. Height = 10,
  45. BorderStyle = LineStyle.Single
  46. };
  47. window.Driver = driver;
  48. window.BeginInit ();
  49. window.EndInit ();
  50. // Act
  51. window.SetNeedsDraw ();
  52. window.Draw ();
  53. // Assert - Check that contents buffer was written to
  54. Assert.NotNull (driver.Contents);
  55. driver.End ();
  56. window.Dispose ();
  57. }
  58. [Fact]
  59. public void FakeDriver_Default_Screen_Size ()
  60. {
  61. // Arrange & Act
  62. var driver = new FakeDriver ();
  63. driver.Init ();
  64. // Assert
  65. Assert.Equal (80, driver.Cols);
  66. Assert.Equal (25, driver.Rows);
  67. driver.End ();
  68. }
  69. [Fact]
  70. public void FakeDriver_Can_Change_Screen_Size ()
  71. {
  72. // Arrange
  73. var driver = new FakeDriver ();
  74. driver.Init ();
  75. // Act
  76. driver.SetBufferSize (120, 40);
  77. // Assert
  78. Assert.Equal (120, driver.Cols);
  79. Assert.Equal (40, driver.Rows);
  80. driver.End ();
  81. }
  82. #endregion
  83. }