public void VisitLambda_Unchanged() { var expression = ExpressionInstanceCreator.CreateLambdaWithArguments(); var parameter = expression.Parameters.Single(); Expect.Call(VisitorMock.Visit(expression.Body)).Return(expression.Body); Expect.Call(VisitorMock.Visit(parameter)).Return(parameter); var result = (LambdaExpression)InvokeAndCheckVisit("VisitLambda", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitLambda_ChangedParameters() { var expression = ExpressionInstanceCreator.CreateLambdaWithArguments(); var parameter = expression.Parameters.Single(); Expression newParameter = Expression.Parameter(typeof(int), "i"); Expect.Call(VisitorMock.Visit(expression.Body)).Return(expression.Body); Expect.Call(VisitorMock.Visit(parameter)).Return(newParameter); var result = (LambdaExpression)InvokeAndCheckVisit("VisitLambda", expression); Assert.That(result, Is.Not.SameAs(expression)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.Lambda)); Assert.That(result.Parameters, Is.EqualTo(new[] { newParameter })); Assert.That(result.Body, Is.SameAs(expression.Body)); }