Ejemplo n.º 1
0
        public void CanFetchFirstRound()
        {
            tournament.AddBracketRound();
            tournament.AddDualTournamentRound();
            tournament.AddRoundRobinRound();

            tournament.GetFirstRound().Should().Be(bracketRound);
        }
Ejemplo n.º 2
0
        public void CanCreateBracketRound()
        {
            BracketRound round = tournament.AddBracketRound();

            round.Should().NotBeNull();
            round.Id.Should().NotBeEmpty();
            round.Name.Should().Be("Round A");
            round.PlayersPerGroupCount.Should().Be(2);
            round.AdvancingPerGroupCount.Should().Be(1);
            round.Groups.Should().HaveCount(1);
            round.TournamentId.Should().Be(tournament.Id);
            round.Tournament.Should().Be(tournament);
        }
Ejemplo n.º 3
0
        public void AddingEnoughRoundsToUseAllSingleLetterRestartsLetteringWithTwoLetters()
        {
            for (int index = 0; index < 10; ++index)
            {
                tournament.AddBracketRound();
                tournament.AddDualTournamentRound();
                tournament.AddRoundRobinRound();
            }

            tournament.Rounds[26].Name.Should().Be("Round AA");
            tournament.Rounds[27].Name.Should().Be("Round AB");
            tournament.Rounds[28].Name.Should().Be("Round AC");
            tournament.Rounds[29].Name.Should().Be("Round AD");
        }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
 public RoundRobinStartDateTimeTests()
 {
     tournament = Tournament.Create("GSL 2019");
     tournamentIssueReporter = tournament.TournamentIssueReporter;
     roundRobinRound         = tournament.AddRoundRobinRound() as RoundRobinRound;
     tournament.AddBracketRound();
 }
 public DualTournamentStartDateTimeTests()
 {
     tournament = Tournament.Create("GSL 2019");
     tournamentIssueReporter = tournament.TournamentIssueReporter;
     dualTournamentRound     = tournament.AddDualTournamentRound() as DualTournamentRound;
     tournament.AddBracketRound();
 }
Ejemplo n.º 7
0
        public void CanSolveTie()
        {
            PlayerReference maruPlayerReference = tournament.RegisterPlayerReference("Maru");

            round.SetPlayersPerGroupCount(3);
            PlayerReference storkPlayerReference = tournament.RegisterPlayerReference("Stork");

            round.SetAdvancingPerGroupCount(2);
            PlayerReference taejaPlayerReference = tournament.RegisterPlayerReference("Taeja");

            BracketRound bracketRound = tournament.AddBracketRound();

            GroupBase group = round.Groups.First();

            foreach (Match match in round.Groups.First().Matches)
            {
                SystemTimeMocker.SetOneSecondAfter(match.StartDateTime);
                match.Player1.IncreaseScore(2);
            }

            group.HasProblematicTie().Should().BeTrue();
            group.HasSolvedTie().Should().BeFalse();
            group.SolveTieByChoosing(taejaPlayerReference.Id).Should().BeFalse();

            group.HasProblematicTie().Should().BeTrue();
            group.HasSolvedTie().Should().BeFalse();
            group.SolveTieByChoosing(storkPlayerReference.Id).Should().BeTrue();

            group.HasProblematicTie().Should().BeTrue();
            group.HasSolvedTie().Should().BeTrue();

            bracketRound.Groups.First().Matches[0].Player1.GetName().Should().Be("Taeja");
            bracketRound.Groups.First().Matches[0].Player2.GetName().Should().Be("Stork");
        }
Ejemplo n.º 8
0
        public TournamentTests()
        {
            tournament   = Tournament.Create("GSL 2019");
            bracketRound = tournament.AddBracketRound() as BracketRound;

            user   = User.Create("Stålberto");
            better = tournament.AddBetter(user);
        }
Ejemplo n.º 9
0
 public MatchStartDateTimeValidatorTests()
 {
     tournament = Tournament.Create("GSL 2019");
     tournamentIssueReporter = tournament.TournamentIssueReporter;
     bracketRound            = tournament.AddBracketRound() as BracketRound;
     tournament.RegisterPlayerReference(firstPlayerName);
     tournament.RegisterPlayerReference(secondPlayerName);
 }
Ejemplo n.º 10
0
 public MatchTests()
 {
     tournament   = Tournament.Create("GSL 2019");
     bracketRound = tournament.AddBracketRound() as BracketRound;
     tournament.RegisterPlayerReference(firstPlayerName);
     tournament.RegisterPlayerReference(secondPlayerName);
     bracketGroup = bracketRound.Groups.First() as BracketGroup;
     match        = bracketGroup.Matches.First();
 }
