public async Task <IActionResult> AddMatch(SoloTeamMatchDto matchDto) { var soloTeamPlayers = new List <SoloTeamPlayer>(); foreach (var playerDto in matchDto.Players) { var player = await GetOrCreatePlayer(playerDto.Name); soloTeamPlayers.Add(new SoloTeamPlayer { Team = playerDto.Team, Player = player }); } var match = new SoloTeamMatch() { EndTime = matchDto.EndTime, StartTime = matchDto.StartTime, HomeTeamScore = matchDto.Team1Score, AwayTeamScore = matchDto.Team2Score, Players = soloTeamPlayers }; var result = await _matchService.AddMatchAsync <SoloTeamMatch>(match); return(Ok(result)); }
public void SoloTeamMatchDtoValidator_PlayerNamesMustBeUnique() { var input = new SoloTeamMatchDto() { StartTime = _validStartDate, EndTime = _validEndDate, Team1Score = 0, Team2Score = 1, Players = new List <SoloTeamPlayerDto>() { new SoloTeamPlayerDto() { Name = "same", Team = TeamSide.Away }, new SoloTeamPlayerDto { Name = "same", Team = TeamSide.Home } } }; var sut = new SoloTeamMatchDtoValidator(); var actual = sut.Validate(input); Assert.False(actual.IsValid); }
public void SoloTeamMatchDtoValidator_PlayerNameTooLong_IsNotValid() { var input = new SoloTeamMatchDto() { StartTime = _validStartDate, EndTime = _validEndDate, Team1Score = 0, Team2Score = 1, Players = new List <SoloTeamPlayerDto>() { new SoloTeamPlayerDto { Name = "Valid", Team = TeamSide.Home }, new SoloTeamPlayerDto { Name = "Valid2", Team = TeamSide.Home }, new SoloTeamPlayerDto { Name = "Toolongplayername", Team = TeamSide.Away } } }; var sut = new SoloTeamMatchDtoValidator(); var actual = sut.Validate(input); Assert.False(actual.IsValid); }
public void SoloTeamMatchDtoValidator_TooManyPlayers_IsNotValid() { var input = new SoloTeamMatchDto() { StartTime = _validStartDate, EndTime = _validEndDate, Team1Score = 0, Team2Score = 1, Players = Enumerable.Range(0, 20).Select(x => new SoloTeamPlayerDto() { Name = x.ToString(), Team = TeamSide.Away }).ToList() }; var sut = new SoloTeamMatchDtoValidator(); var actual = sut.Validate(input); Assert.False(actual.IsValid); }
public void SoloTeamMatchDtoValidator_NoOpposingTeam_IsNotValid() { var input = new SoloTeamMatchDto() { StartTime = _validStartDate, EndTime = _validEndDate, Team1Score = 0, Team2Score = 1, Players = new List <SoloTeamPlayerDto>() { new SoloTeamPlayerDto { Name = "Player", Team = TeamSide.Away } } }; var sut = new SoloTeamMatchDtoValidator(); var actual = sut.Validate(input); Assert.False(actual.IsValid); }