public void Translate_ContainsExpression_RendersCorrectly() { // Arrange var visitor = new Mock<N1QlExpressionTreeVisitor>(new N1QlQueryGenerationContext()) { CallBase = true }; visitor.Setup(m => m.Visit(It.IsAny<ParameterExpression>())).Callback((Expression p) => { visitor.Object.Expression.Append("FAKE"); }); var method = typeof(string).GetMethod("Contains", new[] { typeof(string) }); var expression = Expression.Call(Expression.Constant("test"), method, Expression.Parameter(typeof(string))); var transformer = new ContainsMethodCallTranslator(); // Act transformer.Translate(expression, visitor.Object); var result = visitor.Object.GetN1QlExpression(); // Assert Assert.AreEqual("('test' LIKE '%' || FAKE || '%')", result); }
public void Translate_ContainsConstant_RendersCorrectly() { // Arrange var visitor = new Mock<N1QlExpressionTreeVisitor>(new N1QlQueryGenerationContext()) { CallBase = true }; var method = typeof(string).GetMethod("Contains", new[] { typeof(string) }); var expression = Expression.Call(Expression.Constant("test"), method, Expression.Constant("t")); var transformer = new ContainsMethodCallTranslator(); // Act transformer.Translate(expression, visitor.Object); var result = visitor.Object.GetN1QlExpression(); // Assert Assert.AreEqual("('test' LIKE '%t%')", result); }
public void Translate_NoVisitor_ThrowsArgumentNullException() { // Arrange var method = typeof(string).GetMethod("Contains", new[] { typeof(string) }); var expression = Expression.Call(Expression.Constant("test"), method, Expression.Constant("t")); var transformer = new ContainsMethodCallTranslator(); // Act/Assert var result = Assert.Throws<ArgumentNullException>(() => transformer.Translate(expression, null)); Assert.AreEqual("expressionTreeVisitor", result.ParamName); }
public void Translate_NoMethod_ThrowsArgumentNullException() { // Arrange var visitor = new Mock<N1QlExpressionTreeVisitor>(new N1QlQueryGenerationContext()) { CallBase = true }; var transformer = new ContainsMethodCallTranslator(); // Act/Assert var result = Assert.Throws<ArgumentNullException>(() => transformer.Translate(null, visitor.Object)); Assert.AreEqual("methodCallExpression", result.ParamName); }