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);
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
        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!"));
            }
        }