public void VisitExtensionExpression()
        {
            var expression = new ReducibleExtensionExpression(Expression.Constant(0));
            var result     = FormattingExpressionVisitor.Format(expression);

            Assert.That(result, Is.EqualTo("Reducible(0)"));
        }
Пример #2
0
        public void Reduce()
        {
            var expression = new ReducibleExtensionExpression(typeof(int));

            var result = expression.Reduce();

            var expectedExpression = Expression.Constant(0);

            ExpressionTreeComparer.CheckAreEqualTrees(expectedExpression, result);
        }
Пример #3
0
        public void VisitExtensionExpression_ChildrenAreProcessed()
        {
            var extensionExpression = new ReducibleExtensionExpression(new QuerySourceReferenceExpression(_oldFromClause));

            var result = (ReducibleExtensionExpression)ReferenceReplacingExpressionVisitor.ReplaceClauseReferences(extensionExpression, _querySourceMapping, true);

            var expectedExpression = new ReducibleExtensionExpression(new QuerySourceReferenceExpression(_newFromClause));

            ExpressionTreeComparer.CheckAreEqualTrees(expectedExpression, result);
        }
        public void VisitExtension_ReducedExpressionIsVisited()
        {
            RelinqExpressionVisitor visitor = new TestThrowingConstantExpressionVisitor();
            var constantExpression          = Expression.Constant(0);
            var expression = new ReducibleExtensionExpression(constantExpression);

            var result = visitor.Visit(expression);

            Assert.That(result, Is.Not.SameAs(constantExpression));
            Assert.That(((ConstantExpression)result).Value, Is.EqualTo("ConstantExpression was visited"));
        }
        public void VisitExtensionExpression()
        {
            var innerExpression     = Expression.MakeBinary(ExpressionType.Equal, Expression.Constant(0), Expression.Constant(0));
            var extensionExpression = new ReducibleExtensionExpression(innerExpression);

            var result = PartialEvaluatingExpressionVisitor.EvaluateIndependentSubtrees(extensionExpression, new TestEvaluatableExpressionFilter());

            var expected = new ReducibleExtensionExpression(Expression.Constant(true));

            ExpressionTreeComparer.CheckAreEqualTrees(expected, result);
        }
Пример #6
0
        public void VisitExtensionExpression_ChildrenAreProcessed()
        {
            // new TestExtensionExpression (new AnonymousType ( a = 5 ).a) => new TestExtensionExpression (5)
            var memberExpression = Expression.MakeMemberAccess(
                _anonymousTypeNewExpressionWithAssignments,
                _anonymousTypeA);
            var extensionExpression = new ReducibleExtensionExpression(memberExpression);

            var result = TransparentIdentifierRemovingExpressionVisitor.ReplaceTransparentIdentifiers(extensionExpression);

            var expectedExpression = new ReducibleExtensionExpression(_assignedExpressionA);

            ExpressionTreeComparer.CheckAreEqualTrees(expectedExpression, result);
        }
Пример #7
0
        public void Clone_VisitsExtensionExpression_AndChildren()
        {
            var referencedClause = ExpressionHelper.CreateMainFromClause_Int();
            var expression       = new ReducibleExtensionExpression(new QuerySourceReferenceExpression(referencedClause));

            var querySourceMapping     = new QuerySourceMapping();
            var newReferenceExpression = new QuerySourceReferenceExpression(ExpressionHelper.CreateMainFromClause_Int());

            querySourceMapping.AddMapping(referencedClause, newReferenceExpression);

            var queryModel = new QueryModel(_mainFromClause, new SelectClause(expression));
            var clone      = queryModel.Clone(querySourceMapping);

            Assert.That(((ReducibleExtensionExpression)clone.SelectClause.Selector), Is.Not.SameAs(expression));
            Assert.That(
                ((QuerySourceReferenceExpression)((ReducibleExtensionExpression)clone.SelectClause.Selector).Expression),
                Is.SameAs(newReferenceExpression));
        }
Пример #8
0
        public void CanReduce_True()
        {
            var expression = new ReducibleExtensionExpression(typeof(int));

            Assert.That(expression.CanReduce, Is.True);
        }
        public void CreateExpressionNode_InvalidNodeParameterType()
        {
            var selector = new ReducibleExtensionExpression(Expression.Constant(0));

            MethodCallExpressionNodeFactory.CreateExpressionNode(typeof(SelectExpressionNode), _parseInfo, new object[] { selector });
        }