public void IssueIsReportedWhenStartDateTimeForMatchIsEarlierThanAnyParentMatch() { List <string> playerNames = new List <string>() { "Maru", "Stork", "Taeja", "Rain", "Bomber", "FanTaSy", "Stephano", "Thorzain" }; bracketRound.SetPlayersPerGroupCount(playerNames.Count); foreach (string playerName in playerNames) { tournament.RegisterPlayerReference(playerName); } BracketGroup bracketGroup = bracketRound.Groups.First() as BracketGroup; BracketNode finalNode = bracketGroup.BracketNodeSystem.FinalNode; Match final = finalNode.Match; Match firstSemifinal = finalNode.Children[0].Match; Match secondSemifinal = finalNode.Children[1].Match; DateTime oneHourBeforeFirstSemifinal = firstSemifinal.StartDateTime.AddHours(-1); DateTime oneHourBeforeSecondSemifinal = secondSemifinal.StartDateTime.AddHours(-1); final.SetStartDateTime(oneHourBeforeFirstSemifinal); final.StartDateTime.Should().Be(oneHourBeforeFirstSemifinal); final.SetStartDateTime(oneHourBeforeSecondSemifinal); final.StartDateTime.Should().Be(oneHourBeforeSecondSemifinal); tournamentIssueReporter.Issues.Should().HaveCount(2); }
public void CannotSetPlayersPerGroupSizeToAnythingLessThanTwo() { BracketRound round = tournament.AddBracketRound(); round.Groups.First().Matches.Should().HaveCount(1); round.PlayersPerGroupCount.Should().Be(2); round.SetPlayersPerGroupCount(1); round.SetPlayersPerGroupCount(0); round.SetPlayersPerGroupCount(-1); round.Groups.First().Matches.Should().HaveCount(1); round.PlayersPerGroupCount.Should().Be(2); }
public void IssueIsReportedWhenStartDateTimeForMatchIsSetEarlierThanAnyMatchInPreviousRound() { List <string> playerNames = new List <string>() { "Maru", "Stork", "Taeja", "Rain", "Bomber", "FanTaSy", "Stephano", "Thorzain" }; bracketRound.SetPlayersPerGroupCount(4); BracketRound secondBracketRound = tournament.AddBracketRound() as BracketRound; foreach (string playerName in playerNames) { tournament.RegisterPlayerReference(playerName); } BracketGroup bracketGroup = bracketRound.Groups.First() as BracketGroup; BracketNode finalNodeFromFirstRound = bracketGroup.BracketNodeSystem.FinalNode; BracketGroup bracketGroupFromSecondRound = secondBracketRound.Groups.First() as BracketGroup; BracketNode finalNodeFromSecondRound = bracketGroupFromSecondRound.BracketNodeSystem.FinalNode; Match finalFromFirstRound = finalNodeFromFirstRound.Match; Match finalFromSecondRound = finalNodeFromSecondRound.Match; DateTime oneHourBeforeFinalFromFirstRound = finalFromFirstRound.StartDateTime.AddHours(-1); bool validationResult = MatchStartDateTimeValidator.Validate(finalFromSecondRound, oneHourBeforeFinalFromFirstRound); validationResult.Should().BeTrue(); tournamentIssueReporter.Issues.Should().HaveCount(1); }
public void CanConstructBracketLayoutWithEvenPlayers() { List <string> playerNames = new List <string>() { "Maru", "Stork", "Taeja", "Rain", "Bomber", "FanTaSy", "Stephano", "Thorzain" }; bracketRound.SetPlayersPerGroupCount(playerNames.Count); foreach (string playerName in playerNames) { tournament.RegisterPlayerReference(playerName); } BracketGroup bracketGroup = bracketRound.Groups.First() as BracketGroup; bracketGroup.Matches.Should().HaveCount(playerNames.Count - 1); foreach (Match match in bracketGroup.Matches) { match.Should().NotBeNull(); } bracketGroup.Matches[0].Player1.GetName().Should().Be(playerNames[0]); bracketGroup.Matches[0].Player2.GetName().Should().Be(playerNames[1]); bracketGroup.Matches[1].Player1.GetName().Should().Be(playerNames[2]); bracketGroup.Matches[1].Player2.GetName().Should().Be(playerNames[3]); bracketGroup.Matches[2].Player1.GetName().Should().Be(playerNames[4]); bracketGroup.Matches[2].Player2.GetName().Should().Be(playerNames[5]); bracketGroup.Matches[3].Player1.GetName().Should().Be(playerNames[6]); bracketGroup.Matches[3].Player2.GetName().Should().Be(playerNames[7]); bracketGroup.Matches[4].Player1.PlayerReferenceId.Should().BeEmpty(); bracketGroup.Matches[4].Player2.PlayerReferenceId.Should().BeEmpty(); bracketGroup.Matches[5].Player1.PlayerReferenceId.Should().BeEmpty(); bracketGroup.Matches[5].Player2.PlayerReferenceId.Should().BeEmpty(); bracketGroup.Matches[6].Player1.PlayerReferenceId.Should().BeEmpty(); bracketGroup.Matches[6].Player2.PlayerReferenceId.Should().BeEmpty(); }
public void CannotChangePlayersPerGroupSize() { BracketRound round = tournament.AddBracketRound(); round.Groups.First().Matches.Should().HaveCount(1); round.PlayersPerGroupCount.Should().Be(2); round.SetPlayersPerGroupCount(8); round.Groups.First().Matches.Should().HaveCount(7); round.PlayersPerGroupCount.Should().Be(8); }
public PlayerInBracketGroupTests() { tournament = Tournament.Create("GSL 2019"); round = tournament.AddBracketRound(); round.SetAdvancingPerGroupCount(1); round.SetPlayersPerGroupCount(4); foreach (string playerName in playerNames) { tournament.RegisterPlayerReference(playerName); } group = round.Groups.First() as BracketGroup; match = group.Matches.First(); match.SetBestOf(5); player = match.Player1; }
public void CannotSwitchPlacesOnPlayerReferenceWhenAnyPlayerIsNull() { bracketRound.SetPlayersPerGroupCount(4); PlayerReference maruPlayerReference = tournament.RegisterPlayerReference("Maru"); PlayerReference storkPlayerReference = tournament.RegisterPlayerReference("Stork"); PlayerReference taejaPlayerReference = tournament.RegisterPlayerReference("Taeja"); BracketGroup group = bracketRound.Groups.First() as BracketGroup; Match firstMatch = group.Matches[0]; Match secondMatch = group.Matches[1]; bool result = PlayerSwitcher.SwitchMatchesOn(firstMatch.Player1, secondMatch.Player2); result.Should().BeFalse(); firstMatch.Player1.PlayerReferenceId.Should().Be(maruPlayerReference.Id); firstMatch.Player2.PlayerReferenceId.Should().Be(storkPlayerReference.Id); secondMatch.Player1.PlayerReferenceId.Should().Be(taejaPlayerReference.Id); secondMatch.Player2.PlayerReferenceId.Should().BeEmpty(); }
public GroupBaseTests() { tournament = Tournament.Create("GSL 2019"); round = tournament.AddBracketRound(); round.SetPlayersPerGroupCount(2); }