예제 #1
0
        public void Should_replace_ExtractBody_with_lambda_body_provided_as_static_method_returnvalue()
        {
            Expression <Func <MyObject, bool> > expression = o => o.MyProperty == MyObject.GetExpressionFromStaticMethod().ExtractBody(o);

            var visitedExpression = ExpressionBodyExtractingVisitor.Rewrite(expression);

            ValidateVisitedExpressions(expression, visitedExpression);
        }
예제 #2
0
        public void Should_replace_ExtractBody_with_lambda_body_provided_inline()
        {
            Expression <Func <MyObject, bool> > expression = o => o.MyProperty == ((Expression <Func <MyObject, string?> >)(i => i.MyOtherProperty)).ExtractBody(o);

            var visitedExpression = ExpressionBodyExtractingVisitor.Rewrite(expression);

            ValidateVisitedExpressions(expression, visitedExpression);
        }
예제 #3
0
        public void Should_return_the_same_expression_if_no_ExtractBody_found()
        {
            Expression <Func <MyObject, bool> > expression = o => o.MyProperty == null;

            var visitedExpression = ExpressionBodyExtractingVisitor.Rewrite(expression);

            visitedExpression.Should().Be(expression);
        }
예제 #4
0
        public void Should_replace_ExtractBody_with_lambda_body_provided_as_field()
        {
            Expression <Func <MyObject, string?> > extractFromExpression = o => o.MyOtherProperty;
            Expression <Func <MyObject, bool> >    expression            = o => o.MyProperty == extractFromExpression.ExtractBody(o);

            var visitedExpression = ExpressionBodyExtractingVisitor.Rewrite(expression);

            ValidateVisitedExpressions(expression, visitedExpression);
        }