示例#1
0
        public void Test_GenerateValue_WhenIntAndRule_AndNextValGTMaxVal_ShouldRestartAtMin()
        {
            //---------------Set up test pack-------------------

            IPropDef def = new PropDefFake {
                PropertyType = typeof(int)
            };
            const int minValue = 3;
            const int maxValue = 4;

            def.AddPropRule(CreatePropRuleInt(minValue, maxValue));
            ValidValueGenerator generator = new ValidValueGeneratorIncrementalInt(def);

            //---------------Assert Precondition----------------
            Assert.AreSame(typeof(int), def.PropertyType);
            Assert.IsNotEmpty(def.PropRules.OfType <PropRuleInteger>().ToList());
            PropRuleInteger propRule = def.PropRules.OfType <PropRuleInteger>().First();

            Assert.AreEqual(minValue, propRule.MinValue);
            Assert.AreEqual(maxValue, propRule.MaxValue);
            //---------------Execute Test ----------------------
            var value1 = (int)generator.GenerateValidValue();
            var value2 = (int)generator.GenerateValidValue();
            int value3 = (int)generator.GenerateValidValue();

            //---------------Test Result -----------------------
            Assert.AreEqual(minValue, value1);
            Assert.AreEqual(maxValue, value2);
            Assert.AreEqual(minValue, value3);
        }
示例#2
0
        public void Test_GenerateValueLessThan_WhenIntAndRule_WhenRuleMoreRestrictive_ShouldRetValidValue()
        {
            IPropDef def = new PropDefFake {
                PropertyType = typeof(int)
            };
            const int minValue      = 3;
            const int maxValue      = 5;
            const int lessThanValue = int.MaxValue - 77;

            def.AddPropRule(CreatePropRuleInt(minValue, maxValue));
            ValidValueGeneratorIncrementalInt generator = new ValidValueGeneratorIncrementalInt(def);

            //---------------Assert Precondition----------------
            Assert.AreSame(typeof(int), def.PropertyType);
            Assert.IsNotEmpty(def.PropRules.OfType <PropRuleInteger>().ToList());
            PropRuleInteger propRule = def.PropRules.OfType <PropRuleInteger>().First();

            Assert.AreEqual(minValue, propRule.MinValue);
            Assert.AreEqual(maxValue, propRule.MaxValue);
            //---------------Execute Test ----------------------
            int value = (int)generator.GenerateValidValueLessThan(lessThanValue);

            //---------------Test Result -----------------------
            Assert.IsNotNull(value);
            Assert.GreaterOrEqual(value, minValue);
            Assert.LessOrEqual(value, lessThanValue);
            Assert.LessOrEqual(value, maxValue);
        }
示例#3
0
        public void Test_GenerateValue_WhenIntAndRule_ShouldRetValidValue()
        {
            //---------------Set up test pack-------------------

            IPropDef def = new PropDefFake {
                PropertyType = typeof(int)
            };

            def.AddPropRule(CreatePropRuleInt(3, 7));
            ValidValueGenerator generator = new ValidValueGeneratorInt(def);

            //---------------Assert Precondition----------------
            Assert.AreSame(typeof(int), def.PropertyType);
            Assert.IsNotEmpty(def.PropRules.OfType <PropRuleInteger>().ToList());
            PropRuleInteger propRule = def.PropRules.OfType <PropRuleInteger>().First();

            Assert.AreEqual(3, propRule.MinValue);
            Assert.AreEqual(7, propRule.MaxValue);
            int value = (int)generator.GenerateValidValue();

            //---------------Test Result -----------------------
            Assert.IsNotNull(value);
            Assert.GreaterOrEqual(value, 3);
            Assert.LessOrEqual(value, 7);
        }
示例#4
0
        public void Test_WithValueGTMax_ShouldReturnErrorMessage()
        {
            //---------------Set up test pack-------------------
            var rule = new PropRuleInteger("num", "TestMessage", 5, 10);
            var errorMessage = "";

            Assert.IsFalse(rule.IsPropValueValid("Propname", 12, ref errorMessage));
            Assert.IsTrue(errorMessage.Length > 0);
        }
示例#5
0
        public void Test_WithNullValue_ShouldReturnEmptyErrorMessage()
        {
            //---------------Set up test pack-------------------
            var rule = new PropRuleInteger("num", "TestMessage", 5, 10);
            var errorMessage = "";

            Assert.IsTrue(rule.IsPropValueValid("Propname", null, ref errorMessage));
            Assert.IsTrue(errorMessage.Length == 0);
        }
