PopoverBaseImplTests.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. namespace ApplicationTests.Popover;
  2. public class PopoverBaseImplTests
  3. {
  4. // Minimal concrete implementation for testing
  5. private class TestPopover : PopoverBaseImpl
  6. { }
  7. [Fact]
  8. public void Constructor_SetsDefaults ()
  9. {
  10. var popover = new TestPopover ();
  11. Assert.Equal ("popoverBaseImpl", popover.Id);
  12. Assert.True (popover.CanFocus);
  13. Assert.Equal (Dim.Fill (), popover.Width);
  14. Assert.Equal (Dim.Fill (), popover.Height);
  15. Assert.True (popover.ViewportSettings.HasFlag (ViewportSettingsFlags.Transparent));
  16. Assert.True (popover.ViewportSettings.HasFlag (ViewportSettingsFlags.TransparentMouse));
  17. }
  18. [Fact]
  19. public void Runnable_Property_CanBeSetAndGet ()
  20. {
  21. var popover = new TestPopover ();
  22. var top = new Runnable ();
  23. popover.Current = top;
  24. Assert.Same (top, popover.Current);
  25. }
  26. [Fact]
  27. public void Show_ThrowsIfPopoverMissingRequiredFlags ()
  28. {
  29. var popover = new TestPopover ();
  30. // Popover missing Transparent flags
  31. popover.ViewportSettings = ViewportSettingsFlags.None; // Remove required flags
  32. var popoverManager = new ApplicationPopover ();
  33. // Test missing Transparent flags
  34. Assert.ThrowsAny<Exception> (() => popoverManager.Show (popover));
  35. }
  36. [Fact]
  37. public void Show_ThrowsIfPopoverMissingQuitCommand ()
  38. {
  39. var popover = new TestPopover ();
  40. // Popover missing Command.Quit binding
  41. popover.KeyBindings.Clear (); // Remove all key bindings
  42. var popoverManager = new ApplicationPopover ();
  43. Assert.ThrowsAny<Exception> (() => popoverManager.Show (popover));
  44. }
  45. [Fact]
  46. public void Show_Throw_If_Not_Registered ()
  47. {
  48. var popover = new TestPopover ();
  49. var popoverManager = new ApplicationPopover ();
  50. Assert.Throws<InvalidOperationException> (() => popoverManager.Show (popover));
  51. }
  52. }