Пример #1
0
        public void Given_LeagueDoesNotExist_When_GetPlayerForTeamCompetitor_Then_ExceptionIsThrown()
        {
            // Arrange
            var teams   = new TeamsBuilder().Build();
            var players = new PlayerBuilder().Build();
            var builder = new TeamLeagueBuilder()
                          .WithCompetitors(teams)
                          .WithPlayers(teams[0], players);

            var teamLeague = builder.Build();

            var contextMock = MockDbContext(
                new List <TeamLeague> {
                teamLeague
            }.AsQueryable(),
                teamLeague.Competitors.Select(c => c.Team).AsQueryable()
                );
            var handler = new GetPlayerForTeamCompetitorQueryHandler(
                contextMock.Object,
                Mapper.MapperConfig());

            //Act
            var command = new GetPlayerForTeamCompetitorQuery
            {
                LeagueName = "DoesNotExist",
                TeamName   = "Tottenham Hotspur",
                PlayerName = "John Doe"
            };
            Func <Task> func = async() => await handler.Handle(command, CancellationToken.None);

            //Assert
            func.Should().Throw <TeamLeagueNotFoundException>();
        }
Пример #2
0
        public async Task <IActionResult> GetPlayerForTeamCompetitor(string leagueName, string teamName, string playerName)
        {
            try
            {
                var request = new GetPlayerForTeamCompetitorQuery
                {
                    LeagueName = leagueName,
                    TeamName   = teamName,
                    PlayerName = playerName
                };
                var player = await mediator.Send(request);

                return(Ok(player));
            }
            catch (TeamLeagueNotFoundException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (TeamNotFoundException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch
            {
                return(BadRequest("Something went wrong!"));
            }
        }
Пример #3
0
        public void When_LeagueNameIsEmpty_Then_ValidationError()
        {
            var query = new GetPlayerForTeamCompetitorQuery
            {
                LeagueName = ""
            };

            var validator = new GetPlayerForTeamCompetitorQueryValidator();

            validator.ShouldHaveValidationErrorFor(x => x.LeagueName, query);
        }
Пример #4
0
        public void When_PlayerNameIsEmpty_Then_ValidationError()
        {
            var query = new GetPlayerForTeamCompetitorQuery
            {
                LeagueName = "Premier League",
                TeamName   = "Tottenham Hotspur",
                PlayerName = ""
            };

            var validator = new GetPlayerForTeamCompetitorQueryValidator();

            validator.ShouldHaveValidationErrorFor(x => x.PlayerName, query);
        }
Пример #5
0
        public void When_QueryIsOk_Then_NoValidationError()
        {
            var query = new GetPlayerForTeamCompetitorQuery
            {
                LeagueName = "Premier League",
                TeamName   = "Tottenham Hotspur",
                PlayerName = "John Doe"
            };

            var validator = new GetPlayerForTeamCompetitorQueryValidator();

            validator.ShouldNotHaveValidationErrorFor(x => x.LeagueName, query);
            validator.ShouldNotHaveValidationErrorFor(x => x.TeamName, query);
            validator.ShouldNotHaveValidationErrorFor(x => x.PlayerName, query);
        }
Пример #6
0
        public async void Given_TeamHasPlayer_When_GetPlayerForTeamCompetitor_Then_ReturnPlayer()
        {
            // Arrange
            var teams   = new TeamsBuilder().Build();
            var players = new PlayerBuilder().Build();
            var builder = new TeamLeagueBuilder()
                          .WithCompetitors(teams)
                          .WithPlayers(teams[0], players);

            var teamLeague = builder.Build();

            var contextMock = MockDbContext(
                new List <TeamLeague> {
                teamLeague
            }.AsQueryable(),
                teamLeague.Competitors.Select(c => c.Team).AsQueryable()
                );
            var handler = new GetPlayerForTeamCompetitorQueryHandler(
                contextMock.Object,
                Mapper.MapperConfig());

            //Act
            var command = new GetPlayerForTeamCompetitorQuery
            {
                LeagueName = "Premier League",
                TeamName   = "Tottenham Hotspur",
                PlayerName = "John Doe"
            };
            var result = await handler.Handle(command, CancellationToken.None);

            //Assert
            result.Should().BeOfType <CompetitorPlayerDto>();
            result.Player.Should().NotBeNull();
            result.Player.FirstName.Should().Be("John");
            result.Player.LastName.Should().Be("Doe");
            result.Number.Should().Be("1");
        }