public async Task TableEntity_IfBoundToSdkTableEntity_CanCall()
        {
            // Arrange
            await TableClient.AddEntityAsync(CreateTableEntity(PartitionKey, RowKey, "Value", "Foo"));

            // Act
            await CallAsync <BindTableEntityToSdkTableEntityProgram>();

            // Assert
            SdkTableEntity entity = await TableClient.GetEntityAsync <SdkTableEntity>(PartitionKey, RowKey);

            Assert.NotNull(entity);
            Assert.AreEqual("Bar", entity.Value);
        }
        private async Task TestBindToConcurrentlyUpdatedTableEntity <T>(string parameterName)
        {
            // Arrange
            await TableClient.CreateIfNotExistsAsync();

            await TableClient.AddEntityAsync(CreateTableEntity(PartitionKey, RowKey, "Value", "Foo"));

            // Act & Assert
            var exception = Assert.CatchAsync <FunctionInvocationException>(async() => await CallAsync <T>("Call"));

            AssertInvocationETagFailure(parameterName, exception);
            SdkTableEntity entity = await TableClient.GetEntityAsync <SdkTableEntity>(PartitionKey, RowKey);

            Assert.NotNull(entity);
            Assert.AreEqual("FooBackground", entity.Value);
        }
            public static async Task Call([Table(TableNameExpression, PartitionKey, RowKey)] SdkTableEntity entity,
                                          [Table(TableNameExpression)] TableClient table)
            {
                Assert.NotNull(entity);
                Assert.AreEqual("Foo", entity.Value);
                // Update the entity to invalidate the version read by this method.
                await table.UpdateEntityAsync(new SdkTableEntity
                {
                    PartitionKey = PartitionKey,
                    RowKey       = RowKey,
                    Value        = "FooBackground"
                }, ETag.All);

                // The attempted update by this method should now fail.
                entity.Value = "Bar";
            }
        public async Task TableEntity_IfBoundToJObject_CanCall()
        {
            // Arrange
            await TableClient.AddEntityAsync(CreateTableEntity(PartitionKey, RowKey, "Value", "Foo"));

            await CallAsync <BindTableEntityToJObjectProgram>(arguments : new
            {
                table = TableName, // Test resolution
                pk1   = PartitionKey,
                rk1   = RowKey
            });

            // Assert
            SdkTableEntity entity = await TableClient.GetEntityAsync <SdkTableEntity>(PartitionKey, RowKey);

            Assert.NotNull(entity);
        }
            public static async Task Call([Table(TableNameExpression)] ICollector <ITableEntity> collector,
                                          [Table(TableNameExpression)] TableClient table)
            {
                SdkTableEntity entity = await table.GetEntityAsync <SdkTableEntity>(PartitionKey, RowKey);

                Assert.NotNull(entity);
                Assert.AreEqual("Foo", entity.Value);
                // Update the entity to invalidate the version read by this method.
                await table.UpdateEntityAsync(new SdkTableEntity
                {
                    PartitionKey = PartitionKey,
                    RowKey       = RowKey,
                    Value        = "FooBackground"
                }, ETag.All);

                // The attempted update by this method should now fail.
                collector.Add(new TableEntity(PartitionKey, RowKey)
                {
                    ETag      = entity.ETag,
                    ["Value"] = "Bar"
                });
            }
 public static void Run([QueueTrigger(TriggerQueueName)] TableEntityMessage message,
                        [Table("{TableName}", "{PartitionKey}", "{RowKey}")] SdkTableEntity entity)
 {
     entity.Value = 456;
 }
 public static void Run([Table("{TableName}", "{PartitionKey}", "{RowKey}")] SdkTableEntity entity)
 {
     entity.Value = 456;
 }
 public static void Call([Table(TableNameExpression, PartitionKey, RowKey)] SdkTableEntity entity)
 {
     Assert.NotNull(entity);
     Assert.AreEqual("Foo", entity.Value);
     entity.Value = "Bar";
 }