public void ItGetsTheGamesPlayedMetrics() { using (IDataContext dataContext = new NemeStatsDataContext()) { IPlayerRepository playerRepository = new EntityFrameworkPlayerRepository(dataContext); IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); IPlayerRetriever playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); PlayerStatistics playerStatistics = playerRetriever.GetPlayerStatistics(testPlayer1.Id); int totalGamesForPlayer1 = testPlayedGames .Count(playedGame => playedGame.PlayerGameResults .Any(playerGameResult => playerGameResult.PlayerId == testPlayer1.Id)); Assert.That(playerStatistics.TotalGames, Is.EqualTo(totalGamesForPlayer1)); int totalWinsForPlayer1 = testPlayedGames .Count(playedGame => playedGame.PlayerGameResults .Any(playerGameResult => playerGameResult.PlayerId == testPlayer1.Id && playerGameResult.GameRank == 1)); Assert.That(playerStatistics.TotalGamesWon, Is.EqualTo(totalWinsForPlayer1)); int totalLossesForPlayer1 = testPlayedGames .Count(playedGame => playedGame.PlayerGameResults .Any(playerGameResult => playerGameResult.PlayerId == testPlayer1.Id && playerGameResult.GameRank != 1)); Assert.That(playerStatistics.TotalGamesLost, Is.EqualTo(totalLossesForPlayer1)); int winPercentageForPlayer1 = (int)((decimal)totalWinsForPlayer1 / (totalGamesForPlayer1) * 100); Assert.That(playerStatistics.WinPercentage, Is.EqualTo(winPercentageForPlayer1)); } }
public void ItOrdersPlayerGameResultsByTheDatePlayedDescending() { using (NemeStatsDbContext dbContext = new NemeStatsDbContext()) { using (IDataContext dataContext = new NemeStatsDataContext(dbContext, securedEntityValidatorFactory)) { int numberOfGamesToRetrieve = 3; INemesisHistoryRetriever nemesisHistoryRetriever = new NemesisHistoryRetriever(dataContext); IPlayerRepository playerRepository = new EntityFrameworkPlayerRepository(dataContext); IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); IPlayerRetriever playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); PlayerDetails playerDetails = playerRetriever.GetPlayerDetails(testPlayer1.Id, numberOfGamesToRetrieve); long lastTicks = long.MaxValue;; Assert.IsTrue(playerDetails.PlayerGameResults.Count == numberOfGamesToRetrieve); foreach (PlayerGameResult result in playerDetails.PlayerGameResults) { Assert.GreaterOrEqual(lastTicks, result.PlayedGame.DatePlayed.Ticks); lastTicks = result.PlayedGame.DatePlayed.Ticks; } } } }
public void ItGetsTheTotalPoints() { using (IDataContext dataContext = new NemeStatsDataContext()) { IPlayerRepository playerRepository = new EntityFrameworkPlayerRepository(dataContext); IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); IPlayerRetriever playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); PlayerStatistics playerStatistics = playerRetriever.GetPlayerStatistics(testPlayer1.Id); int totalBasePoints = 0; int totalGameDurationPoints = 0; int totalWeightBonusPoints = 0; foreach (PlayedGame playedGame in testPlayedGames) { if (playedGame.PlayerGameResults.Any(result => result.PlayerId == testPlayer1.Id)) { var playerGameResult = playedGame.PlayerGameResults.First(result => result.PlayerId == testPlayer1.Id); totalBasePoints += playerGameResult.NemeStatsPointsAwarded; totalGameDurationPoints += playerGameResult.GameDurationBonusPoints; totalWeightBonusPoints += playerGameResult.GameWeightBonusPoints; } } Assert.AreEqual(totalBasePoints, playerStatistics.NemePointsSummary.BaseNemePoints); Assert.AreEqual(totalGameDurationPoints, playerStatistics.NemePointsSummary.GameDurationBonusNemePoints); Assert.AreEqual(totalWeightBonusPoints, playerStatistics.NemePointsSummary.WeightBonusNemePoints); } }
public void TestSetUp() { dataContext = new NemeStatsDataContext(); playerRepository = new EntityFrameworkPlayerRepository(dataContext); playedGameRetriever = new PlayedGameRetriever(dataContext); playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); }
public void ItGetsTheAveragePlayersPerGame() { using (IDataContext dataContext = new NemeStatsDataContext()) { IPlayerRepository playerRepository = new EntityFrameworkPlayerRepository(dataContext); IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); IPlayerRetriever playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); PlayerStatistics playerStatistics = playerRetriever.GetPlayerStatistics(testPlayer1.Id); float averagePlayersPerGame = (float)testPlayedGames.Where(game => game.PlayerGameResults.Any(result => result.PlayerId == testPlayer1.Id)) .Average(game => game.NumberOfPlayers); Assert.AreEqual(averagePlayersPerGame, playerStatistics.AveragePlayersPerGame); } }
public void ItSetsPlayerStatistics() { using (NemeStatsDbContext dbContext = new NemeStatsDbContext()) { using (IDataContext dataContext = new NemeStatsDataContext(dbContext, securedEntityValidatorFactory)) { INemesisHistoryRetriever nemesisHistoryRetriever = new NemesisHistoryRetriever(dataContext); IPlayerRepository playerRepository = new EntityFrameworkPlayerRepository(dataContext); IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); IPlayerRetriever playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); PlayerDetails playerDetails = playerRetriever.GetPlayerDetails(testPlayer1.Id, 1); Assert.NotNull(playerDetails.PlayerStats); } } }
public void ItReturnsZeroesWhenThereAreNoPlayedGames() { using (IDataContext dataContext = new NemeStatsDataContext()) { IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); var playerRetriever = new PlayerRetriever(dataContext, new EntityFrameworkPlayerRepository(dataContext), playedGameRetriever); var statistics = playerRetriever.GetPlayerStatistics(testPlayerWithNoPlayedGames.Id); Assert.That(statistics.TotalGames, Is.EqualTo(0)); Assert.That(statistics.TotalGamesLost, Is.EqualTo(0)); Assert.That(statistics.TotalGamesWon, Is.EqualTo(0)); Assert.That(statistics.NemePointsSummary, Is.EqualTo(new NemePointsSummary(0, 0, 0))); Assert.That(statistics.WinPercentage, Is.EqualTo(0)); Assert.That(statistics.AveragePlayersPerGame, Is.EqualTo(0)); Assert.That(statistics.GameDefinitionTotals.SummariesOfGameDefinitionTotals.Count, Is.EqualTo(0)); } }
public void ItEagerlyFetchesGameDefinitions() { using (NemeStatsDbContext dbContext = new NemeStatsDbContext()) { using (IDataContext dataContext = new NemeStatsDataContext(dbContext, securedEntityValidatorFactory)) { dbContext.Configuration.LazyLoadingEnabled = false; dbContext.Configuration.ProxyCreationEnabled = false; INemesisHistoryRetriever nemesisHistoryRetriever = new NemesisHistoryRetriever(dataContext); IPlayerRepository playerRepository = new EntityFrameworkPlayerRepository(dataContext); IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); IPlayerRetriever playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); PlayerDetails testPlayerDetails = playerRetriever.GetPlayerDetails(testPlayer1.Id, 1); Assert.NotNull(testPlayerDetails.PlayerGameResults.First().PlayedGame.GameDefinition); } } }
public void ItOnlyGetsTheSpecifiedNumberOfRecentGames() { using (NemeStatsDbContext dbContext = new NemeStatsDbContext()) { using (IDataContext dataContext = new NemeStatsDataContext(dbContext, securedEntityValidatorFactory)) { int numberOfGamesToRetrieve = 1; INemesisHistoryRetriever nemesisHistoryRetriever = new NemesisHistoryRetriever(dataContext); IPlayerRepository playerRepository = new EntityFrameworkPlayerRepository(dataContext); IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); IPlayerRetriever playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); PlayerDetails playerDetails = playerRetriever.GetPlayerDetails(testPlayer1.Id, numberOfGamesToRetrieve); Assert.AreEqual(numberOfGamesToRetrieve, playerDetails.PlayerGameResults.Count); } } }
public void ItReturnsTheCorrectStatisticsForAnUndefeatedPlayer() { using (IDataContext dataContext = new NemeStatsDataContext()) { IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); var playerRetriever = new PlayerRetriever(dataContext, new EntityFrameworkPlayerRepository(dataContext), playedGameRetriever); var statistics = playerRetriever.GetPlayerStatistics(testPlayer9UndefeatedWith5Games.Id); Assert.That(statistics.TotalGames, Is.EqualTo(5)); Assert.That(statistics.TotalGamesLost, Is.EqualTo(0)); Assert.That(statistics.TotalGamesWon, Is.EqualTo(5)); Assert.That(statistics.WinPercentage, Is.EqualTo(100)); var summariesOfGameDefinitionTotals = statistics.GameDefinitionTotals.SummariesOfGameDefinitionTotals; Assert.That(summariesOfGameDefinitionTotals.Count, Is.EqualTo(1)); var gameDefinitionTotal = summariesOfGameDefinitionTotals[0]; Assert.That(gameDefinitionTotal.GameDefinitionId, Is.EqualTo(anotherTestGameDefinitionWithOtherGamingGroupId.Id)); } }
public void ItGetsTheTotalPoints() { using (IDataContext dataContext = new NemeStatsDataContext()) { IPlayerRepository playerRepository = new EntityFrameworkPlayerRepository(dataContext); IPlayedGameRetriever playedGameRetriever = new PlayedGameRetriever(dataContext); IPlayerRetriever playerRetriever = new PlayerRetriever(dataContext, playerRepository, playedGameRetriever); PlayerStatistics playerStatistics = playerRetriever.GetPlayerStatistics(testPlayer1.Id); int totalPoints = 0; foreach (PlayedGame playedGame in testPlayedGames) { if (playedGame.PlayerGameResults.Any(result => result.PlayerId == testPlayer1.Id)) { totalPoints += playedGame.PlayerGameResults.First(result => result.PlayerId == testPlayer1.Id).NemeStatsPointsAwarded; } } Assert.AreEqual(totalPoints, playerStatistics.TotalPoints); } }
public PlayerUpdaterService(PlayerRetriever retriever) { _retriever = retriever; }
public void SetUp() { _playerRetriever = GetInstance <PlayerRetriever>(); }