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);
            });
        }
예제 #3
0
        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);
        }