/// <summary> /// Covers: /// - queue binding to custom object /// - queue trigger /// - table writing /// </summary> public static void QueueToICollectorAndQueue( [QueueTrigger(TestQueueNameEtag)] CustomObject e2equeue, [Table(TableName)] ICollector <ITableEntity> table, [Queue(TestQueueName)] out CustomObject output) { const string tableKeys = "testETag"; DynamicTableEntity result = new DynamicTableEntity { PartitionKey = tableKeys, RowKey = tableKeys, Properties = new Dictionary <string, EntityProperty>() { { "Text", new EntityProperty("before") }, { "Number", new EntityProperty("1") } } }; table.Add(result); result.Properties["Text"] = new EntityProperty("after"); result.ETag = "*"; table.Add(result); output = e2equeue; }
/// <summary> /// Covers: /// - queue binding to custom object /// - queue trigger /// - table writing /// </summary> public static void QueueToTable( [QueueTrigger(TestQueueName)] CustomObject e2equeue, [Queue(DoneQueueName)] out string e2edone) { // Write a queue message to signal the scenario completion e2edone = "done"; }
/// <summary> /// Covers: /// - blob binding to custom object /// - blob trigger /// - queue writing /// - blob name pattern binding /// </summary> public static void BlobToQueue( [BlobTrigger(ContainerName + @"/{name}")] CustomObject input, string name, [Queue(TestQueueNameEtag)] out CustomObject output) { CustomObject result = new CustomObject() { Text = input.Text + " " + name, Number = input.Number + 1 }; output = result; }
/// <summary> /// Covers: /// - blob binding to custom object /// - blob trigger /// - queue writing /// - blob name pattern binding /// </summary> public static void BlobToQueue( [BlobTrigger(ContainerName + @"/{name}")] string input, string name, [Queue(TestQueueNameEtag)] out CustomObject output) { // TODO: Use CustomObject as param when POCO blob supported: // https://github.com/Azure/azure-webjobs-sdk/issues/995 var inputObject = JsonConvert.DeserializeObject <CustomObject>(input); CustomObject result = new CustomObject() { Text = inputObject.Text + " " + name, Number = inputObject.Number + 1 }; output = result; }
private async Task UploadTestObject() { string testContainerName = _resolver.ResolveInString(ContainerName); var container = _blobServiceClient.GetBlobContainerClient(testContainerName); await container.CreateIfNotExistsAsync(); // The test blob var testBlob = container.GetBlockBlobClient(BlobName); CustomObject testObject = new CustomObject() { Text = "Test", Number = 42 }; await testBlob.UploadTextAsync(JsonConvert.SerializeObject(testObject)); }
private async Task UploadTestObject() { string testContainerName = _resolver.ResolveInString(ContainerName); CloudBlobContainer container = _storageAccount.CreateCloudBlobClient().GetContainerReference(testContainerName); await container.CreateIfNotExistsAsync(); // The test blob CloudBlockBlob testBlob = container.GetBlockBlobReference(BlobName); CustomObject testObject = new CustomObject() { Text = "Test", Number = 42 }; await testBlob.UploadTextAsync(JsonConvert.SerializeObject(testObject)); }
/// <summary> /// Covers: /// - queue binding to custom object /// - queue trigger /// - table writing /// </summary> public static void QueueToTable( [QueueTrigger(TestQueueName)] CustomObject e2equeue, [Table(TableName)] CloudTable table, [Queue(DoneQueueName)] out string e2edone) { const string tableKeys = "test"; CustomTableEntity result = new CustomTableEntity { PartitionKey = tableKeys, RowKey = tableKeys, Text = e2equeue.Text + " " + "QueueToTable", Number = e2equeue.Number + 1 }; table.Execute(TableOperation.InsertOrReplace(result)); // Write a queue message to signal the scenario completion e2edone = "done"; }
/// <summary> /// Covers: /// - queue binding to custom object /// - queue trigger /// - table writing /// </summary> public static void QueueToICollectorAndQueue( [QueueTrigger(TestQueueNameEtag)] CustomObject e2equeue, [Queue(TestQueueName)] out CustomObject output) { output = e2equeue; }