public void It_Applies_Appropriate_Filters_When_Returning_Results() { //--arrange var gameDefinitionWithBadGamingGroupId = MakeValidGameDefinition(); gameDefinitionWithBadGamingGroupId.GamingGroupId = -1; var gameDefinitionThatIsNotActive = MakeValidGameDefinition(); gameDefinitionThatIsNotActive.Active = false; var gameDefinitionThatHasNoChampion = MakeValidGameDefinition(); gameDefinitionThatHasNoChampion.ChampionId = null; var queryable = new List <GameDefinition> { gameDefinitionWithBadGamingGroupId, gameDefinitionThatIsNotActive, gameDefinitionThatHasNoChampion }.AsQueryable(); _autoMocker.Get <IDataContext>().Expect(mock => mock.GetQueryable <GameDefinition>()) .Return(queryable); var filter = new GetRecentChampionChangesFilter(GAMING_GROUP_ID, 100); //--act var results = _autoMocker.ClassUnderTest.GetRecentChampionChanges(filter); //--assert results.ShouldNotBeNull(); results.Count.ShouldBe(0); }
public void It_Takes_Only_The_Specified_Number_Of_Results() { //--arrange var gameDefinitionThatIsOlderAndWontGetPulled = MakeValidGameDefinition(1); gameDefinitionThatIsOlderAndWontGetPulled.Champion.DateCreated = DateTime.UtcNow.AddDays(-100); var gameDefinitionIsNewerAndShouldGetPulled = MakeValidGameDefinition(2); var queryable = new List <GameDefinition> { gameDefinitionThatIsOlderAndWontGetPulled, gameDefinitionIsNewerAndShouldGetPulled }.AsQueryable(); _autoMocker.Get <IDataContext>().Expect(mock => mock.GetQueryable <GameDefinition>()) .Return(queryable); var filter = new GetRecentChampionChangesFilter(GAMING_GROUP_ID, 1); //--act var results = _autoMocker.ClassUnderTest.GetRecentChampionChanges(filter); //--assert results.ShouldNotBeNull(); results.Count.ShouldBe(1); results.ShouldContain(x => x.GameDefinitionId == gameDefinitionIsNewerAndShouldGetPulled.Id); }
public virtual ActionResult GetRecentChanges(int gamingGroupId, [System.Web.Http.FromUri] BasicDateRangeFilter dateRangeFilter = null) { var recentChanges = _gamingGroupRetriever.GetRecentChanges(gamingGroupId, dateRangeFilter); var getRecentNemesisChangesRequest = new GetRecentNemesisChangesRequest { GamingGroupId = gamingGroupId, NumberOfRecentChangesToRetrieve = NUMBER_OF_RECENT_NEMESIS_TO_SHOW }; var recentNemesisChanges = _nemesisHistoryRetriever.GetRecentNemesisChanges(getRecentNemesisChangesRequest); var recentNemesisChangesViewModel = _transformer.Transform <List <NemesisChangeViewModel> >(recentNemesisChanges); var recentAchievemments = recentChanges.RecentAchievements .ToTransformedPagedList <PlayerAchievementWinner, PlayerAchievementWinnerViewModel>(_transformer); var getRecentChampionChangesFilter = new GetRecentChampionChangesFilter(gamingGroupId, NUMBER_OF_RECENT_CHAMPION_CHANGES_TO_SHOW); var recentChampionChanges = _recentChampionRetriever.GetRecentChampionChanges(getRecentChampionChangesFilter); var recentChampionChangesViewModels = _transformer.Transform <List <ChampionChangeViewModel> >(recentChampionChanges); var viewModel = new RecentGamingGroupChangesViewModel { RecentAchievements = recentAchievemments, RecentNemesisChanges = recentNemesisChangesViewModel, RecentChampionChanges = recentChampionChangesViewModels }; return(PartialView(MVC.GamingGroup.Views._GamingGroupRecentChanges, viewModel)); }
public void It_Returns_Recent_Champion_Changes_Ordered_By_Champion_Created_Date_Descending() { //--arrange var gameDefinitionThatMatchesWithOlderDate = MakeValidGameDefinition(2); gameDefinitionThatMatchesWithOlderDate.Champion.DateCreated = DateTime.UtcNow.Date.AddDays(-1 * 100); gameDefinitionThatMatchesWithOlderDate.Champion.PlayerId = 20; var gameDefinitionThatMatchesWithNewerDate = MakeValidGameDefinition(1); var queryable = new List <GameDefinition> { gameDefinitionThatMatchesWithOlderDate, gameDefinitionThatMatchesWithNewerDate }.AsQueryable(); _autoMocker.Get <IDataContext>().Expect(mock => mock.GetQueryable <GameDefinition>()) .Return(queryable); var filter = new GetRecentChampionChangesFilter(GAMING_GROUP_ID, 100); //--act var results = _autoMocker.ClassUnderTest.GetRecentChampionChanges(filter); //--assert results.ShouldNotBeNull(); results.Count.ShouldBe(2); //--first result is the newest results[0].DateCreated.Date.ShouldBe(gameDefinitionThatMatchesWithNewerDate.Champion.DateCreated); results[0].GameDefinitionId.ShouldBe(gameDefinitionThatMatchesWithNewerDate.Id); results[0].GameName.ShouldBe(gameDefinitionThatMatchesWithNewerDate.Name); results[0].NewChampionPlayerId.ShouldBe(gameDefinitionThatMatchesWithNewerDate.Champion.PlayerId); results[0].NewChampionPlayerName.ShouldBe(gameDefinitionThatMatchesWithNewerDate.Champion.Player.Name); results[0].PreviousChampionPlayerId.ShouldBe(gameDefinitionThatMatchesWithNewerDate.PreviousChampion.PlayerId); results[0].PreviousChampionPlayerName.ShouldBe(gameDefinitionThatMatchesWithNewerDate.PreviousChampion.Player.Name); //--second result is the oldest results[1].DateCreated.Date.ShouldBe(gameDefinitionThatMatchesWithOlderDate.Champion.DateCreated); results[1].GameDefinitionId.ShouldBe(gameDefinitionThatMatchesWithOlderDate.Id); results[1].GameName.ShouldBe(gameDefinitionThatMatchesWithOlderDate.Name); results[1].NewChampionPlayerId.ShouldBe(gameDefinitionThatMatchesWithOlderDate.Champion.PlayerId); results[1].NewChampionPlayerName.ShouldBe(gameDefinitionThatMatchesWithOlderDate.Champion.Player.Name); results[1].PreviousChampionPlayerId.ShouldBe(gameDefinitionThatMatchesWithOlderDate.PreviousChampion.PlayerId); results[1].PreviousChampionPlayerName.ShouldBe(gameDefinitionThatMatchesWithOlderDate.PreviousChampion.Player.Name); }
public IList <ChampionChange> GetRecentChampionChanges(GetRecentChampionChangesFilter filter) { var filterDate = DateTime.UtcNow.AddDays(-1 * filter.NumberOfRecentChangesToShow); return(_dataContext.GetQueryable <GameDefinition>() .Where(x => x.Active && x.GamingGroupId == filter.GamingGroupId && x.ChampionId.HasValue) .Select(x => new ChampionChange { NewChampionPlayerId = x.Champion.PlayerId, NewChampionPlayerName = x.Champion.Player.Name, DateCreated = x.Champion.DateCreated, PreviousChampionPlayerId = x.PreviousChampion.PlayerId, PreviousChampionPlayerName = x.PreviousChampion.Player.Name, GameDefinitionId = x.Id, GameName = x.Name }) .OrderByDescending(x => x.DateCreated) .Take(filter.NumberOfRecentChangesToShow) .ToList()); }