Esempio n. 1
0
        public void virtual_host_has_correct_value()
        {
            var publicConfig = new TokenSetter(new TestSectionProvider(null))
                               .SetAccessToken(TestData.AccessToken)
                               .SelectIntegration()
                               .SetDefaultLanguage(TestData.Culture)
                               .Build();

            var internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);

            internalConfig.Load();
            Assert.AreEqual(TestConfigurationInternal.GetBookmakerDetails().VirtualHost, internalConfig.VirtualHost);

            publicConfig = new TokenSetter(new TestSectionProvider(null))
                           .SetAccessToken(TestData.AccessToken)
                           .SelectCustom()
                           .SetVirtualHost("virtual_host")
                           .SetDefaultLanguage(TestData.Culture)
                           .SetMessagingHost(_testSection.Host)
                           .SetApiHost(_testSection.ApiHost)
                           .Build();
            internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            internalConfig.Load();
            Assert.AreEqual(publicConfig.VirtualHost, internalConfig.VirtualHost);
        }
Esempio n. 2
0
        public void production_api_host_is_selected_on_use_replay_when_access_to_integration_does_not_work()
        {
            var publicConfig = new TokenSetter(new TestSectionProvider(null))
                               .SetAccessToken(TestData.AccessToken)
                               .SelectIntegration()
                               .SetDefaultLanguage(TestData.Culture)
                               .Build();

            var bookmakerProviderMock = new Mock <BookmakerDetailsProvider>("bookmakerDetailsUriFormat",
                                                                            new TestDataFetcher(),
                                                                            new Deserializer <bookmaker_details>(),
                                                                            new BookmakerDetailsMapperFactory());
            var integrationUrl = publicConfig.UseApiSsl
                ? "https://" + SdkInfo.IntegrationApiHost
                : "http://" + SdkInfo.IntegrationApiHost;

            bookmakerProviderMock.Setup(x => x.GetData(integrationUrl)).Throws(new CommunicationException("Exception message", integrationUrl, null));

            var prodUrl = publicConfig.UseApiSsl
                ? "https://" + SdkInfo.ProductionApiHost
                : "http://" + SdkInfo.ProductionApiHost;

            bookmakerProviderMock.Setup(x => x.GetData(prodUrl)).Returns(TestConfigurationInternal.GetBookmakerDetails());

            var internalConfig = new OddsFeedConfigurationInternal(publicConfig, bookmakerProviderMock.Object);

            internalConfig.EnableReplayServer();
            internalConfig.Load();
            Assert.AreEqual(SdkInfo.ProductionApiHost, internalConfig.ApiHost);
        }
Esempio n. 3
0
        public void host_has_correct_value()
        {
            var builder = new TokenSetter(new TestSectionProvider(_testSection)).SetAccessTokenFromConfigFile();

            var publicConfig   = builder.SelectIntegration().SetDefaultLanguage(TestData.Culture).Build();
            var internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);

            internalConfig.Load();
            Assert.AreEqual(publicConfig.Host, internalConfig.Host);

            publicConfig   = builder.SelectIntegration().SetDefaultLanguage(TestData.Culture).Build();
            internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            Assert.AreEqual(publicConfig.Host, internalConfig.Host);
            internalConfig.EnableReplayServer();
            internalConfig.Load();
            Assert.AreEqual(SdkInfo.ReplayHost, internalConfig.Host);

            publicConfig   = builder.SelectProduction().SetDefaultLanguage(TestData.Culture).Build();
            internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            internalConfig.Load();
            Assert.AreEqual(publicConfig.Host, internalConfig.Host);

            publicConfig   = builder.SelectReplay().SetDefaultLanguage(TestData.Culture).Build();
            internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            internalConfig.Load();
            Assert.AreEqual(SdkInfo.ReplayHost, internalConfig.Host);

            publicConfig   = builder.SelectIntegration().SetDefaultLanguage(TestData.Culture).Build();
            internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            internalConfig.Load();
            Assert.AreEqual(publicConfig.Host, internalConfig.Host);
        }
        public void exception_is_if_api_config_is_loaded_more_than_once()
        {
            var publicConfig = new TokenSetter(new TestSectionProvider(null))
                .SetAccessToken(TestData.AccessToken)
                .SelectIntegration()
                .Build();

            var internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            internalConfig.Load();
            internalConfig.Load();
        }
        public void exception_is_thrown_if_replay_is_enabled_once_api_config_is_loaded()
        {
            var publicConfig = new TokenSetter(new TestSectionProvider(null))
                .SetAccessToken(TestData.AccessToken)
                .SelectIntegration()
                .Build();

            var internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            internalConfig.Load();
            internalConfig.EnableReplayServer();
        }
Esempio n. 6
0
        public void environment_has_correct_value()
        {
            var publicConfig = new TokenSetter(new TestSectionProvider(null))
                               .SetAccessToken(TestData.AccessToken)
                               .SelectIntegration()
                               .SetDefaultLanguage(TestData.Culture)
                               .Build();
            var internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);

            Assert.AreEqual(publicConfig.Environment, internalConfig.Environment);
            internalConfig.EnableReplayServer();
            internalConfig.Load();
            Assert.AreEqual(SdkEnvironment.Replay, internalConfig.Environment);

            publicConfig = new TokenSetter(new TestSectionProvider(null))
                           .SetAccessToken(TestData.AccessToken)
                           .SelectProduction()
                           .SetDefaultLanguage(TestData.Culture)
                           .Build();
            internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            Assert.AreEqual(publicConfig.Environment, internalConfig.Environment);
            internalConfig.EnableReplayServer();
            internalConfig.Load();
            Assert.AreEqual(SdkEnvironment.Replay, internalConfig.Environment);

            publicConfig = new TokenSetter(new TestSectionProvider(null))
                           .SetAccessToken(TestData.AccessToken)
                           .SelectReplay()
                           .SetDefaultLanguage(TestData.Culture)
                           .Build();
            internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            Assert.AreEqual(publicConfig.Environment, internalConfig.Environment);
            internalConfig.EnableReplayServer();
            internalConfig.Load();
            Assert.AreEqual(SdkEnvironment.Replay, internalConfig.Environment);

            publicConfig = new TokenSetter(new TestSectionProvider(null))
                           .SetAccessToken(TestData.AccessToken)
                           .SelectCustom()
                           .SetDefaultLanguage(TestData.Culture)
                           .SetMessagingHost(_testSection.Host)
                           .SetApiHost(_testSection.ApiHost)
                           .Build();
            internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);
            Assert.AreEqual(publicConfig.Environment, internalConfig.Environment);
            internalConfig.EnableReplayServer();
            internalConfig.Load();
            Assert.AreEqual(SdkEnvironment.Replay, internalConfig.Environment);
        }
        /// <inheritdoc />
        public TestFeed(IDataRouterManager dataRouterManager, IProducersProvider producersProvider, IOddsFeedConfiguration config, ILoggerFactory loggerFactory = null, IMetricsRoot metricsRoot = null)
            : base(config, loggerFactory, metricsRoot)
        {
            var bookmakerDetailsProviderMock = new Mock <BookmakerDetailsProvider>("bookmakerDetailsUriFormat",
                                                                                   new TestDataFetcher(),
                                                                                   new Deserializer <bookmaker_details>(),
                                                                                   new BookmakerDetailsMapperFactory());

            bookmakerDetailsProviderMock.Setup(x => x.GetData(It.IsAny <string>())).Returns(TestConfigurationInternal.GetBookmakerDetails());
            var defaultBookmakerDetailsProvider = bookmakerDetailsProviderMock.Object;

            InternalConfig = new OddsFeedConfigurationInternal(config, defaultBookmakerDetailsProvider);

            DataRouterManager = dataRouterManager;
            ProducersProvider = producersProvider;

            RecoveryDataPoster = new TestDataFetcher();
        }
Esempio n. 8
0
        public static void Init(TestContext context)
        {
            IUnityContainer container = new UnityContainer().EnableDiagnostic();
            var             config    = TestConfigurationInternal.GetConfig();

            _dispatcher = new Mock <IGlobalEventDispatcher>().Object;

            container.RegisterBaseTypes(config, null, null);

            // we need to override initial loading of bookmaker details and producers
            var bookmakerDetailsProviderMock = new Mock <BookmakerDetailsProvider>("bookmakerDetailsUriFormat",
                                                                                   new TestDataFetcher(),
                                                                                   new Deserializer <bookmaker_details>(),
                                                                                   new BookmakerDetailsMapperFactory());

            bookmakerDetailsProviderMock.Setup(x => x.GetData(It.IsAny <string>())).Returns(TestConfigurationInternal.GetBookmakerDetails());
            var defaultBookmakerDetailsProvider = bookmakerDetailsProviderMock.Object;

            container.RegisterInstance <IDataProvider <BookmakerDetailsDTO> >(defaultBookmakerDetailsProvider, new ContainerControlledLifetimeManager());
            container.RegisterInstance <BookmakerDetailsProvider>(defaultBookmakerDetailsProvider, new ContainerControlledLifetimeManager());

            //override
            container.RegisterType <IProducerManager, ProducerManager>(
                new ContainerControlledLifetimeManager(),
                new InjectionConstructor(
                    new TestProducersProvider(),
                    config));

            container.RegisterTypes(_dispatcher, config);

            //var x = container.Registrations.Where(w => w.MappedToType == typeof(ProducerManager));

            var newConfig = new OddsFeedConfigurationInternal(config, defaultBookmakerDetailsProvider);

            newConfig.Load();
            container.RegisterInstance <IOddsFeedConfiguration>(newConfig, new ContainerControlledLifetimeManager());
            container.RegisterInstance <IOddsFeedConfigurationInternal>(newConfig, new ContainerControlledLifetimeManager());

            container.RegisterAdditionalTypes();

            _childContainer1 = container.CreateChildContainer();
            _childContainer2 = container.CreateChildContainer();
        }
Esempio n. 9
0
        public void values_forwarded_from_public_config_have_correct_values()
        {
            var publicConfig = new TokenSetter(new TestSectionProvider(_testSection))
                               .SetAccessTokenFromConfigFile()
                               .SelectCustom()
                               .LoadFromConfigFile()
                               .Build();

            var internalConfig = new OddsFeedConfigurationInternal(publicConfig, _defaultBookmakerDetailsProvider);

            internalConfig.Load();
            Assert.AreEqual(publicConfig.AccessToken, internalConfig.AccessToken);
            Assert.AreEqual(publicConfig.InactivitySeconds, internalConfig.InactivitySeconds);
            Assert.AreEqual(publicConfig.DefaultLocale, internalConfig.DefaultLocale);
            Assert.IsTrue(publicConfig.Locales.SequenceEqual(internalConfig.Locales));
            if (publicConfig.DisabledProducers == null)
            {
                Assert.IsNull(internalConfig.DisabledProducers);
            }
            else
            {
                Assert.IsTrue(publicConfig.DisabledProducers.SequenceEqual(internalConfig.DisabledProducers));
            }
            Assert.AreEqual(publicConfig.MaxRecoveryTime, internalConfig.MaxRecoveryTime);
            Assert.AreEqual(publicConfig.NodeId, internalConfig.NodeId);
            // Environment is tested separately
            Assert.AreEqual(publicConfig.ExceptionHandlingStrategy, internalConfig.ExceptionHandlingStrategy);
            // Host is tested separately
            // VirtualHost is tested separately
            Assert.AreEqual(publicConfig.Username, internalConfig.Username);
            Assert.AreEqual(publicConfig.Password, internalConfig.Password);
            Assert.AreEqual(publicConfig.Port, internalConfig.Port);
            Assert.AreEqual(publicConfig.UseSsl, internalConfig.UseSsl);
            // ApiHost is tested separately
            Assert.AreEqual(publicConfig.UseApiSsl, internalConfig.UseApiSsl);
            Assert.AreEqual(internalConfig.UseApiSsl ? "https://" + internalConfig.ApiHost : "http://" + internalConfig.ApiHost, internalConfig.ApiBaseUri);
            Assert.AreEqual("stgapi.betradar.com/v1/replay", internalConfig.ReplayApiHost);
        }