示例#1
0
        public void Transform_TwoArguments()
        {
            var method = typeof(StringExtensions).GetMethod(
                "SqlContainsFulltext",
                BindingFlags.Public | BindingFlags.Static,
                null,
                CallingConventions.Any,
                new[] { typeof(string), typeof(string), typeof(string) },
                null);
            var objectExpression = Expression.Constant("Test");
            var argument1        = Expression.Constant("es");
            var language         = Expression.Constant("language");
            var expression       = Expression.Call(method, objectExpression, argument1, language);
            var transformer      = new ContainsFulltextMethodCallTransformer();

            var result = transformer.Transform(expression);

            var argumentExpression = Expression.Constant(string.Format("{0}", argument1.Value));

            var compositeExpression = new SqlCompositeCustomTextGeneratorExpression(
                typeof(string), new SqlCustomTextExpression("LANGUAGE ", typeof(string)), language);

            var expectedResult =
                new SqlFunctionExpression(typeof(bool), "CONTAINS", objectExpression, argumentExpression, compositeExpression);

            SqlExpressionTreeComparer.CheckAreEqualTrees(expectedResult, result);
        }
        public void GetTransformer()
        {
            var registryMock = MockRepository.GenerateStrictMock <IMethodCallTransformerProvider>();
            var methodCallTransformerRegistry = new CompoundMethodCallTransformerProvider(registryMock);
            var methodCallExpression          = ExpressionHelper.CreateMethodCallExpression <Cook>();
            var fakeTransformer = new ContainsFulltextMethodCallTransformer();

            registryMock
            .Expect(mock => mock.GetTransformer(methodCallExpression))
            .Return(fakeTransformer);
            registryMock.Replay();

            var result = methodCallTransformerRegistry.GetTransformer(methodCallExpression);

            registryMock.VerifyAllExpectations();
            Assert.That(result, Is.SameAs(fakeTransformer));
        }
示例#3
0
        public void Transform_OneArgument()
        {
            var method = typeof(StringExtensions).GetMethod(
                "SqlContainsFulltext",
                BindingFlags.Public | BindingFlags.Static,
                null,
                CallingConventions.Any,
                new[] { typeof(string), typeof(string) },
                null);
            var objectExpression = Expression.Constant("Test");
            var argument1        = Expression.Constant("es");
            var expression       = Expression.Call(method, objectExpression, argument1);
            var transformer      = new ContainsFulltextMethodCallTransformer();

            var result = transformer.Transform(expression);

            var rightExpression = Expression.Constant(string.Format("{0}", argument1.Value));
            var expectedResult  = new SqlFunctionExpression(typeof(bool), "CONTAINS", objectExpression, rightExpression);

            SqlExpressionTreeComparer.CheckAreEqualTrees(expectedResult, result);
        }