示例#6
0
        public void Test_WithNullValue_ShouldReturnEmptyErrorMessage()
        {
            //---------------Set up test pack-------------------
            var rule         = new PropRuleInteger("num", "TestMessage", 5, 10);
            var errorMessage = "";

            Assert.IsTrue(rule.IsPropValueValid("Propname", null, ref errorMessage));
            Assert.IsTrue(errorMessage.Length == 0);
        }
示例#7
0
        public void Test_WithValueGTMax_ShouldReturnErrorMessage()
        {
            //---------------Set up test pack-------------------
            var rule         = new PropRuleInteger("num", "TestMessage", 5, 10);
            var errorMessage = "";

            Assert.IsFalse(rule.IsPropValueValid("Propname", 12, ref errorMessage));
            Assert.IsTrue(errorMessage.Length > 0);
        }
示例#8
0
        public void Test_MaxAndMinValueAreSetOnIComparableInterface()
        {
            //---------------Set up test pack-------------------
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            IPropRuleComparable <int> rule = new PropRuleInteger("num", "TestMessage", 5, 10);

            //---------------Test Result -----------------------
            Assert.AreEqual(5, rule.MinValue);
            Assert.AreEqual(10, rule.MaxValue);
        }
示例#9
0
        public void ConstructWithoutMinOrMax_ShouldUseIntMinAndMax()
        {
            //---------------Set up test pack-------------------
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            IPropRuleComparable <int> rule = new PropRuleInteger("num", "TestMessage");

            //---------------Test Result -----------------------
            Assert.AreEqual(int.MinValue, rule.MinValue);
            Assert.AreEqual(int.MaxValue, rule.MaxValue);
        }
        private static IPropRule GetPropRuleInt(int?minInt, int?maxInt)
        {
            var propRuleInt = new PropRuleInteger("", "")
            {
                Parameters =
                    new Dictionary <string, object> {
                    { "min", minInt }, { "max", maxInt }
                }
            };

            return(propRuleInt);
        }
示例#11
0
        public void IsPropValueValid_GivenValueOutsideIntRange_ShouldReturnFalse()
        {
            //---------------Set up test pack-------------------
            var rule         = new PropRuleInteger("num", "");
            var errorMessage = "";
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var valid = rule.IsPropValueValid("num", long.MaxValue, ref errorMessage);

            //---------------Test Result -----------------------
            Assert.IsFalse(valid);
        }
        private int GenerateValidValue(int?overridingMinValue, int?overridingMaxValue)
        {
            PropRuleInteger propRule    = base.GetPropRule <PropRuleInteger>();
            int             intMinValue = GetMinValue(propRule, overridingMinValue);
            int             intMaxValue = GetMaxValue(propRule, overridingMaxValue);

            _latestValue.Remove(base.SingleValueDef);
            if (_nextValue < intMinValue)
            {
                _nextValue = intMinValue;
            }
            if (_nextValue > intMaxValue)
            {
                _nextValue = intMinValue;
            }
            var returnValue = _nextValue;

            _latestValue.Add(base.SingleValueDef, ++_nextValue);
            return(returnValue);
        }
示例#13
0
 public void Test_MaxAndMinValueAreSetOnIComparableInterface()
 {
     //---------------Set up test pack-------------------
     //---------------Assert Precondition----------------
     //---------------Execute Test ----------------------
     IPropRuleComparable<int> rule = new PropRuleInteger("num", "TestMessage", 5, 10);
     //---------------Test Result -----------------------
     Assert.AreEqual(5, rule.MinValue);
     Assert.AreEqual(10, rule.MaxValue);
 }
示例#14
0
        public void IsPropValueValid_GivenValueOutsideIntRange_ShouldReturnFalse()
        {
            //---------------Set up test pack-------------------
            var rule = new PropRuleInteger("num", "");
            var errorMessage = "";
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var valid = rule.IsPropValueValid("num", long.MaxValue, ref errorMessage);
            //---------------Test Result -----------------------
            Assert.IsFalse(valid);
        }
示例#15
0
 public void ConstructWithoutMinOrMax_ShouldUseIntMinAndMax()
 {
     //---------------Set up test pack-------------------
     //---------------Assert Precondition----------------
     //---------------Execute Test ----------------------
     IPropRuleComparable<int> rule = new PropRuleInteger("num", "TestMessage");
     //---------------Test Result -----------------------
     Assert.AreEqual(int.MinValue, rule.MinValue);
     Assert.AreEqual(int.MaxValue, rule.MaxValue);
 }