Example #1
0
        public void When_LeagueNameIsEmpty_Then_ValidationError()
        {
            var query = new AddTeamLeagueMatchGoalCommand
            {
                LeagueName = ""
            };

            var validator = new AddTeamLeagueMatchGoalCommandValidator();

            validator.ShouldHaveValidationErrorFor(x => x.LeagueName, query);
        }
Example #2
0
        public void When_MatchGuidIsEmpty_Then_ValidationError()
        {
            var query = new AddTeamLeagueMatchGoalCommand
            {
                LeagueName = "Premier League",
                MatchGuid  = Guid.Empty
            };

            var validator = new AddTeamLeagueMatchGoalCommandValidator();

            validator.ShouldHaveValidationErrorFor(x => x.MatchGuid, query);
        }
Example #3
0
        public void When_MinuteIsEmpty_Then_ValidationError()
        {
            var query = new AddTeamLeagueMatchGoalCommand
            {
                LeagueName = "Premier League",
                MatchGuid  = Guid.NewGuid(),
                TeamName   = "Tottenham Hotspur",
                Minute     = ""
            };

            var validator = new AddTeamLeagueMatchGoalCommandValidator();

            validator.ShouldHaveValidationErrorFor(x => x.Minute, query);
        }
Example #4
0
        public void When_CommandIsOk_Then_NoValidationErrors()
        {
            var query = new AddTeamLeagueMatchGoalCommand
            {
                LeagueName = "Premier League",
                MatchGuid  = Guid.NewGuid(),
                TeamName   = "Tottenham Hotspur",
                Minute     = "1",
                PlayerName = "John Doe"
            };

            var validator = new AddTeamLeagueMatchGoalCommandValidator();

            validator.ShouldNotHaveValidationErrorFor(x => x.LeagueName, query);
            validator.ShouldNotHaveValidationErrorFor(x => x.MatchGuid, query);
            validator.ShouldNotHaveValidationErrorFor(x => x.TeamName, query);
            validator.ShouldNotHaveValidationErrorFor(x => x.Minute, query);
            validator.ShouldNotHaveValidationErrorFor(x => x.PlayerName, query);
        }
        public async void Given_AllConditionsPass_When_AddTeamLeagueMatchGoal_Then_Success()
        {
            //Arrange
            var builder = new TeamLeagueBuilder()
                          .WithCompetitors(new TeamsBuilder().Build())
                          .WithRounds();

            var teamLeague = builder.Build();
            var players    = new Domain.Player.Player[] { new Domain.Player.Player {
                                                              FirstName = "John", LastName = "Doe"
                                                          } };

            var mockContext = MockDbContext(
                new List <TeamLeague> {
                teamLeague
            }.AsQueryable(),
                teamLeague.Competitors.Select(c => c.Team).AsQueryable(),
                players.AsQueryable());
            var mockLogger = new Mock <ILogger <AddTeamLeagueMatchGoalCommandHandler> >();

            var handler = new AddTeamLeagueMatchGoalCommandHandler(
                mockContext.Object,
                Mapper.MapperConfig(),
                mockLogger.Object
                );

            //Act
            var command = new AddTeamLeagueMatchGoalCommand
            {
                LeagueName = "Premier League",
                MatchGuid  = new Guid("00000000-0000-0000-0000-000000000000"),
                TeamName   = "Tottenham Hotspur",
                Minute     = "1",
                PlayerName = "John Doe"
            };
            var result = await handler.Handle(command, CancellationToken.None);

            //Assert
            result.Should().BeAssignableTo <GoalDto>();
            mockContext.Verify(mock => mock.SaveChangesAsync(It.IsAny <CancellationToken>()), Times.Once());
        }
        public void Given_LeagueDoesNotExist_When_AddTeamLeagueMatchGoal_Then_TeamLeagueNotFoundExceptionIsThrown()
        {
            //Arrange
            var builder = new TeamLeagueBuilder()
                          .WithCompetitors(new TeamsBuilder().Build())
                          .WithRounds();

            var teamLeague = builder.Build();
            var players    = new Domain.Player.Player[] { new Domain.Player.Player {
                                                              FirstName = "John", LastName = "Doe"
                                                          } };

            var mockContext = MockDbContext(
                new List <TeamLeague> {
                teamLeague
            }.AsQueryable(),
                teamLeague.Competitors.Select(c => c.Team).AsQueryable(),
                players.AsQueryable());
            var mockLogger = new Mock <ILogger <AddTeamLeagueMatchGoalCommandHandler> >();

            var handler = new AddTeamLeagueMatchGoalCommandHandler(
                mockContext.Object,
                Mapper.MapperConfig(),
                mockLogger.Object
                );

            //Act
            var command = new AddTeamLeagueMatchGoalCommand
            {
                LeagueName = "DoesNotExist",
                MatchGuid  = new Guid("00000000-0000-0000-0000-000000000000"),
                TeamName   = "Tottenham Hotspur",
                Minute     = "1",
                PlayerName = "John Doe"
            };
            Func <Task> func = async() => await handler.Handle(command, CancellationToken.None);

            //Assert
            func.Should().Throw <TeamLeagueNotFoundException>();
        }