private MapResponse SaveMap(string key = null) { var mapOp = new UpdateMap.MapOperation(); mapOp.IncrementCounter("counter_1", 1) .AddToSet("set_1", "value_1") .SetRegister("register_1", "register_value_1") .SetFlag("flag_1", true); var map_2 = mapOp.Map("map_2"); map_2.IncrementCounter("counter_1", 2) .AddToSet("set_1", "value_1") .SetRegister("register_1", "register_value_1") .SetFlag("flag_1", true); var map_3 = map_2.Map("map_3"); map_3.IncrementCounter("counter_1", 3); var updateBuilder = new UpdateMap.Builder(mapOp) .WithBucketType(BucketType) .WithBucket(Bucket) .WithReturnBody(true) .WithTimeout(TimeSpan.FromMilliseconds(20000)); if (!string.IsNullOrEmpty(key)) { updateBuilder.WithKey(key); } UpdateMap cmd = updateBuilder.Build(); RiakResult rslt = client.Execute(cmd); Assert.IsTrue(rslt.IsSuccess, rslt.ErrorMessage); MapResponse response = cmd.Response; Keys.Add(response.Key); Assert.True(EnumerableUtil.NotNullOrEmpty(response.Context)); return(response); }
public void Maps() { const string firstNameRegister = "first_name"; const string lastNameRegister = "last_name"; const string enterpriseCustomerFlag = "enterprise_customer"; const string pageVisitsCounter = "page_visits"; const string interestsSet = "interests"; var idrisAdds = new[] { "acting", "being Stringer Bell" }; var mapOp = new UpdateMap.MapOperation() .SetRegister(firstNameRegister, "Idris") .SetRegister(lastNameRegister, "Elba") .SetFlag(enterpriseCustomerFlag, false) .IncrementCounter(pageVisitsCounter, 10) .AddToSet(interestsSet, idrisAdds); var cmd = new UpdateMap.Builder() .WithBucketType("maps") .WithBucket("customers") .WithKey("idris_elba") .WithMapOperation(mapOp) .Build(); RiakResult rslt = client.Execute(cmd); CheckResult(rslt); var joanJettAdds = new[] { "loving rock and roll", "being in the Blackhearts" }; mapOp = new UpdateMap.MapOperation() .SetRegister(firstNameRegister, "Joan") .SetRegister(lastNameRegister, "Jett") .SetFlag(enterpriseCustomerFlag, false) .IncrementCounter(pageVisitsCounter, 25) .AddToSet(interestsSet, joanJettAdds); cmd = new UpdateMap.Builder() .WithBucketType("maps") .WithBucket("customers") .WithKey("joan_jett") .WithMapOperation(mapOp) .Build(); rslt = client.Execute(cmd); CheckResult(rslt); WaitForSearch(); DoSearch("customers", "page_visits_counter:[15 TO *]"); // Add "alter ego" sub-map const string nameRegister = "name"; const string alterEgoMap = "alter_ego"; mapOp = new UpdateMap.MapOperation(); mapOp.Map(alterEgoMap).SetRegister(nameRegister, "John Luther"); cmd = new UpdateMap.Builder() .WithBucketType("maps") .WithBucket("customers") .WithKey("idris_elba") .WithMapOperation(mapOp) .Build(); rslt = client.Execute(cmd); CheckResult(rslt); PrintObject(cmd.Response.Value); WaitForSearch(); DoSearch("customers", "alter_ego_map.name_register:*"); }
private MapResponse SaveMap(string key = null) { var mapOp = new UpdateMap.MapOperation(); mapOp.IncrementCounter("counter_1", 1) .AddToSet("set_1", "value_1") .SetRegister("register_1", "register_value_1") .SetFlag("flag_1", true); var map_2 = mapOp.Map("map_2"); map_2.IncrementCounter("counter_1", 2) .AddToSet("set_1", "value_1") .SetRegister("register_1", "register_value_1") .SetFlag("flag_1", true); var map_3 = map_2.Map("map_3"); map_3.IncrementCounter("counter_1", 3); var updateBuilder = new UpdateMap.Builder(mapOp) .WithBucketType(BucketType) .WithBucket(Bucket) .WithReturnBody(true) .WithTimeout(TimeSpan.FromMilliseconds(20000)); if (!string.IsNullOrEmpty(key)) { updateBuilder.WithKey(key); } UpdateMap cmd = updateBuilder.Build(); RiakResult rslt = client.Execute(cmd); Assert.IsTrue(rslt.IsSuccess, rslt.ErrorMessage); MapResponse response = cmd.Response; Keys.Add(response.Key); Assert.True(EnumerableUtil.NotNullOrEmpty(response.Context)); return response; }
public void Maps() { var builder = new UpdateMap.Builder() .WithBucketType("maps") .WithBucket("customers") .WithKey("ahmed_info"); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Initial import of Ahmed's data and contact"); var mapOperation = new UpdateMap.MapOperation(); // Ahmed's first name mapOperation.SetRegister("first_name", "Ahmed"); // Ahmed's phone number mapOperation.SetRegister("phone_number", "5551234567"); builder.WithMapOperation(mapOperation); MapResponse response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Set Ahmed to NOT be an enterprise customer right now"); mapOperation = new UpdateMap.MapOperation(); mapOperation.SetFlag("enterprise_customer", false); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("enterprise_customer flag value"); Map ahmedMap = response.Value; Console.WriteLine("Ahmed enterprise_customer: {0}", ahmedMap.Flags["enterprise_customer"]); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Add page visits counter for Ahmed"); mapOperation = new UpdateMap.MapOperation(); mapOperation.IncrementCounter("page_visits", 1); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Add Ahmed's interests set"); var interestsAdds = new[] { "robots", "opera", "motorcycles" }; mapOperation = new UpdateMap.MapOperation(); mapOperation.AddToSet("interests", interestsAdds); builder.WithMapOperation(mapOperation); response = SaveMap(builder); ahmedMap = response.Value; Assert.True(ahmedMap.Sets.GetValue("interests").Contains("robots")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("opera")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("motorcycles")); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Updating Ahmed's interests"); mapOperation = new UpdateMap.MapOperation(); mapOperation.AddToSet("interests", "indie pop"); mapOperation.RemoveFromSet("interests", "opera"); builder .WithMapOperation(mapOperation) .WithContext(response.Context); response = SaveMap(builder); ahmedMap = response.Value; Assert.False(ahmedMap.Sets.GetValue("interests").Contains("opera")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("indie pop")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("robots")); Assert.True(ahmedMap.Sets.GetValue("interests").Contains("motorcycles")); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Adding Annika map"); mapOperation = new UpdateMap.MapOperation(); UpdateMap.MapOperation annikaInfoOperation = mapOperation.Map("annika_info"); annikaInfoOperation.SetRegister("first_name", "Annika"); annikaInfoOperation.SetRegister("last_name", "Weiss"); annikaInfoOperation.SetRegister("phone_number", "5559876543"); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Annika's first name"); ahmedMap = response.Value; Console.WriteLine(ahmedMap.Maps["annika_info"].Registers.GetValue("first_name")); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Removing Annika's first name"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").RemoveRegister("first_name"); builder .WithMapOperation(mapOperation) .WithContext(response.Context); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Storing Annika's plan flags"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info") .SetFlag("enterprise_plan", false) .SetFlag("family_plan", false) .SetFlag("free_plan", true); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Is Annika on enterprise plan?"); ahmedMap = response.Value; Console.WriteLine(ahmedMap.Maps["annika_info"].Flags["enterprise_plan"]); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Adding Annika's widget_purchases counter"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").IncrementCounter("widget_purchases", 1); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Adding Annika's interests in a set"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").AddToSet("interests", "tango dancing"); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Remove \"tango dancing\" from Annika's interests"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").RemoveFromSet("interests", "tango dancing"); builder .WithMapOperation(mapOperation) .WithContext(response.Context); response = SaveMap(builder); Console.WriteLine("------------------------------------------------------------------------\n"); Console.WriteLine("Add specific purchase info to Annika's data"); mapOperation = new UpdateMap.MapOperation(); mapOperation.Map("annika_info").Map("purchase") .SetFlag("first_purchase", true) .SetRegister("amount", "1271") .AddToSet("items", "large widget"); builder.WithMapOperation(mapOperation); response = SaveMap(builder); Console.WriteLine("Context: {0}", Convert.ToBase64String(response.Context)); }
public void Should_Build_DtUpdateReq_Correctly() { var mapOp = new UpdateMap.MapOperation() .IncrementCounter("counter_1", 50) .RemoveCounter("counter_2") .AddToSet("set_1", "set_value_1") .RemoveFromSet("set_2", "set_value_2") .RemoveSet("set_3") .SetRegister("register_1", "register_value_1") .RemoveRegister("register_2") .SetFlag("flag_1", true) .RemoveFlag("flag_2") .RemoveMap("map_3"); mapOp.Map("map_2").IncrementCounter("counter_1", 50) .RemoveCounter("counter_2") .AddToSet("set_1", "set_value_1") .RemoveFromSet("set_2", "set_value_2") .RemoveSet("set_3") .SetRegister("register_1", "register_value_1") .RemoveRegister("register_2") .SetFlag("flag_1", true) .RemoveFlag("flag_2") .RemoveMap("map_3"); var updateMapCommandBuilder = new UpdateMap.Builder(mapOp); var q1 = new Quorum(1); var q2 = new Quorum(2); var q3 = new Quorum(3); updateMapCommandBuilder .WithBucketType(BucketType) .WithBucket(Bucket) .WithKey(Key) .WithContext(Context) .WithW(q3) .WithPW(q1) .WithDW(q2) .WithReturnBody(true) .WithIncludeContext(false) .WithTimeout(TimeSpan.FromSeconds(20)); UpdateMap updateMapCommand = updateMapCommandBuilder.Build(); DtUpdateReq protobuf = (DtUpdateReq)updateMapCommand.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); Assert.AreEqual(Context, protobuf.context); MapOp mapOpMsg = protobuf.op.map_op; VerifyRemoves(mapOpMsg.removes); MapUpdate innerMapUpdate = VerifyUpdates(mapOpMsg.updates, true); VerifyRemoves(innerMapUpdate.map_op.removes); VerifyUpdates(innerMapUpdate.map_op.updates, false); }