Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }