Ejemplo n.º 1
0
        public void KeysReturnsSelectiveListOfKeys()
        {
            var bucket       = Bucket + "_" + Guid.NewGuid().ToString();
            var originalKeys = new List <string>();

            for (var i = 0; i < 10; i++)
            {
                var o = new RiakObject(bucket, i.ToString(), "{ value: \"this is an object\" }");
                originalKeys.Add(o.Key);

                Client.Put(o);
            }

            var mr = new RiakMapReduceQuery()
                     .Inputs(RiakIndex.Keys(bucket, "2", "6"))
                     .ReduceErlang(r => r.ModFun("riak_kv_mapreduce", "reduce_identity")
                                   .Argument("do_prereduce")
                                   .Keep(true));

            var result = Client.MapReduce(mr);
            var keys   = result.Value.PhaseResults.SelectMany(x => x.GetObjectIds()).ToList();

            result.IsSuccess.ShouldBeTrue(result.ErrorMessage);
            keys.Count.ShouldEqual(5);

            foreach (var key in keys)
            {
                key.Bucket.ShouldNotBeNullOrEmpty();
                key.Key.ShouldNotBeNullOrEmpty();
                originalKeys.Contains(key.Key).ShouldBeTrue();
            }
        }
        public void AllKeysReturnsListOfKeys()
        {
            var insertedKeys = GenerateIntKeyObjects("AllKeys");

            var mr = new RiakMapReduceQuery().Inputs(RiakIndex.AllKeys(Bucket));

            var result = Client.RunMapReduceQuery(mr).WaitUntil(MapReduceTestHelpers.OnePhaseWithTenResultsFound);

            var queriedKeys = result.Value.PhaseResults.SelectMany(x => x.GetObjectIds()).ToList();

            result.IsSuccess.ShouldBeTrue(result.ErrorMessage);

            var foundKeys = string.Join("\",\r\n\t\"", queriedKeys);

            if (foundKeys.Length > 0)
            {
                foundKeys = "Found keys: \"" + foundKeys + "\"";
            }

            CollectionAssert.IsNotEmpty(queriedKeys);
            Assert.AreEqual(DefaultKeyCount, queriedKeys.Count());

            foreach (var key in queriedKeys)
            {
                key.Bucket.ShouldNotBeNullOrEmpty();
                key.Key.ShouldNotBeNullOrEmpty();
                insertedKeys.Contains(key.Key).ShouldBeTrue();
            }
        }
Ejemplo n.º 3
0
        public void AllKeysReturnsListOfKeys()
        {
            var bucket       = Bucket + "_" + Guid.NewGuid().ToString();
            var originalKeys = new List <string>();

            for (var i = 0; i < 10; i++)
            {
                var o = new RiakObject(bucket, Guid.NewGuid().ToString(), "{ value: \"this is an object\" }");
                originalKeys.Add(o.Key);

                Client.Put(o);
            }

            var mr = new RiakMapReduceQuery()
                     .Inputs(RiakIndex.AllKeys(bucket));

            var result = Client.MapReduce(mr);
            var keys   = result.Value.PhaseResults.SelectMany(x => x.GetObjectIds()).ToList();

            result.IsSuccess.ShouldBeTrue(result.ErrorMessage);
            keys.Count.ShouldEqual(10);

            foreach (var key in keys)
            {
                key.Bucket.ShouldNotBeNullOrEmpty();
                key.Key.ShouldNotBeNullOrEmpty();
                originalKeys.Contains(key.Key).ShouldBeTrue();
            }
        }
