mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-27 00:07:58 +01:00
83 lines
1.7 KiB
C#
83 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Terminal.Gui;
|
|
using Xunit;
|
|
|
|
namespace UnitTests {
|
|
public class TreeViewTests
|
|
{
|
|
#region Test Setup Methods
|
|
class Factory
|
|
{
|
|
public Car[] Cars {get;set;}
|
|
};
|
|
class Car {
|
|
|
|
};
|
|
|
|
private TreeView CreateTree()
|
|
{
|
|
return CreateTree(out _, out _, out _);
|
|
}
|
|
|
|
private TreeView CreateTree(out Factory factory1, out Car car1, out Car car2)
|
|
{
|
|
car1 = new Car();
|
|
car2 = new Car();
|
|
|
|
factory1 = new Factory()
|
|
{
|
|
Cars = new []{car1 ,car2}
|
|
};
|
|
|
|
var tree = new TreeView();
|
|
tree.ChildrenGetter = (s)=> s is Factory f ? f.Cars: null;
|
|
tree.AddObject(factory1);
|
|
|
|
return tree;
|
|
}
|
|
#endregion
|
|
|
|
[Fact]
|
|
public void ScrollOffset_CannotBeNegative()
|
|
{
|
|
var tree = CreateTree();
|
|
|
|
Assert.Equal(0,tree.ScrollOffset);
|
|
|
|
tree.ScrollOffset = -100;
|
|
Assert.Equal(0,tree.ScrollOffset);
|
|
|
|
tree.ScrollOffset = 10;
|
|
Assert.Equal(10,tree.ScrollOffset);
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void GetScrollOffsetOf_MinusOneForUnRevealed()
|
|
{
|
|
var tree = CreateTree(out Factory f, out Car c1, out Car c2);
|
|
|
|
Assert.Equal(0,tree.GetScrollOffsetOf(f));
|
|
Assert.Equal(-1,tree.GetScrollOffsetOf(c1));
|
|
Assert.Equal(-1,tree.GetScrollOffsetOf(c2));
|
|
|
|
//reveal it by expanding the root object
|
|
tree.Expand(f);
|
|
|
|
Assert.Equal(0,tree.GetScrollOffsetOf(f));
|
|
Assert.Equal(1,tree.GetScrollOffsetOf(c1));
|
|
Assert.Equal(2,tree.GetScrollOffsetOf(c2));
|
|
|
|
tree.Collapse(f);
|
|
|
|
Assert.Equal(0,tree.GetScrollOffsetOf(f));
|
|
Assert.Equal(-1,tree.GetScrollOffsetOf(c1));
|
|
Assert.Equal(-1,tree.GetScrollOffsetOf(c2));
|
|
}
|
|
}
|
|
}
|