public void ItSetsTheGameDefinitionEditViewModelOnTheView() { var gameDefinitionSummary = new GameDefinitionSummary() { Id = 1, Name = "some name", Active = false, BoardGameGeekGameDefinitionId = 2, //TODO add thumbnail image url to the edit page //ThumbnailImageUrl = "some url", Description = "some description" }; autoMocker.Get<IGameDefinitionRetriever>().BackToRecord(BackToRecordOptions.All); autoMocker.Get<IGameDefinitionRetriever>().Replay(); autoMocker.Get<IGameDefinitionRetriever>().Expect(mock => mock.GetGameDefinitionDetails(gameDefinitionSummary.Id, 0)) .Repeat.Once() .Return(gameDefinitionSummary); var viewResult = autoMocker.ClassUnderTest.Edit(gameDefinitionSummary.Id, currentUser) as ViewResult; var gameDefinitionEditViewModel = viewResult.ViewData.Model as GameDefinitionEditViewModel; Assert.That(gameDefinitionEditViewModel, Is.Not.Null); Assert.That(gameDefinitionEditViewModel.GameDefinitionId, Is.EqualTo(gameDefinitionSummary.Id)); Assert.That(gameDefinitionEditViewModel.Name, Is.EqualTo(gameDefinitionSummary.Name)); Assert.That(gameDefinitionEditViewModel.Active, Is.EqualTo(gameDefinitionSummary.Active)); Assert.That(gameDefinitionEditViewModel.BoardGameGeekGameDefinitionId, Is.EqualTo(gameDefinitionSummary.BoardGameGeekGameDefinitionId)); }
public GameDefinitionSummaryViewModel Build(GameDefinitionSummary gameDefinitionSummary, ApplicationUser currentUser) { var viewModel = new GameDefinitionSummaryViewModel { Id = gameDefinitionSummary.Id, Name = gameDefinitionSummary.Name, Description = gameDefinitionSummary.Description, TotalNumberOfGamesPlayed = gameDefinitionSummary.TotalNumberOfGamesPlayed, GamingGroupId = gameDefinitionSummary.GamingGroupId, GamingGroupName = gameDefinitionSummary.GamingGroupName, BoardGameGeekInfo = _transformer.Transform<BoardGameGeekInfoViewModel>(gameDefinitionSummary.BoardGameGeekInfo), UserCanEdit = (currentUser != null && gameDefinitionSummary.GamingGroupId == currentUser.CurrentGamingGroupId) }; if (!(gameDefinitionSummary.Champion is NullChampion)) { viewModel.ChampionName = gameDefinitionSummary.Champion.Player.Name; viewModel.ChampionPlayerId = gameDefinitionSummary.Champion.Player.Id; } if (!(gameDefinitionSummary.PreviousChampion is NullChampion)) { viewModel.PreviousChampionName = gameDefinitionSummary.PreviousChampion.Player.Name; viewModel.PreviousChampionPlayerId = gameDefinitionSummary.PreviousChampion.Player.Id; } return viewModel; }
public GameDefinitionDetailsViewModel Build(GameDefinitionSummary gameDefinitionSummary, ApplicationUser currentUser) { BoardGameGeekInfoViewModel boardGameGeekInfoViewModel = null; if (gameDefinitionSummary.BoardGameGeekGameDefinitionId.HasValue) { boardGameGeekInfoViewModel = _transformer.Transform<BoardGameGeekInfoViewModel>(gameDefinitionSummary.BoardGameGeekInfo); } var viewModel = new GameDefinitionDetailsViewModel { GameDefinitionId = gameDefinitionSummary.Id, GameDefinitionName = gameDefinitionSummary.Name, TotalNumberOfGamesPlayed = gameDefinitionSummary.TotalNumberOfGamesPlayed, AveragePlayersPerGame = $"{gameDefinitionSummary.AveragePlayersPerGame:0.#}", GamingGroupId = gameDefinitionSummary.GamingGroupId, GamingGroupName = gameDefinitionSummary.GamingGroupName, UserCanEdit = (currentUser != null && gameDefinitionSummary.GamingGroupId == currentUser.CurrentGamingGroupId), BoardGameGeekInfo = boardGameGeekInfoViewModel }; if (gameDefinitionSummary.PlayedGames == null) { viewModel.PlayedGames = new List<PlayedGameDetailsViewModel>(); } else { viewModel.PlayedGames = (from playedGame in gameDefinitionSummary.PlayedGames select _playedGameDetailsViewModelBuilder.Build(playedGame, currentUser,true)) .ToList(); } if (!(gameDefinitionSummary.Champion is NullChampion)) { viewModel.ChampionName = PlayerNameBuilder.BuildPlayerName( gameDefinitionSummary.Champion.Player.Name, gameDefinitionSummary.Champion.Player.Active); viewModel.ChampionPlayerId = gameDefinitionSummary.Champion.Player.Id; viewModel.WinPercentage = gameDefinitionSummary.Champion.WinPercentage; viewModel.NumberOfGamesPlayed = gameDefinitionSummary.Champion.NumberOfGames; viewModel.NumberOfWins = gameDefinitionSummary.Champion.NumberOfWins; } if (!(gameDefinitionSummary.PreviousChampion is NullChampion)) { viewModel.PreviousChampionName = PlayerNameBuilder.BuildPlayerName( gameDefinitionSummary.PreviousChampion.Player.Name, gameDefinitionSummary.PreviousChampion.Player.Active); viewModel.PreviousChampionPlayerId = gameDefinitionSummary.PreviousChampion.Player.Id; } viewModel.GameDefinitionPlayersSummary = gameDefinitionSummary.PlayerWinRecords .Select(_transformer.Transform<GameDefinitionPlayerSummaryViewModel>) .ToList(); return viewModel; }
public override void SetUp() { base.SetUp(); gameDefinitionSummary = new GameDefinitionSummary() { PlayedGames = new List<PlayedGame>(), GamingGroupId = currentUser.CurrentGamingGroupId }; autoMocker.Get<IGameDefinitionRetriever>().Expect(repo => repo.GetGameDefinitionDetails( Arg<int>.Is.Anything, Arg<int>.Is.Anything)) .Return(gameDefinitionSummary); autoMocker.Get<IGameDefinitionDetailsViewModelBuilder>().Expect(mock => mock.Build(gameDefinitionSummary, currentUser)) .Return(expectedViewModel); }
public override void FixtureSetUp() { base.FixtureSetUp(); using (dbContext = new NemeStatsDbContext()) { using (dataContext = new NemeStatsDataContext(dbContext, securedEntityValidatorFactory)) { var playerRepository = new EntityFrameworkPlayerRepository(dataContext); var cacheableGameDataRetriever = new BoardGameGeekGameDefinitionInfoRetriever(new DateUtilities(), new CacheService(), dataContext); var gameDefinitionRetriever = new GameDefinitionRetriever(dataContext, playerRepository, cacheableGameDataRetriever); gameDefinitionSummary = gameDefinitionRetriever.GetGameDefinitionDetails( testGameDefinition.Id, numberOfGamesToRetrieve); } } }
public void SetUp() { _autoMocker = new RhinoAutoMocker<UniversalGameRetriever>(); _currentUser = new ApplicationUser { Id = "some user id" }; _expectedGameDefinition = new GameDefinition { Id = 20, BoardGameGeekGameDefinitionId = _boardGameGeekGameDefinitionId, }; var otherGameDefinition = new GameDefinition { Id = 21, BoardGameGeekGameDefinitionId = _boardGameGeekGameDefinitionId, }; var gameDefinitionQueryable = new List<GameDefinition> { _expectedGameDefinition, otherGameDefinition }.AsQueryable(); _autoMocker.Get<IDataContext>().Expect(mock => mock.GetQueryable<GameDefinition>()).Return(gameDefinitionQueryable); _expectedBoardGameGeekInfo = new BoardGameGeekInfo(); _autoMocker.Get<IBoardGameGeekGameDefinitionInfoRetriever>().Expect(mock => mock.GetResults(Arg<int>.Is.Anything)).Return(_expectedBoardGameGeekInfo); _expectedGameDefinitionSummary = new GameDefinitionSummary(); _expectedUniversalStats = new UniversalGameStats(); _autoMocker.Get<IUniversalStatsRetriever>().Expect(mock => mock.GetResults(Arg<int>.Is.Anything)) .Return(_expectedUniversalStats); _expectedTopChampions = new List<ChampionData>(); _autoMocker.Get<IUniversalTopChampionsRetreiver>().Expect(mock => mock.GetFromSource(Arg<int>.Is.Anything)) .Return(_expectedTopChampions); }
public void SetUp() { _autoMocker = new RhinoAutoMocker<UniversalGameController>(); _currentUser = new ApplicationUser(); _expectedPlayedGame1 = new PlayedGame(); _expectedPlayedGame2 = new PlayedGame(); _expectedPlayerWinRecord1 = new PlayerWinRecord(); _expectedPlayerWinRecord2 = new PlayerWinRecord(); _expectedGameDefinitionSummary = new GameDefinitionSummary { Id = 50, AveragePlayersPerGame = 2.59M, GamingGroupName = "some gaming group name", TotalNumberOfGamesPlayed = 3, PlayedGames = new List<PlayedGame> { _expectedPlayedGame1, _expectedPlayedGame2 }, PlayerWinRecords = new List<PlayerWinRecord> { _expectedPlayerWinRecord1, _expectedPlayerWinRecord2 } }; _expectedBoardGameGeekGameSummary = new BoardGameGeekGameSummary { GamingGroupGameDefinitionSummary = _expectedGameDefinitionSummary }; _expectedUniversalGameDetailsViewModel = new UniversalGameDetailsViewModel { BoardGameGeekInfo = new BoardGameGeekInfoViewModel() }; _autoMocker.Get<IUniversalGameRetriever>().Expect(mock => mock.GetBoardGameGeekGameSummary(Arg<int>.Is.Anything, Arg<ApplicationUser>.Is.Anything, Arg<int>.Is.Anything)) .Return(_expectedBoardGameGeekGameSummary); _autoMocker.Get<ITransformer>() .Expect(mock => mock.Transform<UniversalGameDetailsViewModel>(Arg<BoardGameGeekGameSummary>.Is.Anything)) .Return(_expectedUniversalGameDetailsViewModel); }
public void FixtureSetUp() { _autoMocker = new RhinoAutoMocker<GameDefinitionDetailsViewModelBuilder>(); _autoMocker.PartialMockTheClassUnderTest(); _expectedPlayerSummary1 = new GameDefinitionPlayerSummaryViewModel(); _expectedPlayerSummary2 = new GameDefinitionPlayerSummaryViewModel(); List<PlayedGame> playedGames = new List<PlayedGame>(); playedGames.Add(new PlayedGame { Id = 10 }); _playedGameDetailsViewModel1 = new PlayedGameDetailsViewModel(); playedGames.Add(new PlayedGame { Id = 11 }); _playedGameDetailsViewModel2 = new PlayedGameDetailsViewModel(); _championPlayer = new Player { Name = _championName, Id = _championPlayerId, Active = true }; _previousChampionPlayer = new Player { Name = _previousChampionName, Id = _previousChampionPlayerId, Active = false }; _champion = new Champion { Player = _championPlayer, WinPercentage = _championWinPercentage, NumberOfGames = _championNumberOfGames, NumberOfWins = _championNumberOfWins }; _previousChampion = new Champion { Player = _previousChampionPlayer }; _playerWinRecord1 = new PlayerWinRecord { GamesWon = 1, GamesLost = 2, PlayerName = "player name", WinPercentage = 33, PlayerId = 3 }; _playerWinRecord2 = new PlayerWinRecord(); _autoMocker.Get<ITransformer>().Expect(mock => mock.Transform<GameDefinitionPlayerSummaryViewModel>(_playerWinRecord1)) .Return(_expectedPlayerSummary1); _autoMocker.Get<ITransformer>().Expect(mock => mock.Transform<GameDefinitionPlayerSummaryViewModel>(_playerWinRecord2)) .Return(_expectedPlayerSummary2); _gameDefinitionSummary = new GameDefinitionSummary { Id = 1, Name = "game definition name", Description = "game definition description", GamingGroupId = _gamingGroupid, GamingGroupName = "gaming group name", PlayedGames = playedGames, TotalNumberOfGamesPlayed = 3, AveragePlayersPerGame = 2.2M, BoardGameGeekGameDefinitionId = 123, BoardGameGeekGameDefinition = new BoardGameGeekGameDefinition() { Id = 123}, Champion = _champion, PreviousChampion = _previousChampion, PlayerWinRecords = new List<PlayerWinRecord> { _playerWinRecord1, _playerWinRecord2 }, BoardGameGeekInfo = new BoardGameGeekInfo() }; _currentUser = new ApplicationUser { CurrentGamingGroupId = _gamingGroupid }; _autoMocker.Get<IPlayedGameDetailsViewModelBuilder>().Expect(mock => mock.Build(_gameDefinitionSummary.PlayedGames[0], _currentUser, true)) .Return(_playedGameDetailsViewModel1); _autoMocker.Get<IPlayedGameDetailsViewModelBuilder>().Expect(mock => mock.Build(_gameDefinitionSummary.PlayedGames[1], _currentUser, true)) .Return(_playedGameDetailsViewModel2); _expectedBoardGameGeekInfo = new BoardGameGeekInfoViewModel(); _autoMocker.Get<ITransformer>().Expect(mock => mock.Transform<BoardGameGeekInfoViewModel>(_gameDefinitionSummary.BoardGameGeekInfo)) .Return(_expectedBoardGameGeekInfo); _viewModel = _autoMocker.ClassUnderTest.Build(_gameDefinitionSummary, _currentUser); }
public void FixtureSetUp() { _transformer = new GameDefinitionSummaryViewModelBuilder(new Transformer(), new WeightTierCalculator()); List<PlayedGame> playedGames = new List<PlayedGame>(); playedGames.Add(new PlayedGame() { Id = 10 }); playedGames.Add(new PlayedGame() { Id = 11 }); _championPlayer = new Player { Name = _championName, Id = _championPlayerId }; _previousChampionPlayer = new Player { Name = _previousChampionName, Id = _previousChampionPlayerId }; _champion = new Champion { Player = _championPlayer, }; _previousChampion = new Champion { Player = _previousChampionPlayer }; _gameDefinitionSummary = new GameDefinitionSummary() { Id = 1, Name = "game definition name", Description = "game definition description", GamingGroupId = _gamingGroupid, GamingGroupName = "gaming group name", PlayedGames = playedGames, Champion = _champion, PreviousChampion = _previousChampion }; _currentUser = new ApplicationUser() { CurrentGamingGroupId = _gamingGroupid }; _viewModel = _transformer.Build(_gameDefinitionSummary, _currentUser); }
private IList<PlayedGame> AddPlayedGamesToTheGameDefinition( int numberOfPlayedGamesToRetrieve, GameDefinitionSummary gameDefinitionSummary) { IList<PlayedGame> playedGames = _dataContext.GetQueryable<PlayedGame>().Include(playedGame => playedGame.PlayerGameResults) .Where(playedGame => playedGame.GameDefinitionId == gameDefinitionSummary.Id) .OrderByDescending(playedGame => playedGame.DatePlayed) .Take(numberOfPlayedGamesToRetrieve) .ToList(); foreach (var playedGame in playedGames) { playedGame.GameDefinition = gameDefinitionSummary; } gameDefinitionSummary.PlayedGames = playedGames; return playedGames; }
public virtual GameDefinitionSummary GetGameDefinitionDetails(int id, int numberOfPlayedGamesToRetrieve) { var gameDefinition = _dataContext.GetQueryable<GameDefinition>() .Include(game => game.PlayedGames) .Include(game => game.Champion) .Include(game => game.Champion.Player) .Include(game => game.PreviousChampion) .Include(game => game.PreviousChampion.Player) .Include(game => game.GamingGroup) .SingleOrDefault(game => game.Id == id); if (gameDefinition == null) { throw new EntityDoesNotExistException(typeof(GameDefinition), id); } BoardGameGeekInfo boardGameGeekInfo = null; if (gameDefinition.BoardGameGeekGameDefinitionId.HasValue) { boardGameGeekInfo = _boardGameGeekGameDefinitionInfoRetriever.GetResults(gameDefinition.BoardGameGeekGameDefinitionId.Value); } var gameDefinitionSummary = new GameDefinitionSummary { Active = gameDefinition.Active, BoardGameGeekGameDefinitionId = gameDefinition.BoardGameGeekGameDefinitionId, Name = gameDefinition.Name, Description = gameDefinition.Description, GamingGroup = gameDefinition.GamingGroup, GamingGroupId = gameDefinition.GamingGroupId, GamingGroupName = gameDefinition.GamingGroup.Name, Id = gameDefinition.Id, TotalNumberOfGamesPlayed = gameDefinition.PlayedGames.Count, AveragePlayersPerGame = gameDefinition.PlayedGames.Select(item => (decimal)item.NumberOfPlayers).DefaultIfEmpty(0M).Average(), Champion = gameDefinition.Champion ?? new NullChampion(), PreviousChampion = gameDefinition.PreviousChampion ?? new NullChampion(), BoardGameGeekInfo = boardGameGeekInfo }; var playedGames = AddPlayedGamesToTheGameDefinition(numberOfPlayedGamesToRetrieve, gameDefinitionSummary); var distinctPlayerIds = AddPlayerGameResultsToEachPlayedGame(playedGames); AddPlayersToPlayerGameResults(playedGames, distinctPlayerIds); gameDefinitionSummary.PlayerWinRecords = _playerRepository.GetPlayerWinRecords(id); return gameDefinitionSummary; }