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)); }
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(); }
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(); }
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); }