public void VisitExtensionExpression () { var expression = new ReducibleExtensionExpression (Expression.Constant (0)); var result = FormattingExpressionVisitor.Format (expression); Assert.That (result, Is.EqualTo ("Reducible(0)")); }
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 VisitNestedNonReducibleExtensionExpression_NotEvaluatable () { var innerExpression = new NonReducibleExtensionExpression (Expression.Constant (1)); var expression = new ReducibleExtensionExpression (Expression.Add (innerExpression, Expression.Constant (1))); var evaluationInfo = EvaluatableTreeFindingExpressionVisitor.Analyze (expression, new FakeEvaluatableExpressionFilter()); Assert.That (evaluationInfo.IsEvaluatableExpression (expression), Is.False); Assert.That (evaluationInfo.IsEvaluatableExpression (innerExpression), Is.False); }
public void VisitReducibleExtensionExpression_NotEvaluatable_ButChildrenMayBe () { var innerExpression = Expression.MakeBinary (ExpressionType.Equal, Expression.Constant (0), Expression.Constant (0)); var extensionExpression = new ReducibleExtensionExpression (innerExpression); var evaluationInfo = EvaluatableTreeFindingExpressionVisitor.Analyze (extensionExpression, new FakeEvaluatableExpressionFilter()); Assert.That (evaluationInfo.IsEvaluatableExpression (extensionExpression), Is.False); Assert.That (evaluationInfo.IsEvaluatableExpression (innerExpression), Is.True); }
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); }
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)); }
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); }
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); }