public async Task Send_Message_Which_Can_Be_Received_And_Deserialised(int id)
        {
            var messageEntity = new MyEvent {
                Id = id, Name = $"Hello {id}"
            };
            var messageProps = new Dictionary <string, object>
            {
                { "CustomProperty", "Hello" }
            };

            await _outboundGateway.SendAsync(messageEntity, messageProps).ConfigureAwait(false);

            await Task.Delay(3000).ConfigureAwait(false);

            var receivingValidator = new MessageReceiver(_receivingOptions.ConnectionString, _receivingOptions.EntityPath, ReceiveMode.ReceiveAndDelete);
            var receivedMessage    = (await receivingValidator.ReceiveAsync(5).ConfigureAwait(false)).FirstOrDefault();

            receivedMessage.Should().NotBeNull();
            var deserialisedMessageEntity = JsonConvert.DeserializeObject <MyEvent>(Encoding.UTF8.GetString(receivedMessage.Body));

            deserialisedMessageEntity.Id.Should().Be(id);
            deserialisedMessageEntity.Name.Should().Be(messageEntity.Name);
        }
        public async Task Attempt_To_Serialise_Message_From_Expected_Type_Given_Valid_Entity_When_Sending_MessageEntity()
        {
            await _outboundGateway.SendAsync(MyEvent.Default).ConfigureAwait(false);

            _mockSerialiser.Verify(s => s.Serialise(MyEvent.Default), Times.Once);
        }