public void TestDataIsCachedTest() { const string callType = "GetAllSportsAsync"; var allSports = _sportDataCache.GetSportsAsync(TestData.Cultures).Result; Assert.IsNotNull(allSports, "List of sports cannot be a null reference"); Assert.AreEqual(136, allSports.Count(), "The number of sports must be 136."); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(callType), $"{callType} should be called exactly {TestData.Cultures.Count} times."); Task.Run(async() => { _timer.FireOnce(TimeSpan.Zero); var sports = await _sportDataCache.GetSportsAsync(TestData.Cultures).ConfigureAwait(false); Assert.IsNotNull(sports, "Retrieved sports cannot be null"); var sport = await _sportDataCache.GetSportAsync(SportId, TestData.Cultures).ConfigureAwait(false); Assert.IsNotNull(sport, "sport cannot be a null reference"); var tournamentSport = await _sportDataCache.GetSportForTournamentAsync(URN.Parse("sr:tournament:146"), TestData.Cultures); Assert.IsNotNull(tournamentSport, "tournamentSport cannot be a null reference"); Assert.AreEqual(1, tournamentSport.Categories.Count(), "The number of categories must be 1"); Assert.AreEqual(1, tournamentSport.Categories.First().Tournaments.Count(), "the number of tournaments must be 1"); }).GetAwaiter().GetResult(); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(callType), $"{callType} should be called exactly {TestData.Cultures.Count} times."); }
public void SportDataCacheCorrectlyHandlesFetchMiss() { var nonExistingTournamentUrn = URN.Parse($"{TestData.SimpleTournamentId}9"); Assert.AreEqual(0, _sportDataCache.Sports.Count); Assert.AreEqual(0, _sportDataCache.Categories.Count); Assert.AreEqual(0, _sportEventCache.Cache.Count()); Assert.AreEqual(0, _dataRouterManager.GetCallCount(AllTournaments), $"{AllTournaments} should be called exactly 0 times."); Assert.AreEqual(0, _dataRouterManager.GetCallCount(AllSports), $"{AllSports} should be called exactly 0 times."); Assert.AreEqual(0, _dataRouterManager.GetCallCount(SportEventSummary), $"{SportEventSummary} should be called exactly 0 times."); var sports = _sportDataCache.GetSportsAsync(TestData.Cultures).Result; // initial load Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(AllTournaments), $"{AllTournaments} should be called exactly {TestData.Cultures.Count} times."); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(AllSports), $"{AllSports} should be called exactly {TestData.Cultures.Count} times."); Assert.AreEqual(0, _dataRouterManager.GetCallCount(SportEventSummary), $"{SportEventSummary} should be called exactly 0 times."); Assert.AreEqual(TestData.CacheSportCount, _sportDataCache.Sports.Count); Assert.AreEqual(TestData.CacheCategoryCountPlus, _sportDataCache.Categories.Count); Assert.AreEqual(TestData.CacheTournamentCount, _sportEventCache.Cache.Count(c => c.Key.Contains("tournament") || c.Key.Contains("season"))); Assert.AreEqual(0, _sportEventCache.SpecialTournaments.Count()); var data01 = _sportDataCache.GetSportForTournamentAsync(nonExistingTournamentUrn, TestData.Cultures).Result; Assert.IsNull(data01); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(AllTournaments), $"{AllTournaments} should be called exactly {TestData.Cultures.Count} times."); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(AllSports), $"{AllSports} should be called exactly {TestData.Cultures.Count} times."); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(SportEventSummary), $"{SportEventSummary} should be called exactly {TestData.Cultures.Count} times."); Assert.AreEqual(TestData.CacheSportCount, _sportDataCache.Sports.Count); Assert.AreEqual(TestData.CacheCategoryCountPlus, _sportDataCache.Categories.Count); Assert.AreEqual(TestData.CacheTournamentCount + 1, _sportEventCache.Cache.Count(c => c.Key.Contains("tournament") || c.Key.Contains("season"))); Assert.AreEqual(1, _sportEventCache.SpecialTournaments.Count()); data01 = _sportDataCache.GetSportForTournamentAsync(nonExistingTournamentUrn, TestData.Cultures).Result; Assert.IsNull(data01); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(AllTournaments), $"{AllTournaments} should be called exactly {TestData.Cultures.Count} times."); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(AllSports), $"{AllSports} should be called exactly {TestData.Cultures.Count} times."); Assert.AreEqual(TestData.Cultures.Count, _dataRouterManager.GetCallCount(SportEventSummary), $"{SportEventSummary} should be called exactly {TestData.Cultures.Count} times."); Assert.AreEqual(TestData.CacheSportCount, _sportDataCache.Sports.Count); Assert.AreEqual(TestData.CacheCategoryCountPlus, _sportDataCache.Categories.Count); Assert.AreEqual(TestData.CacheTournamentCount + 1, _sportEventCache.Cache.Count(c => c.Key.Contains("tournament") || c.Key.Contains("season"))); Assert.AreEqual(1, _sportEventCache.SpecialTournaments.Count()); Assert.IsNotNull(sports); Assert.IsNull(data01); }