public void FunctionMultipleTest() { AQuery query = _db.Query .Let("x", ANumeric.Coalesce(AValue.Bind(2), AValue.Bind(5))); Assert.AreEqual("LET x = NOT_NULL(@var0,@var1)", query.GetExpression()); Assert.AreEqual(2, query.GetBindedVars()[0]); Assert.AreEqual(5, query.GetBindedVars()[1]); }
public void FunctionSingleTest() { AQuery query = _db.Query .Let("x", ANumeric.Min(AValueArray.Bind(2, 5, 6))); Assert.AreEqual("LET x = MIN([@var0,@var1,@var2])", query.GetExpression()); Assert.AreEqual(2, query.GetBindedVars()[0]); Assert.AreEqual(5, query.GetBindedVars()[1]); Assert.AreEqual(6, query.GetBindedVars()[2]); }
public void LetSubQueryTest() { AQuery subquery = _db.Query .For("y", AValue.Field(TestDocumentCollectionName)) .Collect() .Aggregate("max", ANumeric.Max(AValue.Field("y.value"))) .Return(AReturn.Variable("max")); AQuery query = _db.Query .Let("x", AValue.Subquery <int>(subquery)); Assert.AreEqual("LET x = (FOR y IN " + TestDocumentCollectionName + " COLLECT AGGREGATE max = MAX(y.value) RETURN max)", query.GetExpression()); }