public void Init()
        {
            _variantMemoryCache   = new MemoryCache("VariantCache");
            _invariantMemoryCache = new MemoryCache("InVariantCache");
            _variantsMemoryCache  = new MemoryCache("VariantsCache");
            //force markets to be loaded
            _timer = new TestTimer(false);
            _timer.FireOnce(TimeSpan.Zero);
            var specifiers = new ReadOnlyDictionary <string, string>(new Dictionary <string, string>
            {
                { "score", "1:1" }
            });

            _cacheManager      = new CacheManager();
            _dataRouterManager = new TestDataRouterManager(_cacheManager);

            _mappingValidatorFactory = new MappingValidatorFactory();

            _timer            = new TestTimer(true);
            _variantMdCache   = new VariantMarketDescriptionCache(_variantMemoryCache, _dataRouterManager, _mappingValidatorFactory, _cacheManager);
            _inVariantMdCache = new InvariantMarketDescriptionCache(_invariantMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, TestData.Cultures, _cacheManager);
            _variantsMdCache  = new VariantDescriptionListCache(_variantsMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, TestData.Cultures, _cacheManager);

            _nameProvider = new NameProvider(
                new MarketCacheProvider(_inVariantMdCache, _variantMdCache, _variantsMdCache),
                new Mock <IProfileCache>().Object,
                new Mock <INameExpressionFactory>().Object,
                new Mock <ISportEvent>().Object,
                41,
                specifiers,
                ExceptionHandlingStrategy.THROW
                );
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MarketDescriptionManager"/> class
        /// </summary>
        /// <param name="config">The <see cref="IOddsFeedConfigurationInternal"/> representing feed configuration</param>
        /// <param name="marketCacheProvider">A <see cref="IMarketCacheProvider"/> used to get market descriptions</param>
        /// <param name="invariantMarketDescriptionCache">A <see cref="IMarketDescriptionCache"/> used to get invariant market descriptions</param>
        /// <param name="variantDescriptionListCache">A <see cref="IVariantDescriptionCache"/> used to reload variant market descriptions</param>
        /// <param name="variantDescriptionCache">A <see cref="IMarketDescriptionCache"/> used to access market variant cache (singles)</param>
        public MarketDescriptionManager(IOddsFeedConfigurationInternal config,
                                        IMarketCacheProvider marketCacheProvider,
                                        IMarketDescriptionCache invariantMarketDescriptionCache,
                                        IVariantDescriptionCache variantDescriptionListCache,
                                        IMarketDescriptionCache variantDescriptionCache)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }
            if (marketCacheProvider == null)
            {
                throw new ArgumentNullException(nameof(marketCacheProvider));
            }
            if (invariantMarketDescriptionCache == null)
            {
                throw new ArgumentNullException(nameof(invariantMarketDescriptionCache));
            }
            if (variantDescriptionCache == null)
            {
                throw new ArgumentNullException(nameof(variantDescriptionCache));
            }

            _config = config;
            _marketCacheProvider             = marketCacheProvider;
            _invariantMarketDescriptionCache = invariantMarketDescriptionCache as InvariantMarketDescriptionCache;
            _variantDescriptionListCache     = variantDescriptionListCache;
            _exceptionHandlingStrategy       = config.ExceptionHandlingStrategy;
            _variantDescriptionCache         = variantDescriptionCache;

            if (_invariantMarketDescriptionCache == null)
            {
                throw new ArgumentException(nameof(invariantMarketDescriptionCache));
            }
        }
