public async Task ProcessMessageContextAsync_Deferred_Success_Test() { //Arrange var message = CreateMessage(); message.UserProperties.Add(Constants.DeferredKey, long.MaxValue); var deferredMessage = CreateMessage(); _messageReceiver.ReceiveDeferredMessageAsync(Arg.Is(long.MaxValue)).Returns(deferredMessage); var context = new TestMessageContext(message, _messageReceiver, _messageSender); //Act await _sut.ProcessMessageContextAsync(context, CancellationToken.None).ConfigureAwait(false); //Assert await _messageProcessor.Received().ProcessMessageAsync(Arg.Is(deferredMessage), Arg.Is(CancellationToken.None)) .ConfigureAwait(false); await _messageReceiver.Received().CompleteAsync(Arg.Is(message.SystemProperties.LockToken)).ConfigureAwait(false); await _messageReceiver.Received().CompleteAsync(Arg.Is(deferredMessage.SystemProperties.LockToken)).ConfigureAwait(false); await _messageReceiver.Received().ReceiveDeferredMessageAsync(Arg.Is(long.MaxValue)).ConfigureAwait(false); await _messageReceiver.DidNotReceiveWithAnyArgs().AbandonAsync(null).ConfigureAwait(false); }
public async Task ProcessMessageContextAsync_Test() { //Arrange var message = CreateMessage(); var context = new TestMessageContext(message, _messageReceiver, _messageSender); //Act await _sut.ProcessMessageContextAsync(context, CancellationToken.None).ConfigureAwait(false); //Assert await _messageProcessor.Received().ProcessMessageAsync(Arg.Is(message), Arg.Is(CancellationToken.None)) .ConfigureAwait(false); await _messageReceiver.Received().CompleteAsync(Arg.Is(message.SystemProperties.LockToken)).ConfigureAwait(false); await _messageReceiver.DidNotReceiveWithAnyArgs().AbandonAsync(null).ConfigureAwait(false); }
public async Task ProcessMessageContextAsync_Failed_CannotHandle_Test() { //Arrange var message = CreateMessage(); var context = new TestMessageContext(message, _messageReceiver, _messageSender); _failurePolicy.CanHandle(Arg.Any <Exception>()).Returns(false); _messageProcessor.ProcessMessageAsync(Arg.Any <Message>(), Arg.Any <CancellationToken>()) .Throws(new Exception()); //Act await _sut.ProcessMessageContextAsync(context, CancellationToken.None).ConfigureAwait(false); //Assert await _messageProcessor.Received().ProcessMessageAsync(Arg.Is(message), Arg.Is(CancellationToken.None)) .ConfigureAwait(false); await _messageReceiver.DidNotReceiveWithAnyArgs().CompleteAsync(null).ConfigureAwait(false); await _messageReceiver.Received().AbandonAsync(Arg.Is(message.SystemProperties.LockToken)).ConfigureAwait(false); }