public void CtorCommon_SameConfigsSuccess()
        {
            var topicsConfig = new TopicsConfig()
            {
                "topic1", "topic2", "topic3"
            };
            var consumerConfig = new ConsumerConfig()
            {
                Environment = "TestTier", ClusterId = "TestCluster", Urls = "TestUrls"
            };
            var producerConfigs = new ProducerConfigs()
            {
                { new ProducerConfig {
                      Environment = "TestTierProducer1", ClusterId = "TestClusterProducer1", Urls = "TestUrlsProducer1"
                  } },
                { new ProducerConfig {
                      Environment = "TestTierProducer2", ClusterId = "TestClusterProducer2", Urls = "TestUrlsProducer2"
                  } }
            };

            var provider      = new Mock <IServiceProvider>();
            var topicsOptions = new Mock <IOptions <TopicsConfig> >();

            topicsOptions.SetupGet(c => c.Value).Returns(topicsConfig);
            var consumerConfigOptions = new Mock <IOptions <ConsumerConfig> >();

            consumerConfigOptions.SetupGet(c => c.Value).Returns(consumerConfig);
            var producerConfigsOptions = new Mock <IOptions <ProducerConfigs> >();

            producerConfigsOptions.SetupGet(c => c.Value).Returns(producerConfigs);

            var runner = new FeedProxiesRunnerTestDecorator(provider.Object, topicsOptions.Object,
                                                            consumerConfigOptions.Object, producerConfigsOptions.Object);

            runner.Topics.Should().BeEquivalentTo(topicsConfig);
            runner.ConsumerConfig.Should().BeEquivalentTo(consumerConfig);
            runner.ProducerConfigs.Should().BeEquivalentTo(producerConfigs);
        }
        public FeedProxiesRunnerTestDecorator Get()
        {
            var feedProxyMock = new Mock <IFeedProxy>();

            feedProxyMock.Setup(c =>
                                c.Run(It.IsAny <string>(), It.IsAny <ConsumerConfig>(), It.IsAny <IEnumerable <ProducerConfig> >()))
            .Returns(true);
            _serviceCollection.AddTransient(serviceProvider => feedProxyMock.Object);
            var provider      = _serviceCollection.BuildServiceProvider();
            var topicsOptions = new Mock <IOptions <TopicsConfig> >();

            topicsOptions.SetupGet(c => c.Value).Returns(_topicsConfig);
            var consumerConfigOptions = new Mock <IOptions <ConsumerConfig> >();

            consumerConfigOptions.SetupGet(c => c.Value).Returns(_consumerConfig);
            var producerConfigsOptions = new Mock <IOptions <ProducerConfigs> >();

            producerConfigsOptions.SetupGet(c => c.Value).Returns(_producerConfigs);

            var runner = new FeedProxiesRunnerTestDecorator(provider, topicsOptions.Object,
                                                            consumerConfigOptions.Object, producerConfigsOptions.Object);

            return(runner);
        }