public void VisitConstant() { var expression = (ConstantExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.Constant); var result = (ConstantExpression)InvokeAndCheckVisit("VisitConstant", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitParameter() { var expression = (ParameterExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.Parameter); var result = (ParameterExpression)InvokeAndCheckVisit("VisitParameter", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitAndConvert_Single_ThrowsOnNull() { var expression = (BinaryExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.Add); Expect.Call(VisitorMock.Visit(expression)).Return(null); InvokeVisitAndConvert(expression, "VisitMethod"); }
public void VisitTypeBinary_Unchanged() { var expression = (TypeBinaryExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.TypeIs); Expect.Call(VisitorMock.Visit(expression.Expression)).Return(expression.Expression); var result = (TypeBinaryExpression)InvokeAndCheckVisit("VisitTypeBinary", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitMember_Unchanged() { var expression = (MemberExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.MemberAccess); Expect.Call(VisitorMock.Visit(expression.Expression)).Return(expression.Expression); var result = (MemberExpression)InvokeAndCheckVisit("VisitMember", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitUnary_Unchanges() { var expression = (UnaryExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.UnaryPlus); Expression expectedNextVisit = expression.Operand; Expect.Call(VisitorMock.Visit(expectedNextVisit)).Return(expectedNextVisit); Assert.That(InvokeAndCheckVisit("VisitUnary", expression), Is.SameAs(expression)); }
public void VisitMemberAssignment_Unchanged() { MemberAssignment memberAssignment = ExpressionInstanceCreator.CreateMemberAssignment(); Expect.Call(VisitorMock.Visit(memberAssignment.Expression)).Return(memberAssignment.Expression); var result = (MemberAssignment)InvokeAndCheckVisitObject("VisitMemberAssignment", memberAssignment); Assert.That(result, Is.SameAs(memberAssignment)); }
public void VisitNew_Unchanged() { var expression = (NewExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.New); var argument = expression.Arguments.Single(); Expect.Call(VisitorMock.Visit(argument)).Return(argument); var result = (NewExpression)InvokeAndCheckVisit("VisitNew", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitAndConvert_Single_NoConvert() { var expression = (BinaryExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.Add); Expect.Call(VisitorMock.Visit(expression)).Return(expression); var result = InvokeVisitAndConvert(expression, "Add"); Assert.That(result, Is.SameAs(expression)); }
public void VisitNewArray_Unchanged() { var expression = (NewArrayExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.NewArrayInit); var initExpression = expression.Expressions.Single(); Expect.Call(VisitorMock.Visit(initExpression)).Return(initExpression); var result = (NewArrayExpression)InvokeAndCheckVisit("VisitNewArray", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitListInit_Unchanged() { var expression = (ListInitExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.ListInit); var elementInit = expression.Initializers.Single(); Expect.Call(VisitorMock.Visit(expression.NewExpression)).Return(expression.NewExpression); Expect.Call(InvokeVisitMethod("VisitElementInit", elementInit)).Return(elementInit); var result = (ListInitExpression)InvokeAndCheckVisit("VisitListInit", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitMemberInit_Unchanged() { var expression = (MemberInitExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.MemberInit); var binding = expression.Bindings.Single(); Expect.Call(VisitorMock.Visit(expression.NewExpression)).Return(expression.NewExpression); Expect.Call(InvokeVisitMethod("VisitMemberBinding", binding)).Return(binding); var result = (MemberInitExpression)InvokeAndCheckVisit("VisitMemberInit", expression); Assert.That(result, Is.SameAs(expression)); }
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 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 VisitConditional_Unchanged() { var expression = (ConditionalExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.Conditional); Expect.Call(VisitorMock.Visit(expression.Test)).Return(expression.Test); Expect.Call(VisitorMock.Visit(expression.IfTrue)).Return(expression.IfTrue); Expect.Call(VisitorMock.Visit(expression.IfFalse)).Return(expression.IfFalse); var result = (ConditionalExpression)InvokeAndCheckVisit("VisitConditional", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitElementInit_Unchanged() { ElementInit elementInit = ExpressionInstanceCreator.CreateElementInit(); var argument = elementInit.Arguments.Single(); Expect.Call(VisitorMock.Visit(argument)).Return(argument); var result = (ElementInit)InvokeAndCheckVisitObject("VisitElementInit", elementInit); Assert.That(result, Is.SameAs(elementInit)); }
public void VisitBinary_Unchanged() { BinaryExpression expression = (BinaryExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.Add); Expect.Call(VisitorMock.Visit(expression.Left)).Return(expression.Left); Expect.Call(VisitorMock.Visit(expression.Right)).Return(expression.Right); BinaryExpression result = (BinaryExpression)InvokeAndCheckVisit("VisitBinary", expression); Assert.That(result, Is.SameAs(expression)); }
public void VisitMemberAssignment_Changed() { MemberAssignment memberAssignment = ExpressionInstanceCreator.CreateMemberAssignment(); MemberAssignment newMemberAssignment = Expression.Bind(typeof(List <int>).GetProperty("Capacity"), Expression.Constant(2)); Expect.Call(VisitorMock.Visit(memberAssignment.Expression)).Return(newMemberAssignment.Expression); var result = (MemberAssignment)InvokeAndCheckVisitObject("VisitMemberAssignment", memberAssignment); Assert.That(result, Is.Not.SameAs(memberAssignment)); }
public void VisitAndConvert_Collection_ExceptionUsesCallerName() { var constantExpression = Expression.Constant(1); var expressions = new List <ConstantExpression> (new[] { constantExpression }).AsReadOnly(); var newExpression = (NewExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.New); Expect.Call(VisitorMock.Visit(constantExpression)).Return(newExpression); VisitorMock.Replay(); VisitorMock.VisitAndConvert(expressions, "Whatever"); }
public void VisitMember_ChangedExpression() { var expression = (MemberExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.MemberAccess); Expression newExpression = Expression.Constant(DateTime.Now); Expect.Call(VisitorMock.Visit(expression.Expression)).Return(newExpression); var result = (MemberExpression)InvokeAndCheckVisit("VisitMember", expression); Assert.That(result, Is.Not.SameAs(expression)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.MemberAccess)); Assert.That(result.Expression, Is.SameAs(newExpression)); }
public void VisitTypeBinary_Changed() { var expression = (TypeBinaryExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.TypeIs); Expression newExpression = Expression.Constant(1); Expect.Call(VisitorMock.Visit(expression.Expression)).Return(newExpression); var result = (TypeBinaryExpression)InvokeAndCheckVisit("VisitTypeBinary", expression); Assert.That(result, Is.Not.SameAs(expression)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.TypeIs)); Assert.That(result.Expression, Is.SameAs(newExpression)); }
public void VisitMemberMemberBinding_Unchanged() { MemberBinding memberBinding1 = Expression.Bind(typeof(List <int>).GetProperty("Capacity"), Expression.Constant(0)); MemberBinding memberBinding2 = Expression.Bind(typeof(List <int>).GetProperty("Capacity"), Expression.Constant(1)); MemberMemberBinding memberMemberBinding = ExpressionInstanceCreator.CreateMemberMemberBinding(new[] { memberBinding1, memberBinding2 }); Expect.Call(InvokeVisitMethod("VisitMemberBinding", memberBinding1)).Return(memberBinding1); Expect.Call(InvokeVisitMethod("VisitMemberBinding", memberBinding2)).Return(memberBinding2); var result = (MemberMemberBinding)InvokeAndCheckVisitObject("VisitMemberMemberBinding", memberMemberBinding); Assert.That(result, Is.SameAs(memberMemberBinding)); }
public void VisitNew_ChangedArguments() { var expression = (NewExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.New); var argument = expression.Arguments.Single(); Expression newArgument = Expression.Constant(214578); Expect.Call(VisitorMock.Visit(argument)).Return(newArgument); var result = (NewExpression)InvokeAndCheckVisit("VisitNew", expression); Assert.That(result, Is.Not.SameAs(expression)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.New)); Assert.That(result.Arguments, Is.EqualTo(new[] { newArgument })); }
public void VisitUnary_Negate_Changes() { var expression = (UnaryExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.Negate); Expression expectedNextVisit = expression.Operand; Expression newOperand = Expression.Constant(1); Expect.Call(VisitorMock.Visit(expectedNextVisit)).Return(newOperand); var result = (UnaryExpression)InvokeAndCheckVisit("VisitUnary", expression); Assert.That(result.Operand, Is.SameAs(newOperand)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.Negate)); }
public void VisitMemberListBinding_Unchanged() { ElementInit elementInit1 = Expression.ElementInit(typeof(List <int>).GetMethod("Add"), Expression.Constant(0)); ElementInit elementInit2 = Expression.ElementInit(typeof(List <int>).GetMethod("Add"), Expression.Constant(1)); ReadOnlyCollection <ElementInit> elementInits = new List <ElementInit> (new[] { elementInit1, elementInit2 }).AsReadOnly(); MemberListBinding memberListBinding = ExpressionInstanceCreator.CreateMemberListBinding(elementInits); Expect.Call(InvokeVisitMethod("VisitElementInit", elementInit1)).Return(elementInit1); Expect.Call(InvokeVisitMethod("VisitElementInit", elementInit2)).Return(elementInit2); var result = (MemberListBinding)InvokeAndCheckVisitObject("VisitMemberListBinding", memberListBinding); Assert.That(result, Is.SameAs(memberListBinding)); }
public void VisitNewArray_Init_Changed() { var expression = (NewArrayExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.NewArrayInit); var initExpression = expression.Expressions.Single(); var newInitExpression = Expression.Constant(214578); Expect.Call(VisitorMock.Visit(initExpression)).Return(newInitExpression); var result = (NewArrayExpression)InvokeAndCheckVisit("VisitNewArray", expression); Assert.That(result, Is.Not.SameAs(expression)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.NewArrayInit)); Assert.That(result.Expressions, Is.EqualTo(new[] { newInitExpression })); Assert.That(result.Type, Is.EqualTo(typeof(int[]))); }
public void VisitElementInit_Changed() { ElementInit elementInit = ExpressionInstanceCreator.CreateElementInit(); var argument = elementInit.Arguments.Single(); Expression newArgument = Expression.Constant(214578); Expect.Call(VisitorMock.Visit(argument)).Return(newArgument); var result = (ElementInit)InvokeAndCheckVisitObject("VisitElementInit", elementInit); Assert.That(result, Is.Not.SameAs(elementInit)); Assert.That(result.AddMethod, Is.SameAs(elementInit.AddMethod)); Assert.That(result.Arguments, Is.EqualTo(new[] { newArgument })); }
public void VisitMemberBinding_Delegation_ListBinding() { MemberListBinding memberListBinding = ExpressionInstanceCreator.CreateMemberListBinding(new ElementInit[0]); Expect.Call(InvokeVisitMethod("VisitMemberBinding", memberListBinding)).CallOriginalMethod(OriginalCallOptions.CreateExpectation); Expect.Call(InvokeVisitMethod("VisitMemberListBinding", memberListBinding)).Return(memberListBinding); MockRepository.ReplayAll(); object result = InvokeVisitMethod("VisitMemberBinding", memberListBinding); MockRepository.VerifyAll(); Assert.That(result, Is.SameAs(memberListBinding)); }
public void VisitListInit_ChangedInitializers() { var expression = (ListInitExpression)ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.ListInit); var initializer = expression.Initializers.Single(); var newInitializer = Expression.ElementInit(typeof(List <int>).GetMethod("Add"), Expression.Constant(214578)); Expect.Call(VisitorMock.Visit(expression.NewExpression)).Return(expression.NewExpression); Expect.Call(InvokeVisitMethod("VisitElementInit", initializer)).Return(newInitializer); var result = (ListInitExpression)InvokeAndCheckVisit("VisitListInit", expression); Assert.That(result, Is.Not.SameAs(expression)); Assert.That(result.NodeType, Is.EqualTo(ExpressionType.ListInit)); Assert.That(result.Initializers, Is.EqualTo(new[] { newInitializer })); Assert.That(result.NewExpression, Is.SameAs(expression.NewExpression)); }
public void VisitMemberBinding_Delegation_MemberAssignment() { MemberAssignment memberAssignment = ExpressionInstanceCreator.CreateMemberAssignment(); Expect.Call(InvokeVisitMethod("VisitMemberBinding", memberAssignment)).CallOriginalMethod(OriginalCallOptions.CreateExpectation); Expect.Call(InvokeVisitMethod("VisitMemberAssignment", memberAssignment)).Return(memberAssignment); MockRepository.ReplayAll(); object result = InvokeVisitMethod("VisitMemberBinding", memberAssignment); MockRepository.VerifyAll(); Assert.That(result, Is.SameAs(memberAssignment)); }