Exemple #1
0
        public void IsSatisfiedComparisonDateGreaterTanTest()
        {
            var vehicle = new VehicleModelProxy
            {
                CondemDate   = new DateTime(2012, 07, 31),
                AcceptedDate = new DateTime(2012, 08, 01)
            };

            var ruleList = new List <Rule> {
                //true
                new Rule
                {
                    RuleType           = RuleType.ComparisonRule,
                    LeftPropertyName   = "AcceptedDate",
                    RightPropertyName  = "CondemDate",
                    ComparisonOperator = LogicOperator.GreaterThan
                },
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = Convert.ToInt32(BoolOperator.AND)
            };

            var target = new RuleValidationService(vehicle);

            target.IsSatisfied(ruleSet);
            const bool expected = true;
            var        actual   = target.IsSatisfied(ruleSet);

            Assert.AreEqual(expected, actual);
        }
Exemple #2
0
        public void IsSatisfiedRuleSetNullTest()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate   = "123-abc",
                TransSN = "2343678",
                OMBYear = 3000
            };
            var service     = new RuleValidationService(vehicle);
            var rsBracketNo = new List <int> {
                0
            };
            var ruleConnectors = new List <int> {
                BoolOperator.AND
            };
            var target = new RuleStatement()
            {
                RsBracketNo    = String.Join(",", rsBracketNo),
                RuleConnectors = String.Join(",", ruleConnectors)
            };

            const bool expected = false;
            var        actual   = target.IsSatisfied(service);

            Assert.AreEqual(expected, actual);
        }
Exemple #3
0
        public void IsSatisfiedHasValueTest()
        {
            var vehicle = new VehicleModelProxy
            {
                C511Date = new DateTime(2012, 10, 2),
                TransSN  = "2343678",
                OMBYear  = 0
            };

            var ruleList = new List <Rule> {
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "OMBYear",
                    ComparisonOperator = LogicOperator.IsNullOrEmpty,
                    ExpectedValue      = "123-abc"
                }
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList
            };

            var target = new RuleValidationService(vehicle);

            target.IsSatisfied(ruleSet);
            const bool expected = true;
            var        actual   = target.IsSatisfied(ruleSet);

            Assert.AreEqual(expected, actual);
        }
Exemple #4
0
        public void IsSatisfiedComparisonHasValueStringTest()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate   = "123-abc",
                TransSN = "2343678",
                OMBYear = 3000
            };

            var ruleList = new List <Rule> {
                //true
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "TransSN",
                    RightPropertyName  = null,
                    ComparisonOperator = LogicOperator.HasValue
                },
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = Convert.ToInt32(BoolOperator.AND)
            };

            var target = new RuleValidationService(vehicle);

            target.IsSatisfied(ruleSet);
            const bool expected = true;
            var        actual   = target.IsSatisfied(ruleSet);

            Assert.AreEqual(expected, actual);
        }
Exemple #5
0
        public void IsSatisfiedANDDateTimeTypeFalseTest()
        {
            var vehicle = new VehicleModelProxy
            {
                AcceptedDate = new DateTime(2012, 7, 31)
            };

            var ruleList = new List <Rule> {
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "AcceptedDate",
                    ComparisonOperator = LogicOperator.NotEqual,
                    ExpectedValue      = "07/31/2012"
                }
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = Convert.ToInt32(BoolOperator.AND)
            };

            var target = new RuleValidationService(vehicle);

            target.IsSatisfied(ruleSet);
            const bool expected = false;
            var        actual   = target.IsSatisfied(ruleSet);

            Assert.AreEqual(expected, actual);
        }
Exemple #6
0
        public void IsSatisfiedANDBoolTypeFalseTest()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate      = "123-abc",
                TransSN    = "2343678",
                Formalized = false
            };

            var ruleList = new List <Rule> {
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "Formalized",
                    ComparisonOperator = LogicOperator.Equal,
                    ExpectedValue      = "false"
                }
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = Convert.ToInt32(BoolOperator.AND)
            };

            var target = new RuleValidationService(vehicle);

            target.IsSatisfied(ruleSet);
            const bool expected = true;
            var        actual   = target.IsSatisfied(ruleSet);

            Assert.AreEqual(expected, actual);
        }
