/// <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;
        }
Example #4
0
        /// <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;
        }
Example #5
0
        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";
        }
Example #8
0
 /// <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;
 }