public async Task WhenPublishTopicClientOrQueueClientIsCreatedForTopicNameOrQueueName()
        {
            // arrange
            BusBuilder.Produce <SomeMessage>(x => x.ToTopic());
            BusBuilder.Produce <OtherMessage>(x => x.ToQueue());

            var sm1 = new SomeMessage {
                Id = "1", Value = 10
            };
            var sm2 = new SomeMessage {
                Id = "2", Value = 12
            };
            var om1 = new OtherMessage {
                Id = "1"
            };
            var om2 = new OtherMessage {
                Id = "2"
            };

            // act
            await ProviderBus.Value.Publish(sm1, "some-topic").ConfigureAwait(false);

            await ProviderBus.Value.Publish(sm2, "some-topic").ConfigureAwait(false);

            await ProviderBus.Value.Publish(om1, "some-queue").ConfigureAwait(false);

            await ProviderBus.Value.Publish(om2, "some-queue").ConfigureAwait(false);

            // assert
            TopicClientMockByName.Should().ContainKey("some-topic");
            TopicClientMockByName.Should().HaveCount(1);
            QueueClientMockByName.Should().ContainKey("some-queue");
            QueueClientMockByName.Should().HaveCount(1);
        }
        public ServiceBusMessageBusTests()
        {
            BusBuilder.WithSerializer(new Mock <IMessageSerializer>().Object);
            BusBuilder.WithDependencyResolver(new Mock <IDependencyResolver>().Object);

            ProviderBusSettings = new ServiceBusMessageBusSettings("connection-string")
            {
                QueueClientFactory = queue =>
                {
                    var m = new Mock <IQueueClient>();
                    QueueClientMockByName.Add(queue, m);
                    return(m.Object);
                },
                TopicClientFactory = topic =>
                {
                    var m = new Mock <ITopicClient>();
                    TopicClientMockByName.Add(topic, m);
                    return(m.Object);
                }
            };
            BusBuilder.WithProvider(mbSettings => new WrappedProviderMessageBus(mbSettings, ProviderBusSettings));
            ProviderBus = new Lazy <WrappedProviderMessageBus>(() => (WrappedProviderMessageBus)BusBuilder.Build());
        }