public void When_LeagueNameIsEmpty_Then_ValidationError() { var command = new UpdateTeamLeagueMatchScoreCommand { LeagueName = "", MatchEntries = new List <TeamMatchEntryRequestDto>() { new TeamMatchEntryRequestDto() } }; var validator = new UpdateTeamLeagueMatchScoreCommandValidator(); validator.ShouldHaveValidationErrorFor(x => x.LeagueName, command); }
public void When_MatchEntriesIsEmpty_Then_ValidationError() { var command = new UpdateTeamLeagueMatchScoreCommand { LeagueName = "Premier League", Guid = Guid.NewGuid(), MatchEntries = new List <TeamMatchEntryRequestDto>() { null } }; var validator = new UpdateTeamLeagueMatchScoreCommandValidator(); validator.ShouldHaveValidationErrorFor(x => x.MatchEntries, command); }
public void When_CommandIsOk_Then_NoValidationErrors() { var command = new UpdateTeamLeagueMatchScoreCommand { LeagueName = "Premier League", Guid = Guid.NewGuid(), MatchEntries = new List <TeamMatchEntryRequestDto>() { new TeamMatchEntryRequestDto() } }; var validator = new UpdateTeamLeagueMatchScoreCommandValidator(); validator.ShouldNotHaveValidationErrorFor(x => x.LeagueName, command); validator.ShouldNotHaveValidationErrorFor(x => x.Guid, command); validator.ShouldNotHaveValidationErrorFor(x => x.MatchEntries, command); }
public void Given_LeagueDoesNotExist_When_UpdateTeamLeagueMatchScore_Then_ThrowTeamLeagueNotFoundException() { //Arrange var teams = new TeamsBuilder().Build(); var league = new TeamLeagueBuilder() .WithCompetitors(teams) .WithRounds() .Build(); var contextMock = MockDbContext(Enumerable.Repeat(league, 1).AsQueryable()); var handler = new UpdateTeamLeagueMatchScoreCommandHandler( contextMock.Object, Mapper.CreateMapper() ); //Act var request = new UpdateTeamLeagueMatchScoreCommand { LeagueName = "DoesNotExist", Guid = new Guid("00000000-0000-0000-0000-000000000000"), MatchEntries = new List <TeamMatchEntryRequestDto> { new TeamMatchEntryRequestDto { Team = "Tottenham Hotspur", Score = 1, } , new TeamMatchEntryRequestDto { Team = "Manchester City", Score = 1 } } }; Func <Task> func = async() => await handler.Handle(request, CancellationToken.None); //Assert func.Should().Throw <TeamLeagueNotFoundException>(); contextMock.Verify(mock => mock.SaveChangesAsync(It.IsAny <CancellationToken>()), Times.Never()); }
public async void Given_MatchDoesExist_When_UpdateTeamLeagueMatchScore_Then_ScoreIsUpdated() { //Arrange var teams = new TeamsBuilder().Build(); var league = new TeamLeagueBuilder() .WithCompetitors(teams) .WithRounds() .Build(); var contextMock = MockDbContext(Enumerable.Repeat(league, 1).AsQueryable()); var handler = new UpdateTeamLeagueMatchScoreCommandHandler( contextMock.Object, Mapper.CreateMapper() ); //Act var request = new UpdateTeamLeagueMatchScoreCommand { LeagueName = "Premier League", Guid = new Guid("00000000-0000-0000-0000-000000000000"), MatchEntries = new List <TeamMatchEntryRequestDto> { new TeamMatchEntryRequestDto { Team = "Tottenham Hotspur", Score = 1, } , new TeamMatchEntryRequestDto { Team = "Manchester City", Score = 1 } } }; var result = await handler.Handle(request, CancellationToken.None); //Assert contextMock.Verify(mock => mock.SaveChangesAsync(It.IsAny <CancellationToken>()), Times.Once()); }
public async Task <IActionResult> UpdateTeamLeagueMatchScore(string leagueName, Guid guid, [FromBody] UpdateTeamLeagueMatchScoreCommand command) { try { command.LeagueName = leagueName; command.Guid = guid; var match = await mediator.Send(command); return(Ok(match)); } catch (MatchNotFoundException ex) { return(BadRequest(ex.Message)); } catch (TeamNotFoundException ex) { return(BadRequest(ex.Message)); } catch { return(BadRequest("Something went wrong!")); } }