using Azimuth; using UnitTestSharp; namespace Glass.UnitTests { public class ScrollBarMaterialTests : TestFixture { [IgnoreTest] private static ScrollTrackTests.FixedSizeMaterial Sized(Scalar width, Scalar height) { return new ScrollTrackTests.FixedSizeMaterial(new Vector(width, height)); } public class PreferredThicknessTests : TestFixture { public void NoParts_IsZero() { CheckEqual(0, default(ScrollBarMaterial).PreferredThickness(Orientation.Vertical)); } public void Vertical_IsTheWidthOfTheThickestPart() { var material = new ScrollBarMaterial { DecrementButton = Sized(20, 20), IncrementButton = Sized(16, 20), Thumb = Sized(12, 30), Track = Sized(8, 100), }; CheckEqual(20, material.PreferredThickness(Orientation.Vertical)); } public void Horizontal_IsTheHeightOfTheThickestPart() { var material = new ScrollBarMaterial { DecrementButton = Sized(20, 14), Thumb = Sized(30, 10), }; CheckEqual(14, material.PreferredThickness(Orientation.Horizontal)); } public void TheSameMaterial_ReadsAcrossWhicheverAxisTheBarRunsAlong() { var material = new ScrollBarMaterial { DecrementButton = Sized(20, 14) }; CheckEqual(20, material.PreferredThickness(Orientation.Vertical)); CheckEqual(14, material.PreferredThickness(Orientation.Horizontal)); } public void EveryPartCounts_TheThumbTheTrackAndTheBackground() { var material = new ScrollBarMaterial { DecrementButton = Sized(10, 10) }; material.Thumb = Sized(12, 10); CheckEqual(12, material.PreferredThickness(Orientation.Vertical)); material.Track = Sized(14, 10); CheckEqual(14, material.PreferredThickness(Orientation.Vertical)); material.Background = Sized(16, 10); CheckEqual(16, material.PreferredThickness(Orientation.Vertical)); } public void EveryButtonCounts_TheIncrementAsWellAsTheDecrement() { var material = new ScrollBarMaterial { DecrementButton = Sized(10, 10), IncrementButton = Sized(18, 10), }; CheckEqual(18, material.PreferredThickness(Orientation.Vertical)); } public void APartThatFillsWhateverItIsGiven_HasNoPreferenceAndIsLeftOut() { var material = new ScrollBarMaterial { DecrementButton = Sized(20, 20), Track = new Material() }; CheckEqual(20, material.PreferredThickness(Orientation.Vertical)); } public void OnlyFillingParts_IsZero() { var material = new ScrollBarMaterial { Track = new Material() }; CheckEqual(0, material.PreferredThickness(Orientation.Vertical)); } } } }