using Xunit.Abstractions; namespace Terminal.Gui.ViewsTests; public class FrameViewTests (ITestOutputHelper output) { [Fact] public void Constructors_Defaults () { var fv = new FrameView (); Assert.Equal (string.Empty, fv.Title); Assert.Equal (string.Empty, fv.Text); Assert.Equal (LineStyle.Single, fv.BorderStyle); fv = new() { Title = "Test" }; Assert.Equal ("Test", fv.Title); Assert.Equal (string.Empty, fv.Text); Assert.Equal (LineStyle.Single, fv.BorderStyle); fv = new() { X = 1, Y = 2, Width = 10, Height = 20, Title = "Test" }; Assert.Equal ("Test", fv.Title); Assert.Equal (string.Empty, fv.Text); fv.BeginInit (); fv.EndInit (); Assert.Equal (LineStyle.Single, fv.BorderStyle); Assert.Equal (new (1, 2, 10, 20), fv.Frame); } [Fact] [AutoInitShutdown] public void Draw_Defaults () { ((FakeDriver)Application.Driver!).SetBufferSize (10, 10); var fv = new FrameView (); Assert.Equal (string.Empty, fv.Title); Assert.Equal (string.Empty, fv.Text); var top = new Toplevel (); top.Add (fv); Application.Begin (top); Assert.Equal (new (0, 0, 0, 0), fv.Frame); TestHelpers.AssertDriverContentsWithFrameAre (@"", output); fv.Height = 5; fv.Width = 5; Assert.Equal (new (0, 0, 5, 5), fv.Frame); Application.Refresh (); TestHelpers.AssertDriverContentsWithFrameAre ( @" ┌───┐ │ │ │ │ │ │ └───┘", output ); fv.X = 1; fv.Y = 2; Assert.Equal (new (1, 2, 5, 5), fv.Frame); Application.Refresh (); TestHelpers.AssertDriverContentsWithFrameAre ( @" ┌───┐ │ │ │ │ │ │ └───┘", output ); fv.X = -1; fv.Y = -2; Assert.Equal (new (-1, -2, 5, 5), fv.Frame); Application.Refresh (); TestHelpers.AssertDriverContentsWithFrameAre ( @" │ │ ───┘", output ); fv.X = 7; fv.Y = 8; Assert.Equal (new (7, 8, 5, 5), fv.Frame); Application.Refresh (); TestHelpers.AssertDriverContentsWithFrameAre ( @" ┌── │ ", output ); top.Dispose (); } }