public void IsValid_WhenPlayerIdsAreNotUnique_ShouldBeFalse()
        {
            // arrange
            string playerId        = "player1";
            string currentPlayerId = "player1";
            var    query           = new GetPlayerGamesQuery(playerId, currentPlayerId);
            var    validator       = new GetPlayerGamesQueryValidator();

            // act
            FluentValidation.Results.ValidationResult result = validator.Validate(query);

            // assert
            result.IsValid.ShouldBe(false);
        }
        public async Task Handle_OnRegularInput_ShouldReturnCorrectlyOrderedAndMappedGames()
        {
            // arrange
            string playerId        = "player1";
            string currentPlayerId = "player2";
            var    query           = new GetPlayerGamesQuery(playerId, currentPlayerId);
            var    handler         = new GetPlayerGamesQueryHandler(Context, Mapper);

            // act
            PlayerGamesVM result = await handler.Handle(query, CancellationToken.None);

            // assert
            result.ShouldBeOfType <PlayerGamesVM>();
            result.Games[0].StartDate.ShouldBe(new DateTime(2020, 2, 20).ToString("g"));
        }
        public async Task Handle_WhenResultIsWinAndCurrentUserIsNotCrossPlayer_ShouldReturnDTOWithResultLoss()
        {
            // arrange
            string playerId        = "player1";
            string currentPlayerId = "player2";
            var    query           = new GetPlayerGamesQuery(playerId, currentPlayerId);
            var    handler         = new GetPlayerGamesQueryHandler(Context, Mapper);

            // act
            PlayerGamesVM result = await handler.Handle(query, CancellationToken.None);

            // assert
            result.ShouldBeOfType <PlayerGamesVM>();
            result.Games[1].Result.ShouldBe(Domain.Enums.GameResult.Loss.ToString());
        }
        public async Task Handle_OnRegularInput_ShouldReturnCorrectNumberOfGames()
        {
            // arrange
            string playerId        = "player1";
            string currentPlayerId = "player2";
            var    query           = new GetPlayerGamesQuery(playerId, currentPlayerId);
            var    handler         = new GetPlayerGamesQueryHandler(Context, Mapper);

            // act
            PlayerGamesVM result = await handler.Handle(query, CancellationToken.None);

            // assert
            result.ShouldBeOfType <PlayerGamesVM>();
            result.Games.Count.ShouldBe(4);
        }