public void Enqueue_Message_Throws_Exception_When_Transport_Fails_To_Send_The_Message() { _mockCircuitBreaker. Setup(m => m.ExecuteAsync(It.IsAny <Func <CancellationToken, Task> >(), It.IsAny <Func <Exception, Task> >(), It.IsAny <CancellationToken>())). Returns(Task.CompletedTask). Callback((Func <CancellationToken, Task> executeAction, Func <Exception, Task> failureAction, CancellationToken c) => failureAction(Mock.Of <Exception>())); var manager = new ServiceBusTransportManager(_mockTransport.Object, _mockCircuitBreaker.Object, Mock.Of <IEventLogger>()); async Task TestDelegateAsync() => await manager.EnqueueMessage(It.IsAny <byte[]>(), CancellationToken.None); Assert.ThrowsAsync <MessageSendFailure>(TestDelegateAsync); }
public async Task Enqueue_Message_Passes_Message_To_Transport_Successfully() { //Arrange const string expectedMessage = "Test Message"; var receivedMessage = string.Empty; _mockTransport. Setup(m => m.Send(It.IsAny <byte[]>(), It.IsAny <CancellationToken>())). Returns(Task.CompletedTask). Callback((byte[] message, CancellationToken token) => receivedMessage = Encoding.ASCII.GetString(message)); _mockCircuitBreaker. Setup(m => m.ExecuteAsync(It.IsAny <Func <CancellationToken, Task> >(), It.IsAny <Func <Exception, Task> >(), It.IsAny <CancellationToken>())). Returns(Task.CompletedTask). Callback((Func <CancellationToken, Task> executeAction, Func <Exception, Task> failureAction, CancellationToken c) => executeAction(c)); var manager = new ServiceBusTransportManager(_mockTransport.Object, _mockCircuitBreaker.Object, Mock.Of <IEventLogger>()); //Act await manager.EnqueueMessage(Encoding.ASCII.GetBytes(expectedMessage), CancellationToken.None); //Assert Assert.That(receivedMessage, Is.EqualTo(expectedMessage)); }