상속: IPlayerRank
예제 #1
0
        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));
        }
예제 #2
0
        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);
        }