public void Transform_InvalidArgumentCount()
        {
            var method           = typeof(string).GetMethod("ToUpper", new Type[] { });
            var objectExpression = Expression.Constant("Test");
            var expression       = Expression.Call(objectExpression, method);
            var transformer      = new ReplaceMethodCallTransformer();

            transformer.Transform(expression);
        }
        public void Transform()
        {
            var method           = typeof(string).GetMethod("Replace", new[] { typeof(string), typeof(string) });
            var objectExpression = Expression.Constant("TAst");
            var expression       = Expression.Call(objectExpression, method, Expression.Constant("A"), Expression.Constant("B"));
            var transformer      = new ReplaceMethodCallTransformer();
            var result           = transformer.Transform(expression);

            Assert.That(result, Is.InstanceOf(typeof(SqlFunctionExpression)));
            Assert.That(result.Type, Is.EqualTo(typeof(string)));
            Assert.That(((SqlFunctionExpression)result).SqlFunctioName, Is.EqualTo("REPLACE"));
            Assert.That(((SqlFunctionExpression)result).Args[0], Is.EqualTo(objectExpression));
            Assert.That(((SqlFunctionExpression)result).Args.Count, Is.EqualTo(3));
        }