MarginTests.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using UnitTests;
  2. using Xunit.Abstractions;
  3. namespace UnitTests.ViewTests;
  4. public class MarginTests (ITestOutputHelper output)
  5. {
  6. [Fact]
  7. [SetupFakeDriver]
  8. public void Margin_Is_Transparent ()
  9. {
  10. ((IFakeConsoleDriver)Application.Driver!).SetBufferSize (5, 5);
  11. var view = new View { Height = 3, Width = 3 };
  12. view.Margin!.Diagnostics = ViewDiagnosticFlags.Thickness;
  13. view.Margin.Thickness = new (1);
  14. Application.Top = new Toplevel ();
  15. Application.TopLevels.Push (Application.Top);
  16. Application.Top.SetScheme (new()
  17. {
  18. Normal = new (Color.Red, Color.Green), Focus = new (Color.Green, Color.Red)
  19. });
  20. Application.Top.Add (view);
  21. Assert.Equal (ColorName16.Red, view.Margin.GetAttributeForRole (VisualRole.Normal).Foreground.GetClosestNamedColor16 ());
  22. Assert.Equal (ColorName16.Red, Application.Top.GetAttributeForRole (VisualRole.Normal).Foreground.GetClosestNamedColor16 ());
  23. Application.Top.BeginInit ();
  24. Application.Top.EndInit ();
  25. Application.LayoutAndDraw();
  26. DriverAssert.AssertDriverContentsAre (
  27. @"",
  28. output
  29. );
  30. DriverAssert.AssertDriverAttributesAre ("0", output, null, Application.Top.GetAttributeForRole (VisualRole.Normal));
  31. Application.ResetState (true);
  32. }
  33. [Fact]
  34. [SetupFakeDriver]
  35. public void Margin_ViewPortSettings_Not_Transparent_Is_NotTransparent ()
  36. {
  37. ((IFakeConsoleDriver)Application.Driver!).SetBufferSize (5, 5);
  38. var view = new View { Height = 3, Width = 3 };
  39. view.Margin!.Diagnostics = ViewDiagnosticFlags.Thickness;
  40. view.Margin.Thickness = new (1);
  41. view.Margin.ViewportSettings = ViewportSettingsFlags.None;
  42. Application.Top = new Toplevel ();
  43. Application.TopLevels.Push (Application.Top);
  44. Application.Top.SetScheme (new ()
  45. {
  46. Normal = new (Color.Red, Color.Green), Focus = new (Color.Green, Color.Red)
  47. });
  48. Application.Top.Add (view);
  49. Assert.Equal (ColorName16.Red, view.Margin.GetAttributeForRole (VisualRole.Normal).Foreground.GetClosestNamedColor16 ());
  50. Assert.Equal (ColorName16.Red, Application.Top.GetAttributeForRole (VisualRole.Normal).Foreground.GetClosestNamedColor16 ());
  51. Application.Top.BeginInit ();
  52. Application.Top.EndInit ();
  53. Application.LayoutAndDraw ();
  54. DriverAssert.AssertDriverContentsAre (
  55. @"
  56. MMM
  57. M M
  58. MMM",
  59. output
  60. );
  61. DriverAssert.AssertDriverAttributesAre ("0", output, null, Application.Top.GetAttributeForRole (VisualRole.Normal));
  62. Application.ResetState (true);
  63. }
  64. }