Ejemplo n.º 11
0
 public MatchBetTests()
 {
     user       = User.Create("Stålberto");
     tournament = Tournament.Create("GSL 2019");
     round      = tournament.AddBracketRound();
     tournament.RegisterPlayerReference("Maru");
     tournament.RegisterPlayerReference("Stork");
     group = round.Groups.First();
     match = group.Matches.First();
 }
Ejemplo n.º 12
0
        public TournamentIssueReporterTests()
        {
            tournament = Tournament.Create("GSL 2019");
            round      = tournament.AddBracketRound();
            tournament.RegisterPlayerReference("Maru");
            tournament.RegisterPlayerReference("Stork");
            group = round.Groups.First();
            match = group.Matches.First();

            tournamentIssueReporter = new TournamentIssueReporter();
        }
Ejemplo n.º 13
0
        public void MatchMustContainDifferentPlayers()
        {
            Tournament      tournament      = Tournament.Create("GSL 2019");
            BracketRound    bracketRound    = tournament.AddBracketRound() as BracketRound;
            PlayerReference playerReference = tournament.RegisterPlayerReference(firstPlayerName);

            Match match = bracketRound.Groups.First().Matches.First();

            match.AssignPlayerReferencesToPlayers(playerReference.Id, playerReference.Id);

            match.Player1.PlayerReferenceId.Should().Be(playerReference.Id);
            match.Player2.PlayerReferenceId.Should().BeEmpty();
        }
Ejemplo n.º 14
0
        public void GivenTournamentAddsRounds(int tournamentIndex, Table table)
        {
            if (createdTournaments.Count <= tournamentIndex)
            {
                throw new IndexOutOfRangeException("Given tournament index is out of bounds");
            }

            Tournament tournament = createdTournaments[tournamentIndex];

            foreach (TableRow row in table.Rows)
            {
                TestUtilities.ParseRoundTable(row, out ContestTypeEnum contestType, out string name, out int advancingCount, out int playersPerGroupCount);

                if (contestType != ContestTypeEnum.None)
                {
                    RoundBase round = null;

                    if (contestType == ContestTypeEnum.Bracket)
                    {
                        round = tournament.AddBracketRound();
                    }
                    else if (contestType == ContestTypeEnum.DualTournament)
                    {
                        round = tournament.AddDualTournamentRound();
                    }
                    else if (contestType == ContestTypeEnum.RoundRobin)
                    {
                        round = tournament.AddRoundRobinRound();
                    }

                    if (round == null)
                    {
                        return;
                    }

                    round.RenameTo(name);
                    round.SetAdvancingPerGroupCount(advancingCount);
                    round.SetPlayersPerGroupCount(playersPerGroupCount);

                    createdRounds.Add(round);

                    if (round != null)
                    {
                        createdGroups.AddRange(round.Groups);
                    }
                }
            }
        }
Ejemplo n.º 15
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;
        }
Ejemplo n.º 16
0
        public PlayerInDualTournamentGroupTests()
        {
            tournament = Tournament.Create("GSL 2019");
            round      = tournament.AddDualTournamentRound();
            round.SetAdvancingPerGroupCount(2);
            round.SetPlayersPerGroupCount(4);

            // Needed for the tournament flow to make sense, tournament cannot end with a dual tournament group
            tournament.AddBracketRound();

            foreach (string playerName in playerNames)
            {
                tournament.RegisterPlayerReference(playerName);
            }

            tournament.RegisterPlayerReference("Stork");
            group = round.Groups.First() as DualTournamentGroup;
            match = group.Matches.First();
            match.SetBestOf(5);

            player = match.Player1;
        }
Ejemplo n.º 17
0
 public GroupBaseTests()
 {
     tournament = Tournament.Create("GSL 2019");
     round      = tournament.AddBracketRound();
     round.SetPlayersPerGroupCount(2);
 }
Ejemplo n.º 18
0
 public PlayerSwitcherTests()
 {
     tournament   = Tournament.Create("GSL 2019");
     bracketRound = tournament.AddBracketRound() as BracketRound;
 }
Ejemplo n.º 19
0
 public BracketGroupTests()
 {
     tournament   = Tournament.Create("GSL 2019");
     bracketRound = tournament.AddBracketRound() as BracketRound;
 }
Ejemplo n.º 20
0
 public BracketStartDateTimeTests()
 {
     tournament = Tournament.Create("GSL 2019");
     tournamentIssueReporter = tournament.TournamentIssueReporter;
     bracketRound            = tournament.AddBracketRound() as BracketRound;
 }
Ejemplo n.º 21
0
 public BracketRound AddBracketRoundToTournament(Tournament tournament)
 {
     return(tournament.AddBracketRound());
 }