Exemple #7
0
        /// ---------------------------------------------------------------
        /// <summary>
        /// Create StatusTransition Object.
        /// </summary>
        /// <param name="vehicle">VehicleModelProxy object</param>
        /// <returns>StatusTransition object</returns>
        /// --------------------------------------------------------------
        public StatusTransition CreateStatusTransitionObject(VehicleModelProxy vehicle)
        {
            if (vehicle == null)
            {
                throw new ArgumentNullException("vehicle", "Required argument not provided.");
            }

            var include          = new[] { "tblTransitionSpecification.tblRuleStatements.tblRuleSets.tblRules" };
            var statusTransition = _repository.GetFirst(x => x.VehicleStatusId == vehicle.VehicleStatus, include);

            if (statusTransition == null)
            {
                return(null);
            }

            var service = new RuleValidationService(vehicle);

            if (service == null)
            {
                throw new NullReferenceException("Unable to create RuleValidationService object.");
            }

            statusTransition.ValidationService = service;
            return(statusTransition);
        }
Exemple #8
0
        public void IsSatisfiedNullVehicleTest()
        {
            var        target   = new RuleValidationService(null);
            const bool expected = true;
            const bool actual   = false;

            Assert.AreEqual(expected, actual);
        }
Exemple #9
0
        public void IsSatisfiedTwoRuleSetsTandTandTTrueTest()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate   = "123-abc",
                TransSN = "2343678",
                OMBYear = 3000
            };
            var ruleConnectors = new List <int> {
                BoolOperator.AND, BoolOperator.AND
            };
            var rsBracketNo = new List <int> {
                0, 0, 0
            };

            var ruleList = new List <Rule> {
                new Rule
                {
                    RuleType           = Convert.ToInt32(RuleType.UnaryRule),
                    LeftPropertyName   = "Plate",
                    ComparisonOperator = LogicOperator.Equal,
                    ExpectedValue      = "123-abc"
                }
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = BoolOperator.AND
            };
            var ruleList1 = new List <Rule>
            {
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "TransSN",
                    ComparisonOperator = LogicOperator.NotEqual,
                    ExpectedValue      = "23483678"
                }
            };
            var ruleSet1 = new RuleSet {
                tblRules = ruleList1, Operation = BoolOperator.AND
            };
            var ruleSets = new List <RuleSet> {
                ruleSet, ruleSet1, ruleSet1
            };

            var service   = new RuleValidationService(vehicle);
            var statement = new RuleStatement()
            {
                tblRuleSets    = ruleSets,
                RsBracketNo    = String.Join(",", rsBracketNo),
                RuleConnectors = String.Join(",", ruleConnectors)
            };
            const bool expected = true;
            var        actual   = statement.IsSatisfied(service);

            Assert.AreEqual(expected, actual);
        }
Exemple #10
0
        public void IsSatisfied_RuleSet_OneGreaterThan_RuleConnector_Test()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate   = "123-abc",
                TransSN = "2343678",
                OMBYear = 3000
            };

            var ruleConnectors = new List <int> {
                BoolOperator.AND, BoolOperator.AND
            };
            var rsBracketNo = new List <int> {
                0
            };

            var ruleList = new List <Rule> {
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "OMBYear",
                    ComparisonOperator = LogicOperator.GreaterThan,
                    ExpectedValue      = "2000"
                },
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "Miles",
                    ComparisonOperator = LogicOperator.GreaterThan,
                    ExpectedValue      = "2000"
                }
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = BoolOperator.AND
            };
            var ruleSets = new List <RuleSet> {
                ruleSet
            };

            var service   = new RuleValidationService(vehicle);
            var statement = new RuleStatement()
            {
                tblRuleSets    = ruleSets,
                RsBracketNo    = String.Join(",", rsBracketNo),
                RuleConnectors = String.Join(",", ruleConnectors)
            };

            const bool expected = false;
            var        actual   = statement.IsSatisfied(service);

            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
