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_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 () { 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); }
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); }