Exemple #1
0
        public static void ValidateTestEventId(MatchCI ci, IEnumerable <CultureInfo> cultures, bool canHaveOtherLanguage)
        {
            Assert.IsNotNull(ci, "Cached item not found.");
            Assert.AreEqual(EventId, ci.Id);
            if (cultures == null)
            {
                Assert.IsNull(ci);
            }

            var      date   = new DateTime?();
            RoundCI  round  = null;
            SeasonCI season = null;

            var cultureInfos = cultures.ToList();
            var cStr         = string.Join(",", cultureInfos);
            var lStr         = string.Join(",", ci.LoadedSummaries);

            Assert.IsTrue(ci.HasTranslationsFor(cultureInfos), $"Culture missing: {cStr}, loaded summaries: {lStr}");
            if (!canHaveOtherLanguage)
            {
                Assert.IsTrue(ci.LoadedSummaries.Count >= cultureInfos.Count || ci.LoadedFixtures.Count >= cultureInfos.Count);
            }
            foreach (var culture in cultureInfos)
            {
                var checkCulture = new[] { culture };
                Task.Run(async() =>
                {
                    date   = await ci.GetScheduledAsync();
                    round  = await ci.GetTournamentRoundAsync(checkCulture);
                    season = await ci.GetSeasonAsync(checkCulture);
                }).GetAwaiter().GetResult();

                Debug.Assert(date != null, "date != null");
                Assert.AreEqual(new DateTime(2016, 08, 10), new DateTime(date.Value.Year, date.Value.Month, date.Value.Day));

                Assert.IsTrue(string.IsNullOrEmpty(round.GetName(culture)));

                Assert.IsTrue(Math.Max(ci.LoadedSummaries.Count, ci.LoadedFixtures.Count) >= season.Names.Count);
            }
        }
        internal static void ValidateTestEventId(MatchCI ci, IEnumerable <CultureInfo> cultures, bool canHaveOtherLanguage)
        {
            Assert.IsNotNull(ci, "Cached item not found.");
            Assert.AreEqual(EventId, ci.Id);
            if (cultures == null)
            {
                Assert.IsNull(ci);
            }

            var date = new DateTime?();
            List <TeamCompetitorCI> competitors = null;
            TeamCompetitorCI        comp        = null;
            RoundCI   round  = null;
            CacheItem season = null;

            var cultureInfos = cultures.ToList();
            var cStr         = string.Join(",", cultureInfos);
            var lStr         = string.Join(",", ci.LoadedSummaries);

            Assert.IsTrue(ci.HasTranslationsFor(cultureInfos), $"Culture missing: {cStr}, loaded summaries: {lStr}");
            if (!canHaveOtherLanguage)
            {
                Assert.IsTrue(ci.LoadedSummaries.Count >= cultureInfos.Count || ci.LoadedFixtures.Count >= cultureInfos.Count);
            }
            foreach (var culture in cultureInfos)
            {
                var checkCulture = new[] { culture };
                Task.Run(async() =>
                {
                    date = await ci.GetScheduledAsync();
                    //competitors = (await ci.GetCompetitorsAsync(checkCulture)).ToList();
                    // ReSharper disable once AssignNullToNotNullAttribute
                    //comp = competitors.FirstOrDefault();
                    round  = await ci.GetTournamentRoundAsync(checkCulture);
                    season = await ci.GetSeasonAsync(checkCulture);
                }).GetAwaiter().GetResult();

                Debug.Assert(date != null, "date != null");
                Assert.AreEqual(new DateTime(2016, 08, 10), new DateTime(date.Value.Year, date.Value.Month, date.Value.Day));

                //Assert.AreEqual(2, competitors.Count);

                //TODO - this was removed
                if (comp != null)
                {
                    Assert.AreEqual("sr:competitor:66390", comp.Id.ToString());
                    Assert.AreEqual(@"Pericos de Puebla", comp.GetName(culture));
                    if (Equals(culture, Culture))
                    {
                        Assert.AreEqual("Mexico", comp.GetCountry(culture));
                        Assert.AreEqual("Mexican League 2016", season.Name[culture]);
                    }
                    if (culture.TwoLetterISOLanguageName != "de")
                    {
                        Assert.AreNotEqual(comp.GetCountry(culture), comp.GetCountry(new CultureInfo("de")));
                    }
                }
                Assert.IsTrue(string.IsNullOrEmpty(round.GetName(culture)));

                Assert.IsTrue(Math.Max(ci.LoadedSummaries.Count, ci.LoadedFixtures.Count) >= season.Name.Count);
            }
        }
Exemple #3
0
        public async Task SportEventCacheItemConcurrencyTest()
        {
            var stopWatch = Stopwatch.StartNew();

            Assert.AreEqual(0, _memoryCache.Count());
            var     i     = 1000;
            var     tasks = new List <Task>();
            MatchCI ci    = null;

            while (i > 0)
            {
                var startTime = stopWatch.Elapsed;
                i--;
                tasks.Clear();
                var culture = TestData.Cultures4[StaticRandom.I(4)];
                try
                {
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Loading {i} culture: {culture.TwoLetterISOLanguageName}");

                    ci = (MatchCI)_sportEventCache.GetEventCacheItem(TestData.EventId);
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} culture: {culture.TwoLetterISOLanguageName}");

                    tasks.Add(ci.GetNamesAsync(new[] { culture }));
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} name");
                    tasks.Add(ci.GetFixtureAsync(new[] { culture }));
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} fixture");
                    tasks.Add(ci.GetTournamentIdAsync(TestData.Cultures));
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} tournament");
                    tasks.Add(ci.GetBookingStatusAsync());
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} booking status");
                    tasks.Add(ci.GetCompetitorsIdsAsync(new[] { culture }));
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} competitors");
                    tasks.Add(ci.GetVenueAsync(new[] { culture }));
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} venue");
                    tasks.Add(ci.GetLiveOddsAsync());
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} live odds");
                    tasks.Add(ci.GetSportEventTypeAsync());
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} sport event type");
                    tasks.Add(ci.GetStageTypeAsync());
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} stage type");
                    tasks.Add(ci.FetchSportEventStatusAsync());
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Get {i} status");
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Prepare tasks {i} culture: {culture.TwoLetterISOLanguageName}");

                    await Task.WhenAll(tasks).ConfigureAwait(false);
                }
                catch (Exception e)
                {
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Error: {e}");
                }

                Debug.WriteLine($"{GetElapsed(stopWatch)} Tasks {i} completed.");
                if (i % 10 == 3)
                {
                    Debug.WriteLine($"{GetElapsed(stopWatch)} Deleting {i} culture: {culture.TwoLetterISOLanguageName}");
                    _sportEventCache.CacheDeleteItem(TestData.EventId, CacheItemType.All);
                }
                else
                {
                    var c1 = _dataRouterManager.GetCallCount(SportEventSummary);
                    TestData.ValidateTestEventId(ci, new[] { culture }, true);
                    var c2 = _dataRouterManager.GetCallCount(SportEventSummary);
                    Assert.AreEqual(c1, c2);
                }

                var took = stopWatch.Elapsed - startTime;
                Debug.WriteLine($"{GetElapsed(stopWatch)} Iteration {i} completed. Took {took.Milliseconds} ms.");
            }
            Assert.AreEqual(2, _memoryCache.Count());
        }