예제 #1
0
        public void Test_0303_Limit()
        {
            KiiQuery query = new KiiQuery();

            query.Limit = -1;
            Assert.AreEqual("{\"bucketQuery\":{\"clause\":{\"type\":\"all\"}}}", query.ToString());
        }
예제 #2
0
        public void Test_1_1_CountAllWhenObjectNotExists()
        {
            string    bucketName = "TestBucket" + CurrentTimeMillis();
            KiiBucket bucket     = Kii.Bucket(bucketName);

            KiiBucket      callbackBucket = null;
            KiiQuery       callbackQuery  = null;
            int            count          = -1;
            Exception      exp            = null;
            CountDownLatch cd             = new CountDownLatch(1);

            bucket.Count((KiiBucket b, KiiQuery q, int c, Exception e) => {
                callbackBucket = b;
                callbackQuery  = q;
                count          = c;
                exp            = e;
                cd.Signal();
            });

            if (!cd.Wait(new TimeSpan(0, 0, 0, 3)))
            {
                Assert.Fail("Callback not fired.");
            }
            Assert.IsNotNull(callbackBucket);
            Assert.AreEqual(bucket.Uri, callbackBucket.Uri);
            Assert.IsNotNull(callbackQuery);
            Assert.AreEqual(new KiiQuery(null).ToString(), callbackQuery.ToString());
            Assert.IsNull(exp);
            Assert.AreEqual(0, count);
        }
예제 #3
0
        private string CountAggregationQuery(KiiQuery query)
        {
            // generate aggregations
            JsonArray  aggregations = new JsonArray();
            JsonObject json         = new JsonObject();

            json.Put("type", "COUNT");
            json.Put("putAggregationInto", "count_field");
            aggregations.Put(json);

            // add aggregations with bucketQuery.
            JsonObject queryJson       = new JsonObject(query.ToString());
            JsonObject bucketQueryJson = queryJson.GetJsonObject("bucketQuery");

            bucketQueryJson.Put("aggregations", aggregations);

            // clobbering the new value of bucketQuery
            queryJson.Put("bucketQuery", bucketQueryJson);
            return(queryJson.ToString());
        }
예제 #4
0
        public void Test_2_2_CountWithQueryWhenObjectExistsInBucket()
        {
            string    bucketName = "TestBucket" + CurrentTimeMillis();
            KiiBucket bucket     = Kii.Bucket(bucketName);

            for (int i = 0; i < 10; i++)
            {
                KiiObject obj = bucket.NewKiiObject();
                obj ["key"] = "value";
                obj.Save();
            }

            KiiBucket      callbackBucket = null;
            KiiQuery       callbackQuery  = null;
            int            count          = -1;
            Exception      exp            = null;
            CountDownLatch cd             = new CountDownLatch(1);

            KiiClause clause = KiiClause.Equals("key", "value");
            KiiQuery  query  = new KiiQuery(clause);

            bucket.Count(query, (KiiBucket b, KiiQuery q, int c, Exception e) => {
                callbackBucket = b;
                callbackQuery  = q;
                count          = c;
                exp            = e;
                cd.Signal();
            });

            if (!cd.Wait(new TimeSpan(0, 0, 0, 3)))
            {
                Assert.Fail("Callback not fired.");
            }
            Assert.IsNotNull(callbackBucket);
            Assert.AreEqual(bucket.Uri, callbackBucket.Uri);
            Assert.IsNotNull(callbackQuery);
            Assert.AreEqual(query.ToString(), callbackQuery.ToString());
            Assert.IsNull(exp);
            Assert.AreEqual(10, count);
        }
예제 #5
0
        public void Test_0200_SortByDesc()
        {
            KiiQuery query = new KiiQuery();

            query.SortByDesc("score");

            Assert.AreEqual("{\"bucketQuery\":{\"clause\":{\"type\":\"all\"},\"orderBy\":\"score\",\"descending\":true}}", query.ToString());
        }
예제 #6
0
        public void Test_0002_KiiQuery_clause()
        {
            KiiQuery query = new KiiQuery(KiiClause.Equals("name", "kii"));

            Assert.AreEqual("{\"bucketQuery\":{\"clause\":{\"type\":\"eq\",\"field\":\"name\",\"value\":\"kii\"}}}", query.ToString());
        }
예제 #7
0
        public void Test_0001_KiiQuery_null()
        {
            KiiQuery query = new KiiQuery(null);

            Assert.AreEqual("{\"bucketQuery\":{\"clause\":{\"type\":\"all\"}}}", query.ToString());
        }
예제 #8
0
        public void Test_0400_NextPaginationKey()
        {
            KiiQuery query = new KiiQuery();

            query.NextPaginationKey = "abcd";

            Assert.AreEqual("{\"bucketQuery\":{\"clause\":{\"type\":\"all\"}},\"paginationKey\":\"abcd\"}", query.ToString());
        }
예제 #9
0
        public void Test_0301_Limit_1()
        {
            KiiQuery query = new KiiQuery();

            query.Limit = 1;

            Assert.AreEqual("{\"bucketQuery\":{\"clause\":{\"type\":\"all\"}},\"bestEffortLimit\":1}", query.ToString());
        }