Beispiel #1
0
        public void CallQueueTrigger_IfArgumentIsIStorageQueueMessage_Binds()
        {
            // Arrange
            CloudQueueMessage    expectedMessage = new CloudQueueMessage("ignore");
            IStorageQueueMessage message         = new FakeStorageQueueMessage(expectedMessage);

            // Act
            CloudQueueMessage result = CallQueueTrigger <CloudQueueMessage>(message,
                                                                            typeof(BindToCloudQueueMessageProgram), (s) => BindToCloudQueueMessageProgram.TaskSource = s);

            // Assert
            Assert.Same(expectedMessage, result);
        }
Beispiel #2
0
        public void CallQueueTrigger_ProvidesPopReceiptBindingData()
        {
            // Arrange
            const string            expectedPopReceipt = "abc";
            FakeStorageQueueMessage message            = new FakeStorageQueueMessage(new CloudQueueMessage("ignore"))
            {
                PopReceipt = expectedPopReceipt
            };

            // Act
            string result = CallQueueTrigger <string>(message, typeof(BindToPopReceiptBindingDataProgram),
                                                      (s) => BindToPopReceiptBindingDataProgram.TaskSource = s);

            // Assert
            Assert.Same(expectedPopReceipt, result);
        }
Beispiel #3
0
        public void CallQueueTrigger_ProvidesDequeueCountBindingData()
        {
            // Arrange
            const int expectedDequeueCount  = 123;
            FakeStorageQueueMessage message = new FakeStorageQueueMessage(new CloudQueueMessage("ignore"))
            {
                DequeueCount = expectedDequeueCount
            };

            // Act
            int result = CallQueueTrigger <int>(message, typeof(BindToDequeueCountBindingDataProgram),
                                                (s) => BindToDequeueCountBindingDataProgram.TaskSource = s);

            // Assert
            Assert.Equal(expectedDequeueCount, result);
        }
Beispiel #4
0
        public void Trigger_ViaIBinder_CannotBind()
        {
            // Arrange
            const string            expectedContents = "abc";
            IStorageAccount         account          = CreateFakeStorageAccount();
            IStorageQueue           queue            = CreateQueue(account, QueueName);
            FakeStorageQueueMessage message          = (FakeStorageQueueMessage)queue.CreateMessage(expectedContents);

            queue.AddMessage(message);

            // Act
            Exception exception = RunTriggerFailure <string>(account, typeof(BindToQueueTriggerViaIBinderProgram),
                                                             (s) => BindToQueueTriggerViaIBinderProgram.TaskSource = s);

            // Assert
            Assert.Equal("No binding found for attribute 'Microsoft.Azure.WebJobs.QueueTriggerAttribute'.", exception.Message);
        }
Beispiel #5
0
        public void CallQueueTrigger_IfNextVisibleTimeIsNull_ProvidesMaxValueNextVisibleTimeBindingData()
        {
            // Arrange
            DateTimeOffset          expectedNextVisibleTime = DateTimeOffset.Now;
            FakeStorageQueueMessage message = new FakeStorageQueueMessage(new CloudQueueMessage("ignore"))
            {
                NextVisibleTime = null
            };

            // Act
            DateTimeOffset result = CallQueueTrigger <DateTimeOffset>(message,
                                                                      typeof(BindToNextVisibleTimeBindingDataProgram),
                                                                      (s) => BindToNextVisibleTimeBindingDataProgram.TaskSource = s);

            // Assert
            Assert.Equal(DateTimeOffset.MaxValue, result);
        }
Beispiel #6
0
        public void CallQueueTrigger_ProvidesInsertionTimeBindingData()
        {
            // Arrange
            DateTimeOffset          expectedInsertionTime = DateTimeOffset.Now;
            FakeStorageQueueMessage message = new FakeStorageQueueMessage(new CloudQueueMessage("ignore"))
            {
                InsertionTime = expectedInsertionTime
            };

            // Act
            DateTimeOffset result = CallQueueTrigger <DateTimeOffset>(message,
                                                                      typeof(BindToInsertionTimeBindingDataProgram),
                                                                      (s) => BindToInsertionTimeBindingDataProgram.TaskSource = s);

            // Assert
            Assert.Equal(expectedInsertionTime, result);
        }
Beispiel #7
0
        public void CallQueueTrigger_IfInsertionTimeIsNull_ProvidesUtcNowInsertionTimeBindingData()
        {
            // Arrange
            DateTimeOffset          expectedInsertionTime = DateTimeOffset.Now;
            FakeStorageQueueMessage message = new FakeStorageQueueMessage(new CloudQueueMessage("ignore"))
            {
                InsertionTime = null
            };

            // Act
            DateTimeOffset result = CallQueueTrigger <DateTimeOffset>(message,
                                                                      typeof(BindToInsertionTimeBindingDataProgram),
                                                                      (s) => BindToInsertionTimeBindingDataProgram.TaskSource = s);

            // Assert
            Assert.Equal(0, (int)DateTimeOffset.Now.Subtract(result).TotalMinutes);
            Assert.Equal(TimeSpan.Zero, result.Offset);
        }