public void Should_fail_with_nack_confirmation_event() { model.NextPublishSeqNo.Returns(DeliveryTag); var publishConfirmationWaiter = publishConfirmationListener.GetWaiter(model); eventBus.Publish(MessageConfirmationEvent.Nack(model, DeliveryTag, false)); Assert.Throws <PublishNackedException>(() => publishConfirmationWaiter.Wait(TimeSpan.FromMilliseconds(10))); }
public async Task Should_fail_with_nack_confirmation_event() { model.NextPublishSeqNo.Returns(DeliveryTag); var confirmation = publishConfirmationListener.CreatePendingConfirmation(model); eventBus.Publish(MessageConfirmationEvent.Nack(model, DeliveryTag, false)); await Assert.ThrowsAsync <PublishNackedException>( () => confirmation.WaitAsync() ).ConfigureAwait(false); }
public void Should_fail_with_multiple_nack_confirmation_event() { model.Expect(x => x.NextPublishSeqNo).Return(DeliveryTag - 1); model.Expect(x => x.NextPublishSeqNo).Return(DeliveryTag); var publishConfirmationWaiter1 = publishConfirmationListener.GetWaiter(model); var publishConfirmationWaiter2 = publishConfirmationListener.GetWaiter(model); eventBus.Publish(MessageConfirmationEvent.Nack(model, DeliveryTag, true)); Assert.Throws <PublishNackedException>(() => publishConfirmationWaiter1.Wait(TimeSpan.FromMilliseconds(10))); Assert.Throws <PublishNackedException>(() => publishConfirmationWaiter2.Wait(TimeSpan.FromMilliseconds(10))); }
private void OnNack(object sender, BasicNackEventArgs args) { eventBus.Publish(MessageConfirmationEvent.Nack((IModel)sender, args.DeliveryTag, args.Multiple)); }