ApplicationScreenTests.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using UnitTests;
  2. using Xunit.Abstractions;
  3. namespace UnitTests.ApplicationTests;
  4. public class ApplicationScreenTests
  5. {
  6. public ApplicationScreenTests (ITestOutputHelper output)
  7. {
  8. }
  9. [Fact]
  10. public void ClearScreenNextIteration_Resets_To_False_After_LayoutAndDraw ()
  11. {
  12. // Arrange
  13. Application.ResetState (true);
  14. Application.Init ("fake");
  15. // Act
  16. Application.ClearScreenNextIteration = true;
  17. Application.LayoutAndDraw ();
  18. // Assert
  19. Assert.False (Application.ClearScreenNextIteration);
  20. // Cleanup
  21. Application.ResetState (true);
  22. }
  23. [Fact]
  24. [AutoInitShutdown]
  25. public void ClearContents_Called_When_Top_Frame_Changes ()
  26. {
  27. Toplevel top = new Toplevel ();
  28. SessionToken rs = Application.Begin (top);
  29. // Arrange
  30. var clearedContentsRaised = 0;
  31. Application.Driver!.ClearedContents += OnClearedContents;
  32. // Act
  33. Application.LayoutAndDraw ();
  34. // Assert
  35. Assert.Equal (0, clearedContentsRaised);
  36. // Act
  37. Application.TopRunnable!.SetNeedsLayout ();
  38. Application.LayoutAndDraw ();
  39. // Assert
  40. Assert.Equal (0, clearedContentsRaised);
  41. // Act
  42. Application.TopRunnable.X = 1;
  43. Application.LayoutAndDraw ();
  44. // Assert
  45. Assert.Equal (1, clearedContentsRaised);
  46. // Act
  47. Application.TopRunnable.Width = 10;
  48. Application.LayoutAndDraw ();
  49. // Assert
  50. Assert.Equal (2, clearedContentsRaised);
  51. // Act
  52. Application.TopRunnable.Y = 1;
  53. Application.LayoutAndDraw ();
  54. // Assert
  55. Assert.Equal (3, clearedContentsRaised);
  56. // Act
  57. Application.TopRunnable.Height = 10;
  58. Application.LayoutAndDraw ();
  59. // Assert
  60. Assert.Equal (4, clearedContentsRaised);
  61. Application.Driver!.ClearedContents -= OnClearedContents;
  62. Application.End (rs);
  63. return;
  64. void OnClearedContents (object e, EventArgs a) { clearedContentsRaised++; }
  65. }
  66. [Fact]
  67. [SetupFakeApplication]
  68. public void Screen_Changes_OnScreenChanged_Without_Call_Application_Init ()
  69. {
  70. Assert.Equal (new (0, 0, 80, 25), Application.Screen);
  71. // Act
  72. Application.Driver!.SetScreenSize (120, 30);
  73. // Assert
  74. Assert.Equal (new (0, 0, 120, 30), Application.Screen);
  75. }
  76. }