コード例 #1
0
        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);
        }
コード例 #2
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);
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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());
        }