public void Transform_WrongNumberOfArguments() { var method = typeof(object).GetMethod("ToString", new Type[0]); var expression = Expression.Call(Expression.Constant("test"), method); var transformer = new EqualsMethodCallTransformer(); transformer.Transform(expression); }
public void Transform_StaticMethod_NonMatchingTypes() { var method = typeof(object).GetMethod("Equals", new[] { typeof(object), typeof(object) }); var parameter1 = Expression.Constant("s"); var parameter2 = Expression.Constant(null, typeof(Cook)); var expression = Expression.Call(method, parameter1, parameter2); var transformer = new EqualsMethodCallTransformer(); var result = transformer.Transform(expression); var expectedResult = Expression.Equal(Expression.Convert(parameter1, typeof(object)), Expression.Convert(parameter2, typeof(object))); SqlExpressionTreeComparer.CheckAreEqualTrees(expectedResult, result); }
public void Transform_StaticMethod() { var method = typeof(object).GetMethod("Equals", new[] { typeof(object), typeof(object) }); var parameter1 = Expression.Constant(new object()); var parameter2 = Expression.Constant(new object()); var expression = Expression.Call(method, parameter1, parameter2); var transformer = new EqualsMethodCallTransformer(); var result = transformer.Transform(expression); var expectedResult = Expression.Equal(parameter1, parameter2); SqlExpressionTreeComparer.CheckAreEqualTrees(expectedResult, result); }
public void Transform_InstanceMethod_IncompatibleTypes() { var method = typeof(object).GetMethod("Equals", new[] { typeof(object) }); var instance = Expression.Constant(0); var argument = Expression.Constant("string"); var expression = Expression.Call(instance, method, argument); var transformer = new EqualsMethodCallTransformer(); var result = transformer.Transform(expression); var expectedResult = Expression.Equal(Expression.Convert(instance, typeof(object)), Expression.Convert(argument, typeof(object))); SqlExpressionTreeComparer.CheckAreEqualTrees(expectedResult, result); }
public void Transform_InstanceMethod() { var method = typeof(object).GetMethod("Equals", new[] { typeof(object) }); var instance = Expression.Constant(new object()); var argument = Expression.Constant(new object()); var expression = Expression.Call(instance, method, argument); var transformer = new EqualsMethodCallTransformer(); var result = transformer.Transform(expression); var expectedResult = Expression.Equal(instance, argument); SqlExpressionTreeComparer.CheckAreEqualTrees(expectedResult, result); }