public void Given_TeamLeagueDoesNotExist_When_AddPlayerToTeamCompetitor_Then_Exception() { // Arrange var builder = new TeamLeagueBuilder() .WithCompetitors(new TeamsBuilder().Build()); var teamLeague = builder.Build(); var players = new Domain.Player.Player[] { new Domain.Player.Player { FirstName = "John", LastName = "Doe" } }; var contextMock = MockDbContext( new List <TeamLeague> { teamLeague }.AsQueryable(), players.AsQueryable()); var handler = new AddPlayerToTeamCompetitorCommandHandler(contextMock.Object); //Act var command = new AddPlayerToTeamCompetitorCommand { LeagueName = "DoesNotExist", TeamName = "Tottenham Hotspur", PlayerNumber = "1", PlayerName = "John Doe" }; Func <Task> func = async() => await handler.Handle(command, CancellationToken.None); //Assert func.Should().Throw <TeamLeagueNotFoundException>(); }
public async void Given_AllConditionsPass_When_AddPlayerToTeamCompetitor_Then_Success() { // Arrange var builder = new TeamLeagueBuilder() .WithCompetitors(new TeamsBuilder().Build()); var teamLeague = builder.Build(); var players = new Domain.Player.Player[] { new Domain.Player.Player { FirstName = "John", LastName = "Doe" } }; var contextMock = MockDbContext( new List <TeamLeague> { teamLeague }.AsQueryable(), players.AsQueryable()); var handler = new AddPlayerToTeamCompetitorCommandHandler(contextMock.Object); //Act var command = new AddPlayerToTeamCompetitorCommand { LeagueName = "Premier League", TeamName = "Tottenham Hotspur", PlayerNumber = "1", PlayerName = "John Doe" }; var result = await handler.Handle(command, CancellationToken.None); //Assert result.Should().Be(Unit.Value); contextMock.Verify(mock => mock.SaveChangesAsync(It.IsAny <CancellationToken>()), Times.Once()); }
public void When_LeagueNameIsEmpty_Then_ValidationError() { var command = new AddPlayerToTeamCompetitorCommand { LeagueName = "" }; var validator = new AddPlayerToTeamCompetitorCommandValidator(); validator.ShouldHaveValidationErrorFor(x => x.LeagueName, command); }
public void When_PlayerNameIsEmpty_Then_ValidationError() { var command = new AddPlayerToTeamCompetitorCommand { LeagueName = "Premier League", TeamName = "Tottenham Hotspur", PlayerName = "" }; var validator = new AddPlayerToTeamCompetitorCommandValidator(); validator.ShouldHaveValidationErrorFor(x => x.PlayerName, command); }
public async Task <IActionResult> AddPlayerToTeamCompetitor(string leagueName, AddPlayerToTeamCompetitorCommand command) { try { await mediator.Send(command); return(Created($"/teamLeague/{leagueName}/competitor/{command.TeamName}/player/{command.PlayerName}", command)); } catch (TeamLeagueNotFoundException ex) { return(BadRequest(ex.Message)); } catch (TeamNotFoundException ex) { return(BadRequest(ex.Message)); } catch (PlayerNotFoundException ex) { return(BadRequest(ex.Message)); } catch (Exception) { return(BadRequest("Something went wrong!")); } }