public void EveryReturnsSameHandlerForGivenQueue() { var mockQueue = new Mock <IAzureQueue <MessageStub> >(); var queueHandler = new QueueHandlerStub(mockQueue.Object); var returnedQueueHandler = queueHandler.Every(TimeSpan.Zero); Assert.AreSame(queueHandler, returnedQueueHandler); }
public void DoDeletesMessageWhenRunIsSuccessfull() { var message = new MessageStub(); var mockQueue = new Mock <IAzureQueue <MessageStub> >(); mockQueue.Setup(q => q.GetMessages(1)).Returns(() => new[] { message }); var command = new Mock <ICommand <MessageStub> >(); command.Setup(c => c.Run(It.IsAny <MessageStub>())).Returns(true); var queueHandler = new QueueHandlerStub(mockQueue.Object); queueHandler.Do(command.Object); mockQueue.Verify(q => q.DeleteMessage(message)); }
public void DoRunsGivenCommandForEachMessage() { var message1 = new MessageStub(); var message2 = new MessageStub(); var mockQueue = new Mock <IAzureQueue <MessageStub> >(); mockQueue.Setup(q => q.GetMessages(1)).Returns(() => new[] { message1, message2 }); var command = new Mock <ICommand <MessageStub> >(); var queueHandler = new QueueHandlerStub(mockQueue.Object); queueHandler.Do(command.Object); command.Verify(c => c.Run(It.IsAny <MessageStub>()), Times.Exactly(2)); command.Verify(c => c.Run(message1)); command.Verify(c => c.Run(message2)); }
public void DoDeletesMessageWhenRunIsNotSuccessfullAndMessageHasBeenDequeuedMoreThanFiveTimes() { var message = new MessageStub(); message.SetMessageReference(new CloudQueueMessageStub(string.Empty)); var mockQueue = new Mock <IAzureQueue <MessageStub> >(); mockQueue.Setup(q => q.GetMessages(1)).Returns(() => new[] { message }); var command = new Mock <ICommand <MessageStub> >(); command.Setup(c => c.Run(It.IsAny <MessageStub>())).Throws(new Exception("This will cause the command to fail")); var queueHandler = new QueueHandlerStub(mockQueue.Object); queueHandler.Do(command.Object); mockQueue.Verify(q => q.DeleteMessage(message)); }
public void DoDeletesMessageWhenRunIsNotSuccessfullAndMessageHasBeenDequeuedMoreThanFiveTimes() { using (ShimsContext.Create()) { var message = new MessageStub(); var mockCloudQueueMessage = new ShimCloudQueueMessage(); mockCloudQueueMessage.DequeueCountGet = () => 6; message.SetMessageReference(mockCloudQueueMessage); var mockQueue = new Mock <IAzureQueue <MessageStub> >(); mockQueue.Setup(q => q.GetMessagesAsync(1)).ReturnsAsync(new[] { message }); var command = new Mock <ICommand <MessageStub> >(); command.Setup(c => c.Run(It.IsAny <MessageStub>())).Throws(new Exception("This will cause the command to fail")); var queueHandler = new QueueHandlerStub(mockQueue.Object); queueHandler.Do(command.Object); mockQueue.Verify(q => q.DeleteMessageAsync(message)); } }