public async Task Should_call_BeforeDeadLetterAsync_before_dead_letter_messages() { //arrange var countable = new Mock <ICountable>(); var processor = new DeadLetterTestProcessor(countable.Object); var di = new Mock <IDependencyInjection>(); di.Setup(x => x.GetInstance <IProcessMessage <TestCommand> >(It.IsAny <Type>())).Returns(processor); var hostConfiguration = new Mock <IHostConfiguration>(); hostConfiguration.Setup(x => x.Log).Returns(Mock.Of <ILog>()); hostConfiguration.Setup(x => x.DependencyInjection).Returns(di.Object); var pipeline = new Mock <IPipelineInformation>(); pipeline.Setup(x => x.HostConfiguration).Returns(hostConfiguration.Object); var nextProcessor = new Mock <IMessageProcessor>(); var messageStateHandler = new Mock <IMessageStateHandler <TestCommand> >(); messageStateHandler.Setup(x => x.DeadLetterDeliveryLimit).Returns(1); messageStateHandler.Setup(x => x.DeliveryCount).Returns(2); messageStateHandler.Setup(x => x.GetMessageAsync()).Returns(Task.FromResult(new TestCommand())); messageStateHandler.Setup(x => x.MessageScope).Returns(di.Object); var middleware = new DeadLetterMiddleware(); //act await middleware.ProcessAsync(messageStateHandler.Object, pipeline.Object, nextProcessor.Object, CancellationToken.None); //assert countable.Verify(x => x.Count(), Times.Once); messageStateHandler.Verify(x => x.DeadLetterAsync(1), Times.Once); }
public async Task Should_not_continue_after_dead_letter_messages() { //arrange var nextProcessor = new Mock <IMessageProcessor>(); var messageStateHandler = new Mock <IMessageStateHandler <TestCommand> >(); messageStateHandler.Setup(x => x.DeadLetterDeliveryLimit).Returns(1); messageStateHandler.Setup(x => x.DeliveryCount).Returns(2); var middleware = new DeadLetterMiddleware(); //act await middleware.ProcessAsync(messageStateHandler.Object, nextProcessor.Object, CancellationToken.None); //assert nextProcessor.Verify(x => x.ProcessAsync(messageStateHandler.Object, CancellationToken.None), Times.Never); }
public async Task Should_continue_when_not_dead_lettering() { //arrange var nextProcessor = new Mock <IMessageProcessor>(); var messageStateHandler = new Mock <IMessageStateHandler <TestCommand> >(); messageStateHandler.Setup(x => x.DeadLetterDeliveryLimit).Returns(1); messageStateHandler.Setup(x => x.DeliveryCount).Returns(1); var middleware = new DeadLetterMiddleware(); //act await middleware.ProcessAsync(messageStateHandler.Object, Mock.Of <IPipelineInformation>(), nextProcessor.Object, CancellationToken.None); //assert messageStateHandler.Verify(x => x.DeadLetterAsync(1), Times.Never); nextProcessor.Verify(x => x.ProcessAsync(messageStateHandler.Object, CancellationToken.None), Times.Once); }
public async Task Should_not_continue_after_dead_letter_messages() { //arrange var pipeline = new Mock <IPipelineInformation>(); var hostConfiguration = new Mock <IHostConfiguration>(); hostConfiguration.Setup(x => x.DependencyInjection).Returns(Mock.Of <IDependencyInjection>()); pipeline.Setup(x => x.HostConfiguration).Returns(hostConfiguration.Object); var nextProcessor = new Mock <IMessageProcessor>(); var messageStateHandler = new Mock <IMessageStateHandler <TestCommand> >(); messageStateHandler.Setup(x => x.DeadLetterDeliveryLimit).Returns(1); messageStateHandler.Setup(x => x.DeliveryCount).Returns(2); var middleware = new DeadLetterMiddleware(); //act await middleware.ProcessAsync(messageStateHandler.Object, pipeline.Object, nextProcessor.Object, CancellationToken.None); //assert nextProcessor.Verify(x => x.ProcessAsync(messageStateHandler.Object, CancellationToken.None), Times.Never); }