public async Task Listener_Can_Be_Resolved_And_Attached_To_Transport_Manager()
            {
                //Arrange
                var readWriteProvider = new AzureServiceBusReadWriteProvider(_mockConnectionStringProvider.Object, _mockResolver.Object);

                //Act
                await readWriteProvider.Setup(QueueName);

                //Assert
                _mockTransportManager.Verify(x => x.RegisterListener(_mockMessageListener.Object), Times.Once);
            }
            public async Task First_Time_Get_Dispatcher_Is_Called_For_A_Queue_Name_Then_Setup_Will_Be_Called()
            {
                //Arrange
                var readWriteProvider = new AzureServiceBusReadWriteProvider(_mockConnectionStringProvider.Object, _mockResolver.Object);

                //Act
                var transport = await readWriteProvider.GetDispatcher(QueueName);

                //Assert
                _mockResolver.Verify(x => x.Resolve <ITransportDispatcher>(), Times.Once);
                Assert.That(transport, Is.Not.Null);
            }
            public async Task Multiple_Dispatchers_Can_Be_Registered_To_A_Single_Read_Write_Transport_Provider()
            {
                //Arrange
                var readWriteProvider = new AzureServiceBusReadWriteProvider(_mockConnectionStringProvider.Object, _mockResolver.Object);

                //Act
                var transport1 = await readWriteProvider.GetDispatcher($"{QueueName}1");

                var transport2 = await readWriteProvider.GetDispatcher($"{QueueName}2");

                //Assert
                _mockResolver.Verify(x => x.Resolve <ITransportDispatcher>(), Times.Exactly(2));
                Assert.That(transport1, Is.Not.Null);
                Assert.That(transport2, Is.Not.Null);
            }
            public async Task Calling_Get_Dispatcher_Multiple_Times_Will_Only_Resolve_The_Dispatcher_Once()
            {
                //Arrange
                var readWriteProvider = new AzureServiceBusReadWriteProvider(_mockConnectionStringProvider.Object, _mockResolver.Object);

                //Act
                var transport1 = await readWriteProvider.GetDispatcher(QueueName);

                var transport2 = await readWriteProvider.GetDispatcher(QueueName);

                //Assert
                _mockResolver.Verify(x => x.Resolve <ITransportDispatcher>(), Times.Once);
                Assert.That(transport1, Is.Not.Null);
                Assert.That(transport2, Is.Not.Null);
            }