using Amphora; using Azimuth; using System; using UnitTestSharp; namespace Glass.UnitTests { public class ClickBehaviorTests : TestFixture { public class DoubleClickTimeTests : TestFixture { public void DefaultsToHalfASecond() { CheckEqual(Duration.FromMilliseconds(500), new ClickBehavior().DoubleClickTime); } public void Assigned_IsKept() { var behavior = new ClickBehavior { DoubleClickTime = Duration.FromMilliseconds(250) }; CheckEqual(Duration.FromMilliseconds(250), behavior.DoubleClickTime); } public void Zero_IsKept() { var behavior = new ClickBehavior { DoubleClickTime = Duration.Zero }; CheckEqual(Duration.Zero, behavior.DoubleClickTime); } public void Forever_IsKept() { var behavior = new ClickBehavior { DoubleClickTime = Duration.Forever }; CheckEqual(Duration.Forever, behavior.DoubleClickTime); } public void Negative_Throws() { var behavior = new ClickBehavior(); CheckThrow(typeof(ArgumentOutOfRangeException)); behavior.DoubleClickTime = Duration.FromMilliseconds(-1); } public void Rejected_LeavesTheTimeAlone() { var behavior = new ClickBehavior(); try { behavior.DoubleClickTime = Duration.FromMilliseconds(-1); } catch (ArgumentOutOfRangeException) { } CheckEqual(Duration.FromMilliseconds(500), behavior.DoubleClickTime); } } public class DoubleClickSizeTests : TestFixture { public void DefaultsToFourByFour() { CheckEqual(new Vector(4, 4), new ClickBehavior().DoubleClickSize); } public void Assigned_IsKept() { var behavior = new ClickBehavior { DoubleClickSize = new Vector(6, 8) }; CheckEqual(new Vector(6, 8), behavior.DoubleClickSize); } public void Zero_IsKept() { var behavior = new ClickBehavior { DoubleClickSize = Vector.Zero }; CheckEqual(Vector.Zero, behavior.DoubleClickSize); } public void NegativeWidth_Throws() { var behavior = new ClickBehavior(); CheckThrow(typeof(ArgumentOutOfRangeException)); behavior.DoubleClickSize = new Vector(-1, 4); } public void NegativeHeight_Throws() { var behavior = new ClickBehavior(); CheckThrow(typeof(ArgumentOutOfRangeException)); behavior.DoubleClickSize = new Vector(4, -1); } public void NaNWidth_Throws() { var behavior = new ClickBehavior(); CheckThrow(typeof(ArgumentOutOfRangeException)); behavior.DoubleClickSize = new Vector(double.NaN, 4); } public void NaNHeight_Throws() { var behavior = new ClickBehavior(); CheckThrow(typeof(ArgumentOutOfRangeException)); behavior.DoubleClickSize = new Vector(4, double.NaN); } public void Rejected_LeavesTheSizeAlone() { var behavior = new ClickBehavior(); try { behavior.DoubleClickSize = new Vector(-1, 4); } catch (ArgumentOutOfRangeException) { } CheckEqual(new Vector(4, 4), behavior.DoubleClickSize); } } } }