Example #1
0
        public void CheckProductIdOfConstraintMatches(string identifier, short revision, bool expectedResult)
        {
            // Arrange
            var ident      = new ProductIdentity(identifier, revision);
            var constraint = ExpressionConstraint.Equals <IProcess>(p => ((IProductRecipe)p.Recipe).Product.Identity, ident);

            // Act Assert
            Assert.AreEqual(expectedResult, constraint.Check(CreateProcess()));
        }
        public void ShouldNotBePossibleEvaluateRuleWithExpressionConstraintAndMissingProperty()
        {
            var constraint = new ExpressionConstraint("Name", (o) => {
                return(o != null && o.ToString().Length > 5);
            });

            var result = constraint.Evaluate(ObjectHelper.ToDictionary(new { }));

            Assert.False(result);
        }
        public void ShouldEvaluateAsFalseIfExpressionIsNull()
        {
            var data = new Dictionary <string, object>()
            {
                { "Name", "Jhon Doe" }
            };
            var sut = new ExpressionConstraint <Money>("Debt", null);

            Assert.False(sut.Evaluate(data));
        }
Example #4
0
        public void ExpressionGreater(int foo, int compareValue)
        {
            // Arrange:
            var context = new DummyContext
            {
                Foo = foo
            };
            var constraint = ExpressionConstraint.GreaterOrEqual <DummyContext>(c => c.Foo, compareValue);

            // Act
            var result = constraint.Check(context);

            // Arrange
            Assert.AreEqual(result, foo >= compareValue, "Constraint failed to compare objects");
        }
        public void ShouldEvaluateWithUntypedExpression()
        {
            var data = new Dictionary <string, object> {
                { "Name", "Jane Doe" }
            };


            var sut = new ExpressionConstraint("Name", (o) => {
                return(o.ToString().Length > 5);
            });

            Assert.True(sut.Evaluate(data));

            data["Name"] = "Jane";
            Assert.False(sut.Evaluate(data));
        }
        public void ShouldEvaluateWithTypedExpression()
        {
            var data = new Dictionary <string, object>()
            {
                { "Debt", new Money(10.0m, Currency.REAL) }
            };

            var sut = new ExpressionConstraint <Money>("Debt", (o) => {
                return(o.Amount > 12.3m);
            });

            Assert.False(sut.Evaluate(data));

            sut = new ExpressionConstraint <Money>("Debt", (o) => {
                return(o.Amount > 9.3m);
            });
            Assert.True(sut.Evaluate(data));
        }