public async Task ConcurrentInsert() { var table = await GetTestTable(); var entityKey = PartitionedKey.Of(nameof(this.ConcurrentInsert)); await table.Put(entityKey, new Dict { ["Key"] = "value0" }); Assert.IsFalse((await table.Put(entityKey, new Dict { ["Key"] = "value1" }, null)).Item1); }
public async Task ConcurrentUpdate() { var table = await GetTestTable(); var entityKey = PartitionedKey.Of(nameof(this.ConcurrentUpdate)); await table.Put(entityKey, new Dict { ["Key"] = "value0" }); var original = await table.TryGetVersioned(entityKey); Assert.IsTrue((await table.Put(entityKey, new Dict { ["Key"] = "value1" }, versionToUpdate: original.Version)).Item1); Assert.IsFalse((await table.Put(entityKey, new Dict { ["Key"] = "value2" }, versionToUpdate: original.Version)).Item1); var newEntry = await table.TryGetVersioned(entityKey); Assert.AreEqual("value1", newEntry.Value["Key"]); }
public async Task Querying() { var table = await GetTestTable(); var key = PartitionedKey.Of(nameof(this.Querying)); var aToZ = new Range <string>("A", "Z"); var aToS = new Range <string>("A", "M"); var exactRange = Range.SingleElement(nameof(this.Querying)); await table.Put(key, new Dict {}); var rowRangeWithResult = await table.Query(partitionRange : exactRange, rowRange : aToZ); var partitionRangeWithResult = await table.Query(partitionRange : aToZ, rowRange : exactRange); var rowRangeWithoutResult = await table.Query(partitionRange : exactRange, rowRange : aToS); var partitionRangeWithoutResult = await table.Query(partitionRange : aToS, rowRange : exactRange); Assert.AreEqual(2, rowRangeWithResult.Results.Count + partitionRangeWithResult.Results.Count); Assert.AreEqual(0, rowRangeWithoutResult.Results.Count + partitionRangeWithoutResult.Results.Count); }