public void ItSetsNemePointsForEachPlayerGameResult() { var playerOneId = 1; var playerTwoId = 2; var playerOneGameRank = 1; var playerTwoGameRank = 2; var playerRanks = new List <PlayerRank> { new PlayerRank { PlayerId = playerOneId, GameRank = playerOneGameRank }, new PlayerRank { PlayerId = playerTwoId, GameRank = playerTwoGameRank } }; var newlyCompletedPlayedGame = new NewlyCompletedGame { GameDefinitionId = GameDefinition.Id, PlayerRanks = playerRanks }; var playerOneScorecard = new PointsScorecard { BasePoints = 1, GameDurationBonusPoints = 2, GameWeightBonusPoints = 3 }; var playerTwoScorecard = new PointsScorecard { BasePoints = 4, GameDurationBonusPoints = 5, GameWeightBonusPoints = 6 }; var expectedPointsDictionary = new Dictionary <int, PointsScorecard> { { playerOneId, playerOneScorecard }, { playerTwoId, playerTwoScorecard } }; AutoMocker.Get <IPointsCalculator>().Expect(mock => mock.CalculatePoints(playerRanks, null)) .Return(expectedPointsDictionary); //--Act var playerGameResults = AutoMocker.ClassUnderTest.MakePlayerGameResults(newlyCompletedPlayedGame, null, DataContextMock); var playerOne = playerGameResults.First(gameResult => gameResult.PlayerId == playerOneId); Assert.That(playerOne.GameDurationBonusPoints, Is.EqualTo(playerOneScorecard.GameDurationBonusPoints)); Assert.That(playerOne.GameWeightBonusPoints, Is.EqualTo(playerOneScorecard.GameWeightBonusPoints)); Assert.That(playerOne.NemeStatsPointsAwarded, Is.EqualTo(playerOneScorecard.BasePoints)); var playerTwo = playerGameResults.First(gameResult => gameResult.PlayerId == playerTwoId); Assert.That(playerTwo.GameDurationBonusPoints, Is.EqualTo(playerTwoScorecard.GameDurationBonusPoints)); Assert.That(playerTwo.GameWeightBonusPoints, Is.EqualTo(playerTwoScorecard.GameWeightBonusPoints)); Assert.That(playerTwo.NemeStatsPointsAwarded, Is.EqualTo(playerTwoScorecard.BasePoints)); }
public void ItSetsNemePointsForEachPlayerGameResult() { var playerOneId = 1; var playerTwoId = 2; var playerOneGameRank = 1; var playerTwoGameRank = 2; var playerRanks = new List <PlayerRank> { new PlayerRank { PlayerId = playerOneId, GameRank = playerOneGameRank }, new PlayerRank { PlayerId = playerTwoId, GameRank = playerTwoGameRank } }; gameDefinition.BoardGameGeekGameDefinitionId = 11; var newlyCompletedGame = new NewlyCompletedGame { GameDefinitionId = gameDefinition.Id, PlayerRanks = playerRanks }; var expectedBoardGameGeekGameDefinition = new BoardGameGeekGameDefinition(); autoMocker.Get <IDataContext>() .Expect(mock => mock.FindById <BoardGameGeekGameDefinition>(gameDefinition.BoardGameGeekGameDefinitionId)) .Return(expectedBoardGameGeekGameDefinition); var playerOneScorecard = new PointsScorecard { BasePoints = 1, GameDurationBonusPoints = 2, GameWeightBonusPoints = 3 }; var playerTwoScorecard = new PointsScorecard { BasePoints = 4, GameDurationBonusPoints = 5, GameWeightBonusPoints = 6 }; var expectedPointsDictionary = new Dictionary <int, PointsScorecard> { { playerOneId, playerOneScorecard }, { playerTwoId, playerTwoScorecard } }; autoMocker.Get <IPointsCalculator>().Expect(mock => mock.CalculatePoints(playerRanks, expectedBoardGameGeekGameDefinition)) .Return(expectedPointsDictionary); //--Act var playedGame = autoMocker.ClassUnderTest.CreatePlayedGame(newlyCompletedGame, TransactionSource.WebApplication, currentUser); var playerOne = playedGame.PlayerGameResults.First(gameResult => gameResult.PlayerId == playerOneId); Assert.That(playerOne.GameDurationBonusPoints, Is.EqualTo(playerOneScorecard.GameDurationBonusPoints)); Assert.That(playerOne.GameWeightBonusPoints, Is.EqualTo(playerOneScorecard.GameWeightBonusPoints)); Assert.That(playerOne.NemeStatsPointsAwarded, Is.EqualTo(playerOneScorecard.BasePoints)); var playerTwo = playedGame.PlayerGameResults.First(gameResult => gameResult.PlayerId == playerTwoId); Assert.That(playerTwo.GameDurationBonusPoints, Is.EqualTo(playerTwoScorecard.GameDurationBonusPoints)); Assert.That(playerTwo.GameWeightBonusPoints, Is.EqualTo(playerTwoScorecard.GameWeightBonusPoints)); Assert.That(playerTwo.NemeStatsPointsAwarded, Is.EqualTo(playerTwoScorecard.BasePoints)); }