public void Given_LeagueDoesNotExist_When_UpdateTeamLeagueMatchLineupEntry_Then_LineupEntryNotFoundExceptionIsThrown() { // Arrange var builder = new TeamLeagueBuilder() .WithCompetitors(new TeamsBuilder().Build()) .WithRounds(); var teamLeague = builder.Build(); var players = new PlayerBuilder().Build(); var contextMock = MockDbContext( Enumerable.Repeat(teamLeague, 1).AsQueryable(), players.AsQueryable() ); var handler = new UpdateTeamLeagueMatchLineupEntryCommandHandler( contextMock.Object, Mapper.MapperConfig() ); //Act var request = new UpdateTeamLeagueMatchLineupEntryCommand { LeagueName = "DoesNotExist", MatchGuid = new Guid("00000000-0000-0000-0000-000000000000"), TeamName = "Tottenham Hotspur", LineupEntryGuid = new Guid("00000000-0000-0000-0000-000000000000"), PlayerName = "John Doe", PlayerNumber = "1" }; Func <Task> func = async() => await handler.Handle(request, CancellationToken.None); //Assert func.Should().Throw <LineupEntryNotFoundException>(); }
public void When_LeagueNameIsEmpty_Then_ValidationError() { var command = new UpdateTeamLeagueMatchLineupEntryCommand { LeagueName = "" }; var validator = new UpdateTeamLeagueMatchLineupEntryCommandValidator(); validator.ShouldHaveValidationErrorFor(x => x.LeagueName, command); }
public void When_MatchGuidIsEmpty_Then_ValidationError() { var command = new UpdateTeamLeagueMatchLineupEntryCommand { LeagueName = "Premier League", MatchGuid = Guid.Empty }; var validator = new UpdateTeamLeagueMatchLineupEntryCommandValidator(); validator.ShouldHaveValidationErrorFor(x => x.MatchGuid, command); }
public void When_LineupEntryGuidIsEmpty_Then_ValidationError() { var command = new UpdateTeamLeagueMatchLineupEntryCommand { LeagueName = "Premier League", MatchGuid = Guid.NewGuid(), TeamName = "Tottenham Hotspur", LineupEntryGuid = Guid.Empty }; var validator = new UpdateTeamLeagueMatchLineupEntryCommandValidator(); validator.ShouldHaveValidationErrorFor(x => x.LineupEntryGuid, command); }
public void When_CommandIsOk_Then_NoValidationErrors() { var command = new UpdateTeamLeagueMatchLineupEntryCommand { LeagueName = "Premier League", MatchGuid = Guid.NewGuid(), TeamName = "Tottenham Hotspur", LineupEntryGuid = Guid.NewGuid(), PlayerNumber = "1", PlayerName = "John Doe" }; var validator = new UpdateTeamLeagueMatchLineupEntryCommandValidator(); validator.ShouldNotHaveValidationErrorFor(x => x.LeagueName, command); validator.ShouldNotHaveValidationErrorFor(x => x.MatchGuid, command); validator.ShouldNotHaveValidationErrorFor(x => x.TeamName, command); validator.ShouldNotHaveValidationErrorFor(x => x.LineupEntryGuid, command); validator.ShouldNotHaveValidationErrorFor(x => x.PlayerNumber, command); validator.ShouldNotHaveValidationErrorFor(x => x.PlayerName, command); }
public async void Given_EntryDoesExist_When_UpdateTeamLeagueMatchLineupEntry_Then_EntryIsUpdated() { // Arrange var builder = new TeamLeagueBuilder() .WithCompetitors(new TeamsBuilder().Build()) .WithRounds(); var teamLeague = builder.Build(); var players = new PlayerBuilder().Build(); var contextMock = MockDbContext( Enumerable.Repeat(teamLeague, 1).AsQueryable(), players.AsQueryable() ); var handler = new UpdateTeamLeagueMatchLineupEntryCommandHandler( contextMock.Object, Mapper.MapperConfig() ); //Act var request = new UpdateTeamLeagueMatchLineupEntryCommand { LeagueName = "Premier League", MatchGuid = new Guid("00000000-0000-0000-0000-000000000000"), TeamName = "Tottenham Hotspur", LineupEntryGuid = new Guid("00000000-0000-0000-0000-000000000000"), PlayerName = "John Doe", PlayerNumber = "1" }; var result = await handler.Handle(request, CancellationToken.None); //Assert result.Should().BeOfType <LineupEntryDto>(); contextMock.Verify(mock => mock.SaveChangesAsync(It.IsAny <CancellationToken>()), Times.Once()); result.Player.FirstName.Should().Be("John"); result.Player.LastName.Should().Be("Doe"); result.PlayerNumber.Should().Be("1"); }
public async Task <IActionResult> UpdateMatchLineupEntry(string leagueName, Guid matchGuid, string teamName, Guid lineupEntryGuid, UpdateTeamLeagueMatchLineupEntryCommand command) { command.LeagueName = WebUtility.HtmlDecode(leagueName); command.MatchGuid = matchGuid; command.TeamName = teamName; command.LineupEntryGuid = lineupEntryGuid; var lineupEntry = await competitionApi.UpdateTeamLeagueMatchLineupEntry(command); return(PartialView("ViewMatchLineupEntry", lineupEntry)); }
public async Task <IActionResult> UpdateTeamLeagueMatchLineupEntry(string leagueName, Guid matchGuid, string teamName, Guid lineupEntryGuid, [FromBody] UpdateTeamLeagueMatchLineupEntryCommand command) { try { var match = await mediator.Send(command); return(Ok(match)); } catch (LeagueManagerException ex) { return(BadRequest(ex.Message)); } catch (Exception) { return(BadRequest("Something went wrong!")); } }