public void VisitInvocation_Unchanged() { var expression = ExpressionInstanceCreator.CreateInvokeWithArguments(); var argument = expression.Arguments.Single(); Expect.Call(VisitorMock.Visit(expression.Expression)).Return(expression.Expression); Expect.Call(VisitorMock.Visit(argument)).Return(argument); var result = (InvocationExpression)InvokeAndCheckVisit("VisitInvocation", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitInvocation_ChangedArguments() { var expression = ExpressionInstanceCreator.CreateInvokeWithArguments(); var argument = expression.Arguments.Single(); Expression newArgument = Expression.Constant(214578); Expect.Call(VisitorMock.Visit(expression.Expression)).Return(expression.Expression); Expect.Call(VisitorMock.Visit(argument)).Return(newArgument); var result = (InvocationExpression)InvokeAndCheckVisit("VisitInvocation", expression); Assert.That(result, Is.Not.SameAs(expression)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.Invoke)); Assert.That(result.Arguments, Is.EqualTo(new[] { newArgument })); Assert.That(result.Expression, Is.SameAs(expression.Expression)); }
public void VisitInvocation_ChangedObject() { var expression = ExpressionInstanceCreator.CreateInvokeWithArguments(); var argument = expression.Arguments.Single(); Expression newExpression = Expression.Lambda(Expression.Constant(1), Expression.Parameter(typeof(int), "i")); Expect.Call(VisitorMock.Visit(expression.Expression)).Return(newExpression); Expect.Call(VisitorMock.Visit(argument)).Return(argument); var result = (InvocationExpression)InvokeAndCheckVisit("VisitInvocation", expression); Assert.That(result, Is.Not.SameAs(expression)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.Invoke)); Assert.That(result.Expression, Is.SameAs(newExpression)); Assert.That(result.Arguments, Is.SameAs(expression.Arguments)); }