using System; using System.Globalization; using UnitTestSharp; namespace Glass.UnitTests { public class NumberFieldBehaviorTests : TestFixture { public class CultureTests : TestFixture { public void DefaultsToInvariant() { CheckEqual(CultureInfo.InvariantCulture, new NumberFieldBehavior().Culture); } public void Assigned_IsKept() { CultureInfo french = CultureInfo.GetCultureInfo("fr-FR"); CheckEqual(french, new NumberFieldBehavior { Culture = french }.Culture); } public void Null_Throws() { var behavior = new NumberFieldBehavior(); CheckThrow(typeof(ArgumentNullException)); behavior.Culture = null; } } public class ScrubDistancePerStepTests : TestFixture { public void DefaultsToEight() { CheckEqual(8, new NumberFieldBehavior().ScrubDistancePerStep); } public void Assigned_IsKept() { CheckEqual(3, new NumberFieldBehavior { ScrubDistancePerStep = 3 }.ScrubDistancePerStep); } public void Zero_Throws() { var behavior = new NumberFieldBehavior(); CheckThrow(typeof(ArgumentOutOfRangeException)); behavior.ScrubDistancePerStep = 0; } public void NaN_Throws() { var behavior = new NumberFieldBehavior(); CheckThrow(typeof(ArgumentOutOfRangeException)); behavior.ScrubDistancePerStep = double.NaN; } public void Rejected_LeavesTheDistanceAlone() { var behavior = new NumberFieldBehavior(); try { behavior.ScrubDistancePerStep = 0; } catch (ArgumentOutOfRangeException) { } CheckEqual(8, behavior.ScrubDistancePerStep); } } } }