public void UpdateEntity_ExistingEntityWithMismatchedRequiredETag_ThrowsException()
        {
            ITableServiceClient client = new TableServiceClient(_accountSettings);
            var tableName = _util.GenerateSampleTableName();
            _util.CreateTable(tableName);
            var sampleEntity = new SampleEntity()
            {
                PartitionKey = "1",
                RowKey = "A",
                ExtraValue = "Extra"
            };
            var etag = _util.InsertTableEntity(tableName, sampleEntity.PartitionKey, sampleEntity.RowKey);

            client.UpdateEntity(tableName, sampleEntity, etag.Replace("201","XXX"));    // etag includes a date string, so we can easily swap out part to create an invalid one

            // expects exception
        }
        public void UpdateEntity_NonexistentEntity_ExpectsException()
        {
            ITableServiceClient client = new TableServiceClient(_accountSettings);
            var tableName = _util.GenerateSampleTableName();
            var sampleEntity = new SampleEntity()
            {
                PartitionKey = "1",
                RowKey = "A",
                ExtraValue = "Extra"
            };

            client.UpdateEntity(tableName, sampleEntity);

            // expects exception
        }
        public void UpdateEntity_ExistingEntityWithMatchingRequiredETag_UpdatesEntityInTable()
        {
            ITableServiceClient client = new TableServiceClient(_accountSettings);
            var tableName = _util.GenerateSampleTableName();
            _util.CreateTable(tableName);
            var sampleEntity = new SampleEntity()
            {
                PartitionKey = "1",
                RowKey = "A",
                ExtraValue = "Extra"
            };
            var etag = _util.InsertTableEntity(tableName, sampleEntity.PartitionKey, sampleEntity.RowKey);

            client.UpdateEntity(tableName, sampleEntity, etag);

            _util.AssertEntityExists(tableName, sampleEntity);
            var entity = _util.GetEntity<SampleMSEntity>(tableName, sampleEntity.PartitionKey, sampleEntity.RowKey);
            Assert.AreEqual(sampleEntity.ExtraValue, entity.ExtraValue);
        }