Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
            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));
            }