public void ItRecordsAGamePlayedEvent() { var playerRank = new PlayerRank { GameRank = 1, PlayerId = 1 }; var newlyCompletedGame = new NewlyCompletedGame { GameDefinitionId = gameDefinition.Id, PlayerRanks = new List<PlayerRank> { playerRank } }; var transactionSource = TransactionSource.RestApi; autoMocker.Get<IPointsCalculator>() .Expect(mock => mock.CalculatePoints(null, null)) .IgnoreArguments() .Return(new Dictionary<int, PointsScorecard> { {playerRank.PlayerId, new PointsScorecard()} }); autoMocker.ClassUnderTest.CreatePlayedGame(newlyCompletedGame, transactionSource, currentUser); autoMocker.Get<INemeStatsEventTracker>().AssertWasCalled(mock => mock.TrackPlayedGame(currentUser, transactionSource)); }
public void It_Reconstructs_The_Played_Game_Then_Updates_It() { //--arrange SetupExpectationsForExistingPlayedGame(); int differentGameDefinitionId = _existingGameDefinitionId + 1; var playerRank1 = new PlayerRank { PlayerId = 100, GameRank = 1 }; var playerRank2 = new PlayerRank { PlayerId = 101, GameRank = 1 }; var playerRank3 = new PlayerRank { PlayerId = 100, GameRank = 1 }; var updatedGame = new UpdatedGame { PlayedGameId = _existingPlayedGameId, GameDefinitionId = differentGameDefinitionId, PlayerRanks = new List<PlayerRank> { playerRank1, playerRank2, playerRank3 }, DatePlayed = DateTime.UtcNow }; //--act autoMocker.ClassUnderTest.UpdatePlayedGame(updatedGame, TransactionSource.RestApi, currentUser); //--assert autoMocker.ClassUnderTest.AssertWasCalled( partialMock => partialMock.MakePlayerGameResults(updatedGame, _existingBoardGameGeekGameDefinitionId)); autoMocker.ClassUnderTest.AssertWasCalled( partialMock => partialMock.TransformNewlyCompletedGameIntoPlayedGame(updatedGame, _existingGamingGroupId, currentUser.Id, _expectedNewPlayerGameResults)); var arguments = autoMocker.Get<IDataContext>() .GetArgumentsForCallsMadeOn( x => x.Save(Arg<PlayedGame>.Is.Anything, Arg<ApplicationUser>.Is.Anything)); arguments.ShouldNotBeNull(); arguments.Count.ShouldBe(1); var actualPlayedGame = arguments[0][0] as PlayedGame; actualPlayedGame.ShouldNotBeNull(); actualPlayedGame.DateUpdated.Date.ShouldBe(DateTime.UtcNow.Date); actualPlayedGame.Id.ShouldBe(updatedGame.PlayedGameId); }