Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
 public GroupBaseTests()
 {
     tournament = Tournament.Create("GSL 2019");
     round      = tournament.AddBracketRound();
     round.SetPlayersPerGroupCount(2);
 }