Files
Terminal.Gui/UnitTests/Views/BarTests.cs
2024-06-17 08:14:53 -07:00

106 lines
3.0 KiB
C#

using JetBrains.Annotations;
namespace Terminal.Gui.ViewsTests;
[TestSubject (typeof (Bar))]
public class BarTests
{
[Fact]
public void Constructor_Defaults ()
{
var bar = new Bar ();
Assert.NotNull (bar);
Assert.True (bar.CanFocus);
Assert.IsType<DimAuto> (bar.Width);
Assert.IsType<DimAuto> (bar.Height);
// TOOD: more
}
[Fact]
public void Constructor_InitializesEmpty_WhenNoShortcutsProvided ()
{
var bar = new Bar ();
Assert.Empty (bar.Subviews);
}
[Fact]
public void Constructor_InitializesWithShortcuts_WhenProvided ()
{
var shortcuts = new List<Shortcut>
{
new Shortcut(Key.Empty, "Command1", null, null),
new Shortcut(Key.Empty, "Command2", null, null)
};
var bar = new Bar (shortcuts);
Assert.Equal (shortcuts.Count, bar.Subviews.Count);
for (int i = 0; i < shortcuts.Count; i++)
{
Assert.Same (shortcuts [i], bar.Subviews [i]);
}
}
[Fact]
public void OrientationProperty_SetsCorrectly ()
{
var bar = new Bar ();
Assert.Equal (Orientation.Horizontal, bar.Orientation); // Default value
bar.Orientation = Orientation.Vertical;
Assert.Equal (Orientation.Vertical, bar.Orientation);
}
[Fact]
public void AlignmentModesProperty_SetsCorrectly ()
{
var bar = new Bar ();
Assert.Equal (AlignmentModes.StartToEnd, bar.AlignmentModes); // Default value
bar.AlignmentModes = AlignmentModes.EndToStart;
Assert.Equal (AlignmentModes.EndToStart, bar.AlignmentModes);
}
[Fact]
public void AddShortcutAt_InsertsShortcutCorrectly ()
{
var bar = new Bar ();
var shortcut = new Shortcut (Key.Empty, "Command", null, null);
bar.AddShortcutAt (0, shortcut);
Assert.Contains (shortcut, bar.Subviews);
}
[Fact]
public void RemoveShortcut_RemovesShortcutCorrectly ()
{
var shortcut1 = new Shortcut (Key.Empty, "Command1", null, null);
var shortcut2 = new Shortcut (Key.Empty, "Command2", null, null);
var bar = new Bar (new List<Shortcut> { shortcut1, shortcut2 });
var removedShortcut = bar.RemoveShortcut (0);
Assert.Same (shortcut1, removedShortcut);
Assert.DoesNotContain (shortcut1, bar.Subviews);
Assert.Contains (shortcut2, bar.Subviews);
}
[Fact]
public void Layout_ChangesBasedOnOrientation ()
{
var shortcut1 = new Shortcut (Key.Empty, "Command1", null, null);
var shortcut2 = new Shortcut (Key.Empty, "Command2", null, null);
var bar = new Bar (new List<Shortcut> { shortcut1, shortcut2 });
bar.Orientation = Orientation.Horizontal;
bar.LayoutSubviews ();
// TODO: Assert specific layout expectations for horizontal orientation
bar.Orientation = Orientation.Vertical;
bar.LayoutSubviews ();
// TODO: Assert specific layout expectations for vertical orientation
}
}