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)); }
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); }