예제 #1
0
        public void GetLambdaExpressionTest()
        {
            var filter = new FilterTreeNode(
                new GridFilter()
            {
                PropName    = "A",
                StringValue = "4",
                Operator    = "gt"
            });

            var lambdaExpression = filter.GetLambdaExpression <TestSubject>();

            var expectation = "par => (par.A > 4)";

            Assert.That(lambdaExpression.ToString(), Is.EqualTo(expectation));
        }
예제 #2
0
        public void GetLambdaExpressionThreeBranchesTest()
        {
            var filter = new FilterTreeNode(
                new FilterTreeNode(
                    new FilterTreeNode(
                        new GridFilter()
            {
                PropName    = "A",
                StringValue = "2",
                Operator    = "gt"
            }),
                    LogicalOpertor.AND,
                    new FilterTreeNode(
                        new GridFilter()
            {
                PropName    = "A",
                StringValue = "4",
                Operator    = "lt"
            })
                    ),
                LogicalOpertor.AND,
                new FilterTreeNode(
                    new GridFilter()
            {
                PropName    = "A",
                StringValue = "5",
                Operator    = "eq"
            }));


            var lambdaExpression = filter.GetLambdaExpression <TestSubject>();

            var expectation = "par => (((par.A > 2) And (par.A < 4)) And (par.A == 5))";

            Assert.That(lambdaExpression.ToString(), Is.EqualTo(expectation));
        }