123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- using System;
- using Xunit;
- using Xunit.Abstractions;
- namespace Terminal.Gui.ViewTests;
- public class AdornmentTests {
- readonly ITestOutputHelper _output;
- public AdornmentTests (ITestOutputHelper output)
- {
- _output = output;
- }
- [Fact]
- public void Setting_SuperView_Throws ()
- {
- var adornment = new Adornment (null);
- Assert.Throws<NotImplementedException> (() => adornment.SuperView = new View ());
- }
- [Fact]
- public void Setting_SuperViewRendersLineCanvas_Throws ()
- {
- var adornment = new Adornment (null);
- Assert.Throws<NotImplementedException> (() => adornment.SuperViewRendersLineCanvas = true);
- }
- [Fact]
- public void Setting_Thickness_Changes_Parent_Bounds ()
- {
- var parent = new View () {
- Width = 10,
- Height = 10
- };
- parent.BeginInit ();
- parent.EndInit ();
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Frame);
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Bounds);
- parent.Margin.Thickness = new Thickness (1);
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Frame);
- Assert.Equal (new Rect (0, 0, 8, 8), parent.Bounds);
- }
- [Fact]
- public void Setting_Thickness_Raises_ThicknessChanged ()
- {
- var adornment = new Adornment (null);
- var super = new View ();
- var raised = false;
- adornment.ThicknessChanged += (s, e) => {
- raised = true;
- Assert.Equal (Thickness.Empty, e.PreviousThickness);
- Assert.Equal (new Thickness (1, 2, 3, 4), e.Thickness);
- Assert.Equal (new Thickness (1, 2, 3, 4), adornment.Thickness);
- };
- adornment.Thickness = new Thickness (1, 2, 3, 4);
- Assert.True (raised);
- }
- [Fact]
- public void Setting_Bounds_Throws ()
- {
- var adornment = new Adornment (null);
- Assert.Throws<InvalidOperationException> (() => adornment.Bounds = new Rect (1, 2, 3, 4));
- }
- [Fact]
- public void GetAdornmentsThickness ()
- {
- var view = new View ();
- Assert.Equal (Thickness.Empty, view.GetAdornmentsThickness ());
- view.Margin.Thickness = new Thickness (1);
- Assert.Equal (new Thickness (1), view.GetAdornmentsThickness ());
- view.Border.Thickness = new Thickness (1);
- Assert.Equal (new Thickness (2), view.GetAdornmentsThickness ());
- view.Padding.Thickness = new Thickness (1);
- Assert.Equal (new Thickness (3), view.GetAdornmentsThickness ());
- view.Padding.Thickness = new Thickness (2);
- Assert.Equal (new Thickness (4), view.GetAdornmentsThickness ());
- view.Padding.Thickness = new Thickness (1, 2, 3, 4);
- Assert.Equal (new Thickness (3, 4, 5, 6), view.GetAdornmentsThickness ());
- view.Margin.Thickness = new Thickness (1, 2, 3, 4);
- Assert.Equal (new Thickness (3, 5, 7, 9), view.GetAdornmentsThickness ());
- view.Dispose ();
- }
- [Fact]
- public void FrameToScreen_Uses_Parent_Not_SuperView ()
- {
- var parent = new View () {
- X = 1,
- Y = 2,
- Width = 10,
- Height = 10
- };
- parent.BeginInit ();
- parent.EndInit ();
- Assert.Equal (new Rect (1, 2, 10, 10), parent.Frame);
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Bounds);
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Margin.Frame);
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Margin.Bounds);
- Assert.Null (parent.Margin.SuperView);
- Assert.Equal (new Rect (1, 2, 10, 10), parent.Margin.FrameToScreen ());
- }
- [Fact]
- public void BoundsToScreen_Uses_Parent_Not_SuperView ()
- {
- var parent = new View () {
- X = 1,
- Y = 2,
- Width = 10,
- Height = 10
- };
- parent.BeginInit ();
- parent.EndInit ();
- Assert.Equal (new Rect (1, 2, 10, 10), parent.Frame);
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Bounds);
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Margin.Frame);
- Assert.Equal (new Rect (0, 0, 10, 10), parent.Margin.Bounds);
- Assert.Null (parent.Margin.SuperView);
- var boundsAsScreen = parent.Margin.BoundsToScreen (new Rect (1, 2, 5, 5));
- Assert.Equal (new Rect (2, 4, 5, 5), boundsAsScreen);
- }
- }
|