示例#1
0
        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);
        }
示例#2
0
        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"]);
        }
示例#3
0
        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);
        }