Ejemplo n.º 4
0
        public void QueryingByIntIndexReturnsAListOfKeys()
        {
            for (var i = 0; i < 10; i++)
            {
                var o = new RiakObject(Bucket, Guid.NewGuid().ToString(), "{\"value\":\"this is an object\"}");
                o.IntIndex("age").Set(32, 20);

                Client.Put(o);
            }

            var mr = new RiakMapReduceQuery()
                     .Inputs(RiakIndex.Match(Bucket, "age", 32));

            var result = Client.MapReduce(mr);

            result.IsSuccess.ShouldBeTrue(result.ErrorMessage);

            var keys = result.Value.PhaseResults.SelectMany(x => x.GetObjectIds()).ToList();

            keys.Count().ShouldEqual(10);

            foreach (var key in keys)
            {
                key.Bucket.ShouldNotBeNullOrEmpty();
                key.Key.ShouldNotBeNullOrEmpty();
            }
        }
        public void KeysReturnsSelectiveListOfKeys()
        {
            const int    keyStart     = 10;
            const int    keyCount     = 10;
            const int    idxStart     = 12;
            const int    idxEnd       = 16;
            const string keyPrefix    = "KeysReturnsSelectiveListOfKeys";
            var          originalKeys = new List <string>();


            for (var i = keyStart; i < keyStart + keyCount; i++)
            {
                var o = CreateIntKeyedRiakObject(keyPrefix, true, i);
                originalKeys.Add(o.Key);
                Client.Put(o);
            }

            var mr = new RiakMapReduceQuery()
                     .Inputs(RiakIndex.Keys(LegacyBucket, keyPrefix + "_" + idxStart, keyPrefix + "_" + idxEnd));

            var result = Client.RunMapReduceQuery(mr).WaitUntil(MapReduceTestHelpers.OnePhaseWithFiveResultsFound);

            var keys = result.Value.PhaseResults.SelectMany(x => x.GetObjectIds()).ToList();

            result.IsSuccess.ShouldBeTrue(result.ErrorMessage);
            keys.Count.ShouldEqual(5);

            foreach (var key in keys)
            {
                key.Bucket.ShouldNotBeNullOrEmpty();
                key.Key.ShouldNotBeNullOrEmpty();
                originalKeys.Contains(key.Key).ShouldBeTrue();
            }
        }
        public void QueryingDollarKeyDoesNotAppendBinIndexSuffix()
        {
            var query = new RiakMapReduceQuery()
                        .Inputs(RiakIndex.Range(new RiakIndexId("animals", "$key"), "0", "zzzzz"));

            var request       = query.ToMessage();
            var requestString = request.request.FromRiakString();

            requestString.Contains("$key").ShouldBeTrue();
            requestString.Contains("$key_bin").ShouldBeFalse();
        }
        public void TestBinMatchOldInterfaceWorks()
        {
            var indexInput = RiakIndex.Match(Bucket, Index, BinKey);

            indexInput.IndexId.IndexName.EndsWith(RiakConstants.IndexSuffix.Binary).ShouldBeTrue();

            var json = Serialize(indexInput.WriteJson);

            json.Contains(Bucket).ShouldBeTrue();
            json.Contains(BinKey).ShouldBeTrue();
        }
        public void TestIntMatchOldInterfaceWorks()
        {
            var indexInput = RiakIndex.Match(Bucket, Index, IntKey);

            indexInput.IndexId.IndexName.EndsWith(RiakConstants.IndexSuffix.Integer).ShouldBeTrue();

            var json = Serialize(indexInput.WriteJson);

            json.Contains(Bucket).ShouldBeTrue();
            json.Contains(IntKey.ToString()).ShouldBeTrue();
        }
        public void TestAllKeysWorks()
        {
            var indexInput = RiakIndex.AllKeys(BucketType, Bucket);

            var json = Serialize(indexInput.WriteJson);

            Assert.AreEqual("\"inputs\":{\"bucket\":[\"my_bucket_type\",\"my_bucket\"],\"index\":\"$bucket\",\"key\":\"my_bucket\"}", json);

            indexInput = RiakIndex.AllKeys(Bucket);
            json       = Serialize(indexInput.WriteJson);
            Assert.AreEqual("\"inputs\":{\"bucket\":\"my_bucket\",\"index\":\"$bucket\",\"key\":\"my_bucket\"}", json);
        }
        public void TestKeysWorks()
        {
            var indexInput = RiakIndex.Keys(BucketType, Bucket, BinKey, BinEndKey);

            var json = Serialize(indexInput.WriteJson);

            Assert.AreEqual("\"inputs\":{\"bucket\":[\"my_bucket_type\",\"my_bucket\"],\"index\":\"$key\",\"start\":\"dave\",\"end\":\"ed\"}", json);

            indexInput = RiakIndex.Keys(Bucket, BinKey, BinEndKey);
            json       = Serialize(indexInput.WriteJson);
            Assert.AreEqual("\"inputs\":{\"bucket\":\"my_bucket\",\"index\":\"$key\",\"start\":\"dave\",\"end\":\"ed\"}", json);
        }
        public void TestBinRangeWorks()
        {
            var indexInput = RiakIndex.Range(IndexId, BinKey, BinEndKey);

            indexInput.IndexId.IndexName.EndsWith(RiakConstants.IndexSuffix.Binary).ShouldBeTrue();

            var json = Serialize(indexInput.WriteJson);

            json.Contains(Bucket).ShouldBeTrue();
            json.Contains(BucketType).ShouldBeTrue();
            json.Contains(BinEndKey).ShouldBeTrue();
            json.Contains(BinEndKey).ShouldBeTrue();
        }
        public void TestIntRangeWorks()
        {
            var indexInput = RiakIndex.Range(IndexId, IntKey, IntEndKey);

            indexInput.IndexId.IndexName.EndsWith(RiakConstants.IndexSuffix.Integer).ShouldBeTrue();

            var json = Serialize(indexInput.WriteJson);

            json.Contains(Bucket).ShouldBeTrue();
            json.Contains(BucketType).ShouldBeTrue();
            json.Contains(IntKey.ToString()).ShouldBeTrue();
            json.Contains(IntEndKey.ToString()).ShouldBeTrue();
        }
Ejemplo n.º 13
0
        public void IntRangeQueriesReturnMultipleKeys()
        {
            for (var i = 0; i < 10; i++)
            {
                var o = new RiakObject(Bucket, Guid.NewGuid().ToString(), "{ value: \"this is an object\" }");
                o.IntIndex("age").Set(25 + i);

                Client.Put(o);
            }

            var mr = new RiakMapReduceQuery()
                     .Inputs(RiakIndex.Range(Bucket, "age", 27, 30));

            var result = Client.MapReduce(mr);

            result.IsSuccess.ShouldBeTrue(result.ErrorMessage);
            result.Value.PhaseResults.SelectMany(x => x.GetObjectIds()).Count().ShouldEqual(4);

            // TODO write tests verifying results
        }
        public void QueryingByIntIndexReturnsAListOfKeys()
        {
            GenerateGuidKeyObjects("QueryByIntIndex", (o, i) => o.IntIndex("age").Set(32, 20));

            var mr = new RiakMapReduceQuery()
                     .Inputs(RiakIndex.Match(new RiakIndexId(LegacyBucket, "age"), 32));

            var result = Client.MapReduce(mr);

            Assert.IsTrue(result.IsSuccess, result.ErrorMessage);

            var keys = result.Value.PhaseResults.SelectMany(x => x.GetObjectIds()).ToList();

            Assert.GreaterOrEqual(keys.Count(), DefaultKeyCount);

            foreach (var key in keys)
            {
                Assert.IsNotNullOrEmpty(key.Bucket);
                Assert.IsNotNullOrEmpty(key.Key);
            }
        }