Exemple #3
0
        public void Init()
        {
            _cacheManager      = new CacheManager();
            _dataRouterManager = new TestDataRouterManager(_cacheManager);

            _variantMemoryCache             = new MemoryCache("VariantCache");
            _invariantMemoryCache           = new MemoryCache("InVariantCache");
            _variantDescriptionsMemoryCache = new MemoryCache("VariantDescriptionListCache");

            _timer = new SdkTimer(_timerInterval, _timerInterval);
            _mappingValidatorFactory     = new MappingValidatorFactory();
            _inVariantMdCache            = new InvariantMarketDescriptionCache(_invariantMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, TestData.Cultures, _cacheManager);
            _variantMdCache              = new VariantMarketDescriptionCache(_variantMemoryCache, _dataRouterManager, _mappingValidatorFactory, _cacheManager);
            _variantDescriptionListCache = new VariantDescriptionListCache(_variantDescriptionsMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, TestData.Cultures, _cacheManager);

            var dataFetcher = new TestDataFetcher();

            var betStopReasonsCache = new NamedValueCache(new NamedValueDataProvider(FileHelper.FindFile("betstop_reasons.xml"), dataFetcher, "betstop_reason"), ExceptionHandlingStrategy.THROW);

            var bettingStatusCache = new NamedValueCache(new NamedValueDataProvider(FileHelper.FindFile("betting_status.xml"), dataFetcher, "betting_status"),
                                                         ExceptionHandlingStrategy.THROW);

            var namedValueProviderMock = new Mock <INamedValuesProvider>();

            namedValueProviderMock.Setup(x => x.BetStopReasons).Returns(betStopReasonsCache);
            namedValueProviderMock.Setup(x => x.BettingStatuses).Returns(bettingStatusCache);

            _validator = new FeedMessageValidator(
                new MarketCacheProvider(_inVariantMdCache, _variantMdCache, _variantDescriptionListCache),
                TestData.Culture,
                namedValueProviderMock.Object,
                TestProducerManager.Create());
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="MarketCacheProvider" /> class
        /// </summary>
        /// <param name="invariantMarketsCache">
        ///     A <see cref="IMarketDescriptionCache" /> used to cache market descriptors for
        ///     invariant markets
        /// </param>
        /// <param name="variantMarketsCache">
        ///     A <see cref="IMarketDescriptionCache" /> used to cache market descriptors for variant
        ///     markets
        /// </param>
        /// <param name="variantDescriptionListCache">A <see cref="IVariantDescriptionCache" /> used to cache variant descriptions</param>
        public MarketCacheProvider(IMarketDescriptionCache invariantMarketsCache,
                                   IMarketDescriptionCache variantMarketsCache,
                                   IVariantDescriptionCache variantDescriptionListCache)
        {
            Contract.Requires(invariantMarketsCache != null);
            Contract.Requires(variantMarketsCache != null);
            Contract.Requires(variantDescriptionListCache != null);

            _invariantMarketsCache       = invariantMarketsCache;
            _variantMarketsCache         = variantMarketsCache;
            _variantDescriptionListCache = variantDescriptionListCache;
        }
Exemple #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MarketCacheProvider"/> class
        /// </summary>
        /// <param name="invariantMarketsCache">A <see cref="IMarketDescriptionCache"/> used to cache market descriptors for invariant markets</param>
        /// <param name="variantMarketsCache">A <see cref="IMarketDescriptionCache"/> used to cache market descriptors for variant markets</param>
        /// <param name="variantDescriptionListCache">A <see cref="IVariantDescriptionCache"/> used to cache variant descriptions</param>
        public MarketCacheProvider(IMarketDescriptionCache invariantMarketsCache,
                                   IMarketDescriptionCache variantMarketsCache,
                                   IVariantDescriptionCache variantDescriptionListCache)
        {
            Guard.Argument(invariantMarketsCache, nameof(invariantMarketsCache)).NotNull();
            Guard.Argument(variantMarketsCache, nameof(variantMarketsCache)).NotNull();
            Guard.Argument(variantDescriptionListCache, nameof(variantDescriptionListCache)).NotNull();

            _invariantMarketsCache       = invariantMarketsCache;
            _variantMarketsCache         = variantMarketsCache;
            _variantDescriptionListCache = variantDescriptionListCache;
        }
        public void Init()
        {
            _variantMarketDescriptionMemoryCache   = new MemoryCache("variantMarketDescriptionCache");
            _variantDescriptionMemoryCache         = new MemoryCache("variantDescriptionCache");
            _invariantMarketDescriptionMemoryCache = new MemoryCache("invariantMarketDescriptionCache");

            _cacheManager      = new CacheManager();
            _dataRouterManager = new TestDataRouterManager(_cacheManager);
            _producersProvider = new TestProducersProvider();

            _mappingValidatorFactory = new MappingValidatorFactory();

            _timer = new TestTimer(true);
            _variantMarketDescriptionCache   = new VariantMarketDescriptionCache(_variantMarketDescriptionMemoryCache, _dataRouterManager, _mappingValidatorFactory, _cacheManager);
            _variantDescriptionListCache     = new VariantDescriptionListCache(_variantDescriptionMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, TestData.Cultures, _cacheManager);
            _invariantMarketDescriptionCache = new InvariantMarketDescriptionCache(_invariantMarketDescriptionMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, TestData.Cultures, _cacheManager);

            _marketCacheProvider = new MarketCacheProvider(_invariantMarketDescriptionCache, _variantMarketDescriptionCache, _variantDescriptionListCache);
        }