Exemple #11
0
        public void IsSatisfiedRuleSetNotEqualRsBracketNoTest()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate   = "123-abc",
                TransSN = "2343678",
                OMBYear = 3000
            };

            var ruleConnectors = new List <int> {
                BoolOperator.AND
            };

            var rsBracketNo = new List <int>();

            var ruleList = new List <Rule> {
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "OBMYear",
                    ComparisonOperator = LogicOperator.GreaterThan,
                    ExpectedValue      = "2000"
                },
                new Rule
                {
                    RuleType           = Convert.ToInt32(RuleType.UnaryRule),
                    LeftPropertyName   = "OBMYear",
                    ComparisonOperator = LogicOperator.GreaterThan,
                    ExpectedValue      = "2000"
                }
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = BoolOperator.AND
            };
            var ruleSets = new List <RuleSet> {
                ruleSet
            };

            var service   = new RuleValidationService(vehicle);
            var statement = new RuleStatement()
            {
                tblRuleSets    = ruleSets,
                RsBracketNo    = String.Join(",", rsBracketNo),
                RuleConnectors = String.Join(",", ruleConnectors)
            };

            const bool expected = false;
            var        actual   = statement.IsSatisfied(service);

            Assert.AreEqual(expected, actual);
        }
Exemple #12
0
        public void RuleStatementConstructorTest()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate   = "123-abc",
                TransSN = "2343678",
                OMBYear = 3000
            };

            var service = new RuleValidationService(vehicle);
            var target  = new RuleStatement();

            Assert.IsTrue(target != null);
        }
Exemple #13
0
        public void IsSatisfiedComparisonFalseTest()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate   = "123-abc",
                TransSN = "2343678",
                OMBYear = 3000,
                Fuel    = 4000
            };

            var ruleList = new List <Rule> {
                //true
                new Rule
                {
                    RuleType           = RuleType.ComparisonRule,
                    LeftPropertyName   = "OMBYear",
                    RightPropertyName  = "Fuel",
                    ComparisonOperator = LogicOperator.Equal
                },
                //true
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "TransSN",
                    ComparisonOperator = LogicOperator.Equal,
                    ExpectedValue      = "2343678"
                },
                //true
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "OMBYear",
                    ComparisonOperator = LogicOperator.GreaterThan,
                    ExpectedValue      = "2000"
                }
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = Convert.ToInt32(BoolOperator.AND)
            };

            var target = new RuleValidationService(vehicle);

            target.IsSatisfied(ruleSet);
            const bool expected = false;
            var        actual   = target.IsSatisfied(ruleSet);

            Assert.AreEqual(expected, actual);
        }
Exemple #14
0
        public void IsSatisfiedANDTest()
        {
            var vehicle = new VehicleModelProxy
            {
                Plate   = "123-abc",
                TransSN = "2343678",
                OMBYear = 3000
            };

            var ruleList = new List <Rule> {
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "Plate",
                    ComparisonOperator = LogicOperator.Equal,
                    ExpectedValue      = "123-abc"
                },
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "TransSN",
                    ComparisonOperator = LogicOperator.NotEqual,
                    ExpectedValue      = "2345678"
                },
                new Rule
                {
                    RuleType           = RuleType.UnaryRule,
                    LeftPropertyName   = "OMBYear",
                    ComparisonOperator = LogicOperator.GreaterThan,
                    ExpectedValue      = "2000"
                }
            };
            var ruleSet = new RuleSet {
                tblRules = ruleList, Operation = BoolOperator.AND
            };

            var target = new RuleValidationService(vehicle);

            target.IsSatisfied(ruleSet);
            const bool expected = true;
            var        actual   = target.IsSatisfied(ruleSet);

            Assert.AreEqual(expected, actual);
        }
Exemple #15
0
        static void Main(string[] args)
        {
            // Would use DI
            IParkingService        ps  = new ParkingService();
            IRuleValidationService rvs = new RuleValidationService();

            var floor = new Dictionary <int, int>()
            {
                { -2, 5 },
                { -1, 0 },
                { 0, 1 },
                { 1, 3 },
                { 2, 1 },
            };

            var result = ps.GetFloor(floor, -1, rvs.ValidateFloorSpace);

            Console.WriteLine(result);
        }
Exemple #16
0
 public ParkingServiceTests()
 {
     _classUnderTest    = new ParkingService();
     _validationService = new RuleValidationService();
 }