Example #1
0
        private static IntegerValueRule GetIntegerValueRule(Rules rules)
        {
            if (IntegerValueRule != null)
            {
                return(IntegerValueRule);
            }

            double?greaterThan = null, lesserThan = null, equalTo = null, notEqualTo = null;

            if (double.TryParse(rules.IntegerValueRule.ShouldBeGreaterThan, out double greater))
            {
                greaterThan = greater;
            }
            if (double.TryParse(rules.IntegerValueRule.ShouldBeLessThan, out double lesser))
            {
                lesserThan = lesser;
            }
            if (double.TryParse(rules.IntegerValueRule.ShouldBeEqualTo, out double equals))
            {
                equalTo = equals;
            }
            if (double.TryParse(rules.IntegerValueRule.ShouldNotBeEqualTo, out double notEquals))
            {
                notEqualTo = notEquals;
            }

            IntegerValueRule = new IntegerValueRule(greaterThan, lesserThan, equalTo, notEqualTo);
            return(IntegerValueRule);
        }
Example #2
0
        private static bool IsValidIntegerRule(IntegerDataUnit validIntegerDataUnit, IntegerValueRule integerValueRule)
        {
            RuleToApply ruleToApply = RuleToApply.NOTEQUALTO;

            if (integerValueRule.GreaterThan.HasValue || integerValueRule.LessThan.HasValue)
            {
                ruleToApply = RuleToApply.GREATERORLESSER;
            }
            else if (integerValueRule.EqualTo.HasValue)
            {
                ruleToApply = RuleToApply.EQUALTO;
            }
            else if (integerValueRule.NotEqualTo.HasValue)
            {
                ruleToApply = RuleToApply.NOTEQUALTO;
            }
            else
            {
                throw new Exception($"Integer Value rule needs to have a proper value");
            }

            switch (ruleToApply)
            {
            case RuleToApply.GREATERORLESSER:
                if (integerValueRule.GreaterThan.HasValue && integerValueRule.LessThan.HasValue)
                {
                    if (validIntegerDataUnit.Value >= integerValueRule.GreaterThan.Value && validIntegerDataUnit.Value <= integerValueRule.LessThan.Value)
                    {
                        return(true);
                    }
                    return(false);
                }
                else if (integerValueRule.GreaterThan.HasValue && validIntegerDataUnit.Value >= integerValueRule.GreaterThan.Value)
                {
                    return(true);
                }
                else if (integerValueRule.LessThan.HasValue && validIntegerDataUnit.Value <= integerValueRule.LessThan.Value)
                {
                    return(true);
                }
                return(false);

            case RuleToApply.EQUALTO:
                return(validIntegerDataUnit.Value == integerValueRule.EqualTo);

            case RuleToApply.NOTEQUALTO:
                return(validIntegerDataUnit.Value != integerValueRule.NotEqualTo);

            default:
                throw new NotSupportedException("The given type is not valid");
            }
        }
Example #3
0
        public void RulesService_IsValidRule_IntegerDataUnitTests()
        {
            var              actual           = false;
            Rules            rules            = new Rules();
            InputDataUnit    dataUnit         = new InputDataUnit(SignalName, IntegerType, "25.99");
            IntegerValueRule integerValueRule = new IntegerValueRule(null, null, null, null);

            rules.IntegerValueRule = integerValueRule;

            //Negative Tests
            integerValueRule.ShouldBeGreaterThan       = "26.01";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsFalse(actual);

            integerValueRule.ShouldBeGreaterThan = null;
            integerValueRule.ShouldBeLessThan    = "15";
            dataUnit.Value = "16";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsFalse(actual);

            integerValueRule.ShouldBeGreaterThan = "99.99";
            integerValueRule.ShouldBeLessThan    = "123.123";
            dataUnit.Value = "99.98";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsFalse(actual);

            dataUnit.Value = "123.124";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsFalse(actual);

            integerValueRule.ShouldBeGreaterThan = null;
            integerValueRule.ShouldBeLessThan    = null;
            integerValueRule.ShouldBeEqualTo     = "22.22";
            dataUnit.Value = "20.20";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsFalse(actual);

            integerValueRule.ShouldBeEqualTo    = null;
            integerValueRule.ShouldNotBeEqualTo = "22.22";
            dataUnit.Value = "22.22";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsFalse(actual);

            //Postitive test cases
            //Resetting to null
            integerValueRule.ShouldBeGreaterThan = null;
            integerValueRule.ShouldNotBeEqualTo  = null;
            integerValueRule.ShouldBeEqualTo     = null;
            integerValueRule.ShouldNotBeEqualTo  = null;

            integerValueRule.ShouldBeGreaterThan = "53.33";
            dataUnit.Value = "53.34";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsTrue(actual);

            integerValueRule.ShouldBeGreaterThan = null;
            integerValueRule.ShouldBeLessThan    = "99.99";
            dataUnit.Value = "99.98";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsTrue(actual);

            integerValueRule.ShouldBeGreaterThan = "95.25";
            integerValueRule.ShouldBeLessThan    = "99.99";
            dataUnit.Value = "96.2";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsTrue(actual);

            integerValueRule.ShouldBeGreaterThan = null;
            integerValueRule.ShouldBeLessThan    = null;
            integerValueRule.ShouldBeEqualTo     = "225.122";
            dataUnit.Value = "225.122";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsTrue(actual);

            integerValueRule.ShouldBeEqualTo    = null;
            integerValueRule.ShouldNotBeEqualTo = "123.35";
            dataUnit.Value = "123.34";
            RulesService.RulesService.IntegerValueRule = null;
            actual = RulesService.RulesService.IsValidRule(dataUnit, rules);
            Assert.IsTrue(actual);
        }