public void ShouldCallErrorHandlerIfReceiverThrowsException()
        {
            SetupListener(CorrelationIdState.DoNotUse);

            var receiver = new ReceiverThatThrowsException(_listener);
            _listener.AddReceiver(receiver);
            _listener.Start("testendpoint");
            ErrorHandler.AssertWasCalled(x => x.HandleError(Arg<ReceivedMessage>.Is.Anything, Arg<string>.Is.Equal("testendpoint")));
        }
 public void ShouldRethrowIfReceiverThrowsExceptionAndRethrowIsConfigured()
 {
     SetupListener(CorrelationIdState.DoNotUse, true);
     this.QueueEndpoint.Subscription = new SubscriptionConfiguration()
     {
         QueueName = "testqueue",
         ErrorHandling = new ErrorHandlingConfiguration()
         {
             RethrowExceptions = true
         }
     };
     var receiver = new ReceiverThatThrowsException(_listener);
     _listener.AddReceiver(receiver);
     _listener.Start("testendpoint");
 }
 public void ShouldCallErrorHandlerIfReceiverThrowsException()
 {
     SetupReceiver();
     this.QueueEndpoint.Subscription = new SubscriptionConfiguration()
                                           {
                                               QueueName = "testqueue",
                                               ErrorHandling = new ErrorHandlingConfiguration()
                                                                   {
                                                                       RethrowExceptions = false
                                                                   }
                                           };
     SetupModelBasicGet(this.QueueEndpoint, new BasicGetResult(1, false, "", "", 1, BasicProperties, MessageData));
     var receiver = new ReceiverThatThrowsException();
     _receiver.AddReceiver(receiver);
     _receiver.CheckForMessage("testendpoint");
     ErrorHandler.AssertWasCalled(x => x.HandleError(Arg<ReceivedMessage>.Is.Anything, Arg<string>.Is.Equal("testendpoint")));
 }