Пример #1
0
        public void Can_Update_A_Hll()
        {
            string key = Guid.NewGuid().ToString();

            SaveHll(key);

            var add_3 = new RiakString("add_3");
            var adds  = new HashSet <string> {
                add_3
            };

            var update = new UpdateHll.Builder(adds)
                         .WithBucketType(BucketType)
                         .WithBucket(Bucket)
                         .WithKey(key)
                         .WithReturnBody(true)
                         .WithTimeout(TimeSpan.FromMilliseconds(20000))
                         .Build();

            RiakResult rslt = client.Execute(update);

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

            HllResponse response = update.Response;

            Assert.AreEqual(3, response.Cardinality);
        }
Пример #2
0
        public void Should_Construct_HllResponse_From_DtUpdateResp()
        {
            var key = new RiakString("riak_generated_key");

            var updateResp = new DtUpdateResp();

            updateResp.key       = key;
            updateResp.hll_value = 42;

            var update = new UpdateHll.Builder(DefaultAdds)
                         .WithBucketType(BucketType)
                         .WithBucket(Bucket)
                         .Build();

            update.OnSuccess(updateResp);

            HllResponse response = update.Response;

            Assert.NotNull(response);
            Assert.AreEqual(key, response.Key);
            Assert.AreEqual(42, response.Value);
        }
Пример #3
0
        private HllResponse SaveHll(string key = null)
        {
            var updateBuilder = new UpdateHll.Builder(DefaultAdds)
                                .WithBucketType(BucketType)
                                .WithBucket(Bucket)
                                .WithTimeout(TimeSpan.FromMilliseconds(20000));

            if (!string.IsNullOrEmpty(key))
            {
                updateBuilder.WithKey(key);
            }

            UpdateHll  cmd  = updateBuilder.Build();
            RiakResult rslt = client.Execute(cmd);

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

            HllResponse response = cmd.Response;

            Keys.Add(response.Key);
            Assert.IsNull(response.Context);
            return(response);
        }
Пример #4
0
        public void Should_Build_DtUpdateReq_Correctly()
        {
            var updateHllCommandBuilder = new UpdateHll.Builder(DefaultAdds);

            var q1 = new Quorum(1);
            var q2 = new Quorum(2);
            var q3 = new Quorum(3);

            updateHllCommandBuilder
            .WithBucketType(BucketType)
            .WithBucket(Bucket)
            .WithKey(Key)
            .WithW(q3)
            .WithPW(q1)
            .WithDW(q2)
            .WithReturnBody(true)
            .WithTimeout(TimeSpan.FromSeconds(20));

            UpdateHll updateHllCommand = updateHllCommandBuilder.Build();

            DtUpdateReq protobuf = (DtUpdateReq)updateHllCommand.ConstructRequest(false);

            Assert.AreEqual(Encoding.UTF8.GetBytes(BucketType), protobuf.type);
            Assert.AreEqual(Encoding.UTF8.GetBytes(Bucket), protobuf.bucket);
            Assert.AreEqual(Encoding.UTF8.GetBytes(Key), protobuf.key);
            Assert.AreEqual((uint)q3, protobuf.w);
            Assert.AreEqual((uint)q1, protobuf.pw);
            Assert.AreEqual((uint)q2, protobuf.dw);
            Assert.IsTrue(protobuf.return_body);
            Assert.IsFalse(protobuf.include_context);
            Assert.AreEqual(20000, protobuf.timeout);

            HllOp hllOpMsg = protobuf.op.hll_op;

            Assert.AreEqual(DefaultAdds, hllOpMsg.adds);
        }
Пример #5
0
        public void Should_Build_DtUpdateReq_Correctly()
        {
            var updateHllCommandBuilder = new UpdateHll.Builder(DefaultAdds);

            var q1 = new Quorum(1);
            var q2 = new Quorum(2);
            var q3 = new Quorum(3);

            updateHllCommandBuilder
                .WithBucketType(BucketType)
                .WithBucket(Bucket)
                .WithKey(Key)
                .WithW(q3)
                .WithPW(q1)
                .WithDW(q2)
                .WithReturnBody(true)
                .WithTimeout(TimeSpan.FromSeconds(20));

            UpdateHll updateHllCommand = updateHllCommandBuilder.Build();

            DtUpdateReq protobuf = (DtUpdateReq)updateHllCommand.ConstructRequest(false);

            Assert.AreEqual(Encoding.UTF8.GetBytes(BucketType), protobuf.type);
            Assert.AreEqual(Encoding.UTF8.GetBytes(Bucket), protobuf.bucket);
            Assert.AreEqual(Encoding.UTF8.GetBytes(Key), protobuf.key);
            Assert.AreEqual((uint)q3, protobuf.w);
            Assert.AreEqual((uint)q1, protobuf.pw);
            Assert.AreEqual((uint)q2, protobuf.dw);
            Assert.IsTrue(protobuf.return_body);
            Assert.IsFalse(protobuf.include_context);
            Assert.AreEqual(20000, protobuf.timeout);

            HllOp hllOpMsg = protobuf.op.hll_op;

            Assert.AreEqual(DefaultAdds, hllOpMsg.adds);
        }
        public void Can_Update_A_Hll()
        {
            string key = Guid.NewGuid().ToString();
            SaveHll(key);

            var add_3 = new RiakString("add_3");
            var adds = new HashSet<string> { add_3 };

            var update = new UpdateHll.Builder(adds)
                .WithBucketType(BucketType)
                .WithBucket(Bucket)
                .WithKey(key)
                .WithReturnBody(true)
                .WithTimeout(TimeSpan.FromMilliseconds(20000))
                .Build();

            RiakResult rslt = client.Execute(update);
            Assert.IsTrue(rslt.IsSuccess, rslt.ErrorMessage);

            HllResponse response = update.Response;
            Assert.AreEqual(3, response.Cardinality);
        }
        private HllResponse SaveHll(string key = null)
        {
            var updateBuilder = new UpdateHll.Builder(DefaultAdds)
                .WithBucketType(BucketType)
                .WithBucket(Bucket)
                .WithTimeout(TimeSpan.FromMilliseconds(20000));

            if (!string.IsNullOrEmpty(key))
            {
                updateBuilder.WithKey(key);
            }

            UpdateHll cmd = updateBuilder.Build();
            RiakResult rslt = client.Execute(cmd);
            Assert.IsTrue(rslt.IsSuccess, rslt.ErrorMessage);

            HllResponse response = cmd.Response;
            Keys.Add(response.Key);
            Assert.IsNull(response.Context);
            return response;
        }
Пример #8
0
        public void Should_Construct_HllResponse_From_DtUpdateResp()
        {
            var key = new RiakString("riak_generated_key");

            var updateResp = new DtUpdateResp();
            updateResp.key = key;
            updateResp.hll_value = 42;

            var update = new UpdateHll.Builder(DefaultAdds)
                .WithBucketType(BucketType)
                .WithBucket(Bucket)
                .Build();

            update.OnSuccess(updateResp);

            HllResponse response = update.Response;

            Assert.NotNull(response);
            Assert.AreEqual(key, response.Key);
            Assert.AreEqual(42, response.Value);
        }