public void Translate_FromDateTimeConstant_RendersCorrectly() { // Arrange var serializer = new DefaultSerializer(); var visitor = new Mock <N1QlExpressionTreeVisitor>(new N1QlQueryGenerationContext() { Serializer = serializer, MemberNameResolver = new ExtendedTypeSerializerMemberNameResolver(serializer) }) { CallBase = true }; var method = typeof(UnixMillisecondsDateTime).GetTypeInfo().GetMethod("FromDateTime", new[] { typeof(DateTime) }); Assert.NotNull(method); var expression = Expression.Call(method, Expression.Constant(ExampleDateTime)); var translator = new UnixMillisecondsMethodCallTranslator(); // Act translator.Translate(expression, visitor.Object); var result = visitor.Object.GetN1QlExpression(); // Assert Assert.AreEqual($"STR_TO_MILLIS(\"{ExampleDateTimeString}\")", result); }
public void Translate_FromDateTimeIso_RendersCorrectly() { // Arrange var serializer = new DefaultSerializer(); var extentNameProvider = new N1QlExtentNameProvider(); var visitor = new Mock <N1QlExpressionTreeVisitor>(new N1QlQueryGenerationContext { Serializer = serializer, MemberNameResolver = new ExtendedTypeSerializerMemberNameResolver(serializer), ExtentNameProvider = extentNameProvider }) { CallBase = true }; var method = typeof(UnixMillisecondsDateTime).GetTypeInfo().GetMethod("FromDateTime", new[] { typeof(DateTime) }); Assert.NotNull(method); var property = typeof(Iso).GetTypeInfo().GetProperty("Value"); Assert.NotNull(property); var querySource = new Mock <IQuerySource>(); querySource.SetupGet(m => m.ItemName).Returns("p"); querySource.SetupGet(m => m.ItemType).Returns(typeof(Iso)); var querySourceReference = new QuerySourceReferenceExpression(querySource.Object); var expression = Expression.Call(method, Expression.MakeMemberAccess( querySourceReference, property)); var translator = new UnixMillisecondsMethodCallTranslator(); // Act translator.Translate(expression, visitor.Object); var result = visitor.Object.GetN1QlExpression(); // Assert var extentName = extentNameProvider.GetExtentName(querySource.Object); Assert.AreEqual($"STR_TO_MILLIS({extentName}.`value`)", result); }
public void Translate_NoMethod_ThrowsArgumentNullException() { // Arrange var visitor = new Mock <N1QlExpressionTreeVisitor>(new N1QlQueryGenerationContext()) { CallBase = true }; var translator = new UnixMillisecondsMethodCallTranslator(); // Act/Assert var result = Assert.Throws <ArgumentNullException>(() => translator.Translate(null, visitor.Object)); Assert.AreEqual("methodCallExpression", result.ParamName); }
public void Translate_NoVisitor_ThrowsArgumentNullException() { // Arrange var method = typeof(UnixMillisecondsDateTime).GetTypeInfo().GetMethod("FromDateTime", new [] { typeof(DateTime) }); Assert.NotNull(method); var expression = Expression.Call(method, Expression.Constant(ExampleDateTime)); var translator = new UnixMillisecondsMethodCallTranslator(); // Act/Assert var result = Assert.Throws <ArgumentNullException>(() => translator.Translate(expression, null)); Assert.AreEqual("expressionTreeVisitor", result.ParamName); }