public async Task CanInsertOrUpdate() { string tableName = GetRandomTableName(); try { string partKey = Guid.NewGuid().ToString(); string rowkey = Guid.NewGuid().ToString(); var proto = new TableProtocol(StorageAccountName, StorageAccountKey); var entity = new TableEntityModel { PartitionKey = partKey, RowKey = rowkey }; entity["val1"] = 1; entity["val12"] = 2.0; entity["val13"] = DateTime.Now; await proto.InsertOrUpdate(tableName, entity); TableEntityModel getResult = await proto.Get(tableName, partKey, rowkey); Assert.Equal(5, getResult.Count); foreach (var item in entity) { Assert.Equal(item.Value, entity[item.Key]); } entity["val1"] = 100; entity["val4"] = "foo"; await proto.InsertOrUpdate(tableName, entity); getResult = await proto.Get(tableName, partKey, rowkey); Assert.Equal(6, getResult.Count); foreach (var item in entity) { Assert.Equal(item.Value, entity[item.Key]); } } finally { var proto = new TableProtocol(StorageAccountName, StorageAccountKey); proto.DeleteTable(tableName).Wait(); } }
public async Task CanList() { string tableName = GetRandomTableName(); try { string partKey = Guid.NewGuid().ToString(); var proto = new TableProtocol(StorageAccountName, StorageAccountKey); List <Task> tasks = new List <Task>(); for (int i = 0; i < 10; i++) { var entity = new TableEntityModel { PartitionKey = partKey, RowKey = Guid.NewGuid().ToString() }; entity["val1"] = 1; entity["val12"] = 2.0; entity["val13"] = DateTime.Now; tasks.Add(proto.InsertOrUpdate(tableName, entity)); } await Task.WhenAll(tasks); TableEntityModelCollection results = await proto.List(tableName, partKey, 8); Assert.NotNull(results.ContinuationToken); Assert.Equal(8, results.Entities.Count); results = await proto.List(tableName, partKey, 8, results.ContinuationToken); Assert.Null(results.ContinuationToken); Assert.Equal(2, results.Entities.Count); } finally { var proto = new TableProtocol(StorageAccountName, StorageAccountKey); proto.DeleteTable(tableName).Wait(); } }