public void Given_LeagueDoesNotExist_When_GetTeamLeagueMatchEvents_Then_TeamLeagueNotFoundExceptionIsThrown() { // Arrange var teams = new TeamsBuilder().Build(); var league = new TeamLeagueBuilder() .WithCompetitors(teams) .WithRounds() .WithGoals() .Build(); var leagues = Enumerable.Repeat(league, 1); var contextMock = MockDbContext(leagues.AsQueryable()); var loggerMock = new Mock <ILogger <GetTeamLeagueMatchEventsQueryHandler> >(); var handler = new GetTeamLeagueMatchEventsQueryHandler( contextMock.Object, loggerMock.Object ); // Act var guid = new Guid("00000000-0000-0000-0000-000000000000"); var request = new GetTeamLeagueMatchEventsQuery { LeagueName = "DoesNotExist", MatchGuid = guid, TeamName = "Tottenham Hotspur" }; Func <Task> func = async() => await handler.Handle(request, CancellationToken.None); // Assert func.Should().Throw <TeamLeagueNotFoundException>(); }
public async void Given_GoalsExist_When_GetTeamLeagueMatchEvents_Then_ReturnGoals() { // Arrange var teams = new TeamsBuilder().Build(); var league = new TeamLeagueBuilder() .WithCompetitors(teams) .WithRounds() .WithGoals() .Build(); var leagues = Enumerable.Repeat(league, 1); var contextMock = MockDbContext(leagues.AsQueryable()); var loggerMock = new Mock <ILogger <GetTeamLeagueMatchEventsQueryHandler> >(); var handler = new GetTeamLeagueMatchEventsQueryHandler( contextMock.Object, loggerMock.Object ); // Act var guid = new Guid("00000000-0000-0000-0000-000000000000"); var request = new GetTeamLeagueMatchEventsQuery { LeagueName = "Premier League", MatchGuid = guid, TeamName = "Tottenham Hotspur" }; var result = await handler.Handle(request, CancellationToken.None); // Assert result.Goals.Count().Should().Be(2); result.Goals.ToList().ForEach(e => { var goal = e.Should().BeAssignableTo <IGoalDto>().Subject; int.Parse(goal.Minute).Should().BeInRange(1, 90); }); }
public async Task <MatchEventsDto> GetTeamLeagueMatchEvents(GetTeamLeagueMatchEventsQuery query) { var response = await httpRequestFactory.Get($"{teamLeagueApiUrl}/{query.LeagueName}/matches/{query.MatchGuid}/matchEntries/{query.TeamName}/events"); if (response.IsSuccessStatusCode) { return(response.ContentAsType <MatchEventsDto>()); } return(null); }