public Expression Translate(MethodCallExpression methodCallExpression, N1QlExpressionTreeVisitor expressionTreeVisitor) { if (methodCallExpression == null) { throw new ArgumentNullException("methodCallExpression"); } var expression = expressionTreeVisitor.Expression; expressionTreeVisitor.VisitExpression(methodCallExpression.Arguments[0]); if (methodCallExpression.Arguments.Count > 1) { var constantExpression = methodCallExpression.Arguments[1] as ConstantExpression; if (constantExpression == null) { throw new NotSupportedException("IsValued and IsNotValued propertyName parameter must be a constant"); } expression.AppendFormat(".{0}", N1QlHelpers.EscapeIdentifier(constantExpression.Value.ToString())); } expression.Append(methodCallExpression.Method.Name == "IsValued" ? " IS VALUED" : " IS NOT VALUED"); return(methodCallExpression); }
public void GetCollectionExpression_NamedCollection_ReturnsFullExpression(string scopeName, string collectionName) { // Arrange var collectionQueryable = new Mock <ICollectionQueryable>(); collectionQueryable.SetupGet(m => m.BucketName).Returns("default"); collectionQueryable.SetupGet(m => m.ScopeName).Returns(scopeName); collectionQueryable.SetupGet(m => m.CollectionName).Returns(collectionName); // Act var result = N1QlHelpers.GetCollectionExpression(collectionQueryable.Object); // Assert Assert.AreEqual($"`default`.`{scopeName}`.`{collectionName}`", result); }
public void GetCollectionExpression_DefaultCollection_ReturnsJustBucket() { // Arrange var collectionQueryable = new Mock <ICollectionQueryable>(); collectionQueryable.SetupGet(m => m.BucketName).Returns("default"); collectionQueryable.SetupGet(m => m.ScopeName).Returns(N1QlHelpers.DefaultScopeName); collectionQueryable.SetupGet(m => m.CollectionName).Returns(N1QlHelpers.DefaultCollectionName); // Act var result = N1QlHelpers.GetCollectionExpression(collectionQueryable.Object); // Assert Assert.AreEqual("`default`", result); }
public Expression Translate(MethodCallExpression methodCallExpression, N1QlExpressionTreeVisitor expressionTreeVisitor) { if (methodCallExpression == null) { throw new ArgumentNullException("methodCallExpression"); } if (methodCallExpression.Arguments[0] is ConstantExpression keyExpression) { var expression = expressionTreeVisitor.Expression; expressionTreeVisitor.Visit(methodCallExpression.Object); expression.Append('.'); expression.Append(N1QlHelpers.EscapeIdentifier(keyExpression.Value.ToString())); } else { throw new NotSupportedException("Dictionary keys must be constants"); } return(methodCallExpression); }
public void IsValidKeyword_ReturnsFalse(string identifier) { var result = N1QlHelpers.IsValidKeyword(identifier); Assert.IsFalse(result); }
public void EscapeIdentifier_Null_ThrowsException() { Assert.Throws <ArgumentNullException>(() => N1QlHelpers.EscapeIdentifier(null)); }
public void EscapeIdentifier_WrapsSuccessfully(string identifier, string expectedResult) { var result = N1QlHelpers.EscapeIdentifier(identifier); Assert.AreEqual(expectedResult, result); }
public override void AppendToStringBuilder(StringBuilder sb) { var indexTypeStr = IndexType == N1QlIndexType.Gsi ? "GSI" : "VIEW"; sb.AppendFormat("INDEX ({0} USING {1})", N1QlHelpers.EscapeIdentifier(IndexName), indexTypeStr); }