Пример #1
0
        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]);
        }
Пример #2
0
        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]);
        }
Пример #3
0
        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());
        }