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>(); }
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!")); } }
public void When_LeagueNameIsEmpty_Then_ValidationError() { var query = new GetPlayerForTeamCompetitorQuery { LeagueName = "" }; var validator = new GetPlayerForTeamCompetitorQueryValidator(); validator.ShouldHaveValidationErrorFor(x => x.LeagueName, query); }
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); }
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); }
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"); }