Пример #1
0
            public void If_Message_Fails_To_Send_Then_A_Message_Send_Failure_Exception_Is_Thrown()
            {
                //Arrange
                var mockBytes   = new byte[] { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33 };
                var mockStream  = new MemoryStream(mockBytes);
                var mockMessage = new TestMessage(Guid.Empty, Guid.Empty);

                _mockSerialiser.
                Setup(x => x.Serialise(It.IsAny <object>())).
                Returns(Task.FromResult((Stream)mockStream));
                _mockTransportManager.
                Setup(x => x.EnqueueMessage(It.IsAny <byte[]>(), CancellationToken.None)).
                Returns(Task.FromResult(false)).
                Callback(() => throw new MessageSendFailure());
                var dispatcher =
                    new ServiceBusTransportDispatcher(_mockTransportManager.Object, _mockSerialiser.Object);

                //Act
                async Task Delegate()
                {
                    await dispatcher.SendMessage(mockMessage, CancellationToken.None);
                }

                //Assert
                Assert.That(Delegate, Throws.TypeOf(typeof(MessageSendFailure)));
            }
Пример #2
0
            public void A_Serialisation_Failure_Will_Bubble_Up_To_Send_Message()
            {
                //Arrange
                const string errorMessage = "I am an Error Message!";
                var          mockMessage  = new TestMessage(Guid.Empty, Guid.Empty);

                _mockSerialiser.
                Setup(x => x.Serialise(It.IsAny <object>())).
                Throws(new Exception(errorMessage));
                var dispatcher =
                    new ServiceBusTransportDispatcher(_mockTransportManager.Object, _mockSerialiser.Object);

                async Task Delegate()
                {
                    await dispatcher.SendMessage(mockMessage, CancellationToken.None);
                }

                //Assert
                Assert.That(Delegate, Throws.Exception.Message.EqualTo(errorMessage));
            }
Пример #3
0
            public async Task Transport_Dispatcher_Can_Send_Message()
            {
                //Arrange
                var mockBytes   = new byte[] { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33 };
                var mockStream  = new MemoryStream(mockBytes);
                var mockMessage = new TestMessage(Guid.Empty, Guid.Empty);

                _mockSerialiser.
                Setup(x => x.Serialise(It.IsAny <object>())).
                Returns(Task.FromResult((Stream)mockStream));
                _mockTransportManager.Setup(x => x.EnqueueMessage(It.IsAny <byte[]>(), CancellationToken.None)).Returns(Task.FromResult(true));
                var dispatcher =
                    new ServiceBusTransportDispatcher(_mockTransportManager.Object, _mockSerialiser.Object);

                //Act
                await dispatcher.SendMessage(mockMessage, CancellationToken.None);

                //Assert
                _mockTransportManager.Verify(x => x.EnqueueMessage(It.IsAny <byte[]>(), CancellationToken.None), Times.Once);
            }