Beispiel #1
0
        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>();
        }
Beispiel #2
0
        public void When_LeagueNameIsEmpty_Then_ValidationError()
        {
            var command = new UpdateTeamLeagueMatchLineupEntryCommand
            {
                LeagueName = ""
            };

            var validator = new UpdateTeamLeagueMatchLineupEntryCommandValidator();

            validator.ShouldHaveValidationErrorFor(x => x.LeagueName, command);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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));
        }
Beispiel #8
0
        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!"));
            }
        }