Пример #1
0
        public void SetUp()
        {
            var conventions = new Conventions
            {
                ConsumerTagConvention = () => consumerTag
            };

            consumerErrorStrategy = MockRepository.GenerateStub <IConsumerErrorStrategy>();
            consumerErrorStrategy.Stub(x => x.HandleConsumerError(null, null))
            .IgnoreArguments()
            .WhenCalled(i =>
            {
                basicDeliverEventArgs = (ConsumerExecutionContext)i.Arguments[0];
                raisedException       = (Exception)i.Arguments[1];
            });
            consumerErrorStrategy.Stub(x => x.PostExceptionAckStrategy()).Return(PostExceptionAckStrategy.ShouldAck);

            mockBuilder = new MockBuilder(x => x
                                          .Register <IConventions>(_ => conventions)
                                          .Register(_ => consumerErrorStrategy)
                                          //.Register<IEasyNetQLogger>(_ => new ConsoleLogger())
                                          );

            mockBuilder.Bus.Subscribe <MyMessage>(subscriptionId, message =>
            {
                throw originalException;
            });


            const string text = "Hello there, I am the text!";

            originalMessage = new MyMessage {
                Text = text
            };

            var body = new JsonSerializer().MessageToBytes(originalMessage);

            // deliver a message
            mockBuilder.Consumers[0].HandleBasicDeliver(
                consumerTag,
                deliveryTag,
                false, // redelivered
                typeName,
                "#",
                new BasicProperties
            {
                Type          = typeName,
                CorrelationId = correlationId
            },
                body);

            // wait for the subscription thread to handle the message ...
            var autoResetEvent          = new AutoResetEvent(false);
            var handlerExecutionContext = (HandlerRunner)mockBuilder.ServiceProvider.Resolve <IHandlerRunner>();

            handlerExecutionContext.SynchronisationAction = () => autoResetEvent.Set();
            autoResetEvent.WaitOne(1000);
        }
        public void Should_ack_on_successful_message_handler_and_ignore_postExcaptionAckStrategy()
        {
            consumerErrorStrategy.Stub(x => x.PostExceptionAckStrategy()).Return(PostExceptionAckStrategy.ShouldNackWithRequeue);
            var model = MockRepository.GenerateStub <IModel>();

            var args = CreateBasicDeliverEventArgs(deliveryTag, model, SuccessMessageCallback);

            queueingConsumerFactory.HandleMessageDelivery(args);
            autoResetEvent.WaitOne(1000);

            model.AssertWasCalled(x => x.BasicAck(deliveryTag, false));
        }
Пример #3
0
        protected void SetUp()
        {
            ConsumerErrorStrategy = MockRepository.GenerateStub<IConsumerErrorStrategy>();
            ConsumerErrorStrategy.Stub(x => x.PostExceptionAckStrategy()).Return(PostExceptionAckStrategy.ShouldAck);

            IConventions conventions = new Conventions(new TypeNameSerializer())
                {
                    ConsumerTagConvention = () => ConsumerTag
                };
            MockBuilder = new MockBuilder(x => x
                    .Register(_ => conventions)
                    .Register(_ => ConsumerErrorStrategy)
                    //.Register<IEasyNetQLogger>(_ => new ConsoleLogger())
                );

            AdditionalSetUp();
        }
Пример #4
0
        protected void SetUp()
        {
            ConsumerErrorStrategy = MockRepository.GenerateStub <IConsumerErrorStrategy>();
            ConsumerErrorStrategy.Stub(x => x.PostExceptionAckStrategy()).Return(PostExceptionAckStrategy.ShouldAck);

            IConventions conventions = new Conventions
            {
                ConsumerTagConvention = () => ConsumerTag
            };

            MockBuilder = new MockBuilder(x => x
                                          .Register(_ => conventions)
                                          .Register(_ => ConsumerErrorStrategy)
                                          //.Register<IEasyNetQLogger>(_ => new ConsoleLogger())
                                          );

            AdditionalSetUp();
        }
Пример #5
0
        public void SetUp()
        {
            var conventions = new Conventions(new TypeNameSerializer())
            {
                ConsumerTagConvention = () => consumerTag
            };

            consumerErrorStrategy = MockRepository.GenerateStub<IConsumerErrorStrategy>();
            consumerErrorStrategy.Stub(x => x.HandleConsumerError(null, null))
                .IgnoreArguments()
                .WhenCalled(i =>
                {
                    basicDeliverEventArgs = (ConsumerExecutionContext)i.Arguments[0];
                    raisedException = (Exception) i.Arguments[1];
                }).Return(AckStrategies.Ack);

            mockBuilder = new MockBuilder(x => x
                .Register<IConventions>(_ => conventions)
                .Register(_ => consumerErrorStrategy)
                //.Register<IEasyNetQLogger>(_ => new ConsoleLogger())
                );

            mockBuilder.Bus.Subscribe<MyMessage>(subscriptionId, message =>
            {
                throw originalException;
            });

            const string text = "Hello there, I am the text!";
            originalMessage = new MyMessage { Text = text };

            var body = new JsonSerializer(new TypeNameSerializer()).MessageToBytes(originalMessage);

            // deliver a message
            mockBuilder.Consumers[0].HandleBasicDeliver(
                consumerTag,
                deliveryTag,
                false, // redelivered
                typeName,
                "#",
                new BasicProperties
                {
                    Type = typeName,
                    CorrelationId = correlationId
                },
                body);

            // wait for the subscription thread to handle the message ...
            var autoResetEvent = new AutoResetEvent(false);
            mockBuilder.EventBus.Subscribe<AckEvent>(x => autoResetEvent.Set());
            autoResetEvent.WaitOne(1000);
        }
        public void SetUp()
        {
            _model = MockRepository.GenerateMock<IModel>();
            _model.Stub(x => x.CreateBasicProperties())
                .Return(new BasicProperties());
            _model.Stub(x => x.BasicPublish(null, null, null, null))
                .IgnoreArguments();
            _model.Replay();

            _connection = MockRepository.GenerateMock<IConnection>();
            _connection.Stub(x => x.CreateModel()).Return(_model);
            _connection.Replay();

            _connectionFactory = MockRepository.GenerateMock<IConnectionFactory>();
            _connectionFactory.Stub(x => x.CreateConnection()).Return(_connection);
            _connectionFactory.Replay();

            _logger = MockRepository.GenerateMock<IEasyNetQLogger>();
            _logger.Replay();

            _fallbackStrategy = MockRepository.GenerateMock<IConsumerErrorStrategy>();
            _fallbackStrategy.Stub(x => x.HandleConsumerError(null, null))
                .IgnoreArguments();
            _fallbackStrategy.Replay();

            _sut = new RetryConsumerErrorStrategy(
                _connectionFactory,
                _fallbackStrategy,
                _logger);
        }