using Azimuth; using UnitTestSharp; namespace Glass.UnitTests { public class ProgressBarMaterialTests : TestFixture { [IgnoreTest] private static ButtonMaterialTests.FixedSizeMaterial Sized(Scalar width, Scalar height) { return new ButtonMaterialTests.FixedSizeMaterial(new Vector(width, height)); } public class PreferredThicknessTests : TestFixture { public void NoParts_IsZero() { CheckEqual(0, default(ProgressBarMaterial).PreferredThickness(Orientation.Horizontal)); } public void Horizontal_IsTheHeightOfTheThickerOfEmptyAndFill() { var material = new ProgressBarMaterial { Empty = Sized(50, 10), Fill = Sized(5, 14) }; CheckEqual(14, material.PreferredThickness(Orientation.Horizontal)); } public void Vertical_IsTheWidthOfTheThickerOfEmptyAndFill() { var material = new ProgressBarMaterial { Empty = Sized(12, 50), Fill = Sized(8, 5) }; CheckEqual(12, material.PreferredThickness(Orientation.Vertical)); } public void BackgroundBorder_WrapsTheTrack() { var material = new ProgressBarMaterial { Background = ButtonMaterialTests.WithBorder(top: 2, bottom: 3, left: 1, right: 6), Fill = Sized(10, 10), }; CheckEqual(15, material.PreferredThickness(Orientation.Horizontal)); CheckEqual(17, material.PreferredThickness(Orientation.Vertical)); } public void BackgroundOwnPreference_WinsWhenThicker() { var material = new ProgressBarMaterial { Background = Sized(30, 40), Fill = Sized(10, 10) }; CheckEqual(40, material.PreferredThickness(Orientation.Horizontal)); } public void PartsThatFillWhateverTheyAreGiven_HaveNoPreference() { var material = new ProgressBarMaterial { Background = new Material(), Empty = new Material(), Fill = new Material(), }; CheckEqual(0, material.PreferredThickness(Orientation.Horizontal)); } } } }