using Azimuth; using UnitTestSharp; namespace Glass.UnitTests { public class ScrollAmountTests : TestFixture { public class CtorTests : TestFixture { public void SetsValueAndKind() { var amount = new ScrollAmount(15, ScrollAmount.AmountKind.FractionOfViewport); CheckEqual(15, amount.Value); CheckEqual(ScrollAmount.AmountKind.FractionOfViewport, amount.Kind); } } public class AbsoluteTests : TestFixture { public void SetsValueAndKind() { var amount = ScrollAmount.Absolute(42); CheckEqual(42, amount.Value); CheckEqual(ScrollAmount.AmountKind.Absolute, amount.Kind); } } public class FractionOfViewportTests : TestFixture { public void SetsValueAndKind() { var amount = ScrollAmount.FractionOfViewport(0.5); CheckEqual(0.5, amount.Value); CheckEqual(ScrollAmount.AmountKind.FractionOfViewport, amount.Kind); } } public class ImplicitConversionTests : TestFixture { public void FromScalar_IsAbsolute() { Scalar value = 15; ScrollAmount amount = value; CheckEqual(15, amount.Value); CheckEqual(ScrollAmount.AmountKind.Absolute, amount.Kind); } public void FromIntLiteral_IsAbsolute() { ScrollAmount amount = 15; CheckEqual(15, amount.Value); CheckEqual(ScrollAmount.AmountKind.Absolute, amount.Kind); } public void FromFloatLiteral_IsAbsolute() { ScrollAmount amount = 15f; CheckEqual(15, amount.Value); CheckEqual(ScrollAmount.AmountKind.Absolute, amount.Kind); } public void FromDoubleLiteral_IsAbsolute() { ScrollAmount amount = 15.0; CheckEqual(15, amount.Value); CheckEqual(ScrollAmount.AmountKind.Absolute, amount.Kind); } } public class ResolveTests : TestFixture { public void Absolute_IgnoresViewportSize() { CheckEqual(15, ScrollAmount.Absolute(15).Resolve(viewportSize: 1000)); } public void FractionOfViewport_MultipliesByViewportSize() { CheckEqual(25, ScrollAmount.FractionOfViewport(0.25).Resolve(viewportSize: 100)); } public void FractionOfViewport_ZeroViewportSize_IsZero() { CheckEqual(0, ScrollAmount.FractionOfViewport(0.25).Resolve(viewportSize: 0)); } } } }