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); }
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); }
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(); }
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(); }
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(); }
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); }