public void Transform_ArgumentIsNotNull () { var method = typeof (string).GetMethod ("Contains", new[] { typeof (string) }); var objectExpression = Expression.Constant ("Test"); var argument1 = Expression.Constant ("test"); var expression = Expression.Call (objectExpression, method, argument1); var transformer = new ContainsMethodCallTransformer(); var result = transformer.Transform (expression); var rightExpression = Expression.Constant (string.Format ("%{0}%", argument1.Value)); var expectedResult = new SqlLikeExpression (objectExpression, rightExpression, new SqlLiteralExpression (@"\")); SqlExpressionTreeComparer.CheckAreEqualTrees (expectedResult, result); }
public void Transform_ArgumentIsNotNullAndIsNoConstantValue () { var method = typeof (string).GetMethod ("Contains", new[] { typeof (string) }); var objectExpression = Expression.Constant ("Test"); var argument1 = Expression.MakeMemberAccess (Expression.Constant (new Cook()), typeof (Cook).GetProperty ("Name")); var expression = Expression.Call (objectExpression, method, argument1); var transformer = new ContainsMethodCallTransformer(); var result = transformer.Transform (expression); Expression rightExpression = new SqlFunctionExpression ( typeof (string), "REPLACE", new SqlFunctionExpression ( typeof (string), "REPLACE", new SqlFunctionExpression ( typeof (string), "REPLACE", new SqlFunctionExpression ( typeof (string), "REPLACE", argument1, new SqlLiteralExpression (@"\"), new SqlLiteralExpression (@"\\")), new SqlLiteralExpression (@"%"), new SqlLiteralExpression (@"\%")), new SqlLiteralExpression (@"_"), new SqlLiteralExpression (@"\_")), new SqlLiteralExpression (@"["), new SqlLiteralExpression (@"\[")); rightExpression = Expression.Add ( new SqlLiteralExpression ("%"), rightExpression, typeof (string).GetMethod ("Concat", new[] { typeof (string), typeof (string) })); rightExpression = Expression.Add ( rightExpression, new SqlLiteralExpression ("%"), typeof (string).GetMethod ("Concat", new[] { typeof (string), typeof (string) })); var expectedResult = new SqlLikeExpression (objectExpression, rightExpression, new SqlLiteralExpression (@"\")); SqlExpressionTreeComparer.CheckAreEqualTrees (expectedResult, result); }
public void Transform_ArgumentIsNull () { var method = typeof (string).GetMethod ("Contains", new[] { typeof (string) }); var objectExpression = Expression.Constant ("Test"); var argument1 = Expression.Constant (null, typeof (string)); var expression = Expression.Call (objectExpression, method, argument1); var transformer = new ContainsMethodCallTransformer(); var result = transformer.Transform (expression); SqlExpressionTreeComparer.CheckAreEqualTrees (Expression.Constant (false), result); }