public void Test_GenerateValueGreaterThan_WhenDoubleAndNoRule_ShouldRetValidValue()
        {
            IPropDef def = new PropDefFake {
                PropertyType = typeof(double)
            };
            var generator = new ValidValueGeneratorDouble(def);

            Assert.AreSame(typeof(double), def.PropertyType);
            Assert.IsEmpty(def.PropRules.OfType <PropRuleDouble>().ToList <PropRuleDouble>());
            var value = (double)generator.GenerateValidValueGreaterThan(1.7976931348623157E+308);

            Assert.IsNotNull(value);
            Assert.GreaterOrEqual(value, double.MaxValue);
        }
        public void Test_GenerateValueGreaterThan_WhenDoubleAndRule_LtNull_ShouldRetValidValueUsingRules()
        {
            IPropDef def = new PropDefFake {
                PropertyType = typeof(double)
            };

            def.AddPropRule(CreatePropRuleDouble(3.0, double.MaxValue));
            var generator = new ValidValueGeneratorDouble(def);

            Assert.AreSame(typeof(double), def.PropertyType);
            Assert.IsNotEmpty(def.PropRules.OfType <PropRuleDouble>().ToList <PropRuleDouble>());
            var propRule = def.PropRules.OfType <PropRuleDouble>().First <PropRuleDouble>();

            Assert.AreEqual(3.0, propRule.MinValue);
            Assert.AreEqual(1.7976931348623157E+308, propRule.MaxValue);
            var value = (double)generator.GenerateValidValueGreaterThan(null);

            Assert.IsNotNull(value);
            Assert.GreaterOrEqual(value, 3.0);
            Assert.LessOrEqual(value, double.MaxValue);
        }