コード例 #1
0
        public void CannotAddMoreThanFourPlayerReferencesToGroup()
        {
            List <string> playerNames = new List <string> {
                "Maru", "Stork", "Taeja", "Rain", "Bomber"
            };

            RegisterPlayers(playerNames);

            DualTournamentGroup    dualTournamentGroup = dualTournamentRound.Groups.First() as DualTournamentGroup;
            List <PlayerReference> playerReferences    = dualTournamentGroup.GetPlayerReferences();

            playerReferences.Single(playerReference => playerReference.Name == playerNames[0]).Should().NotBeNull();
            playerReferences.Single(playerReference => playerReference.Name == playerNames[1]).Should().NotBeNull();
            playerReferences.Single(playerReference => playerReference.Name == playerNames[2]).Should().NotBeNull();
            playerReferences.Single(playerReference => playerReference.Name == playerNames[3]).Should().NotBeNull();
            playerReferences.SingleOrDefault(playerReference => playerReference.Name == playerNames[4]).Should().BeNull();

            dualTournamentGroup.Matches.Should().HaveCount(5);

            dualTournamentGroup.Matches[0].Player1.GetName().Should().NotBeNullOrEmpty();
            dualTournamentGroup.Matches[0].Player2.GetName().Should().NotBeNullOrEmpty();

            dualTournamentGroup.Matches[1].Player1.GetName().Should().NotBeNullOrEmpty();
            dualTournamentGroup.Matches[1].Player2.GetName().Should().NotBeNullOrEmpty();

            dualTournamentGroup.Matches[2].Player1.PlayerReferenceId.Should().BeEmpty();
            dualTournamentGroup.Matches[2].Player2.PlayerReferenceId.Should().BeEmpty();

            dualTournamentGroup.Matches[3].Player1.PlayerReferenceId.Should().BeEmpty();
            dualTournamentGroup.Matches[3].Player2.PlayerReferenceId.Should().BeEmpty();

            dualTournamentGroup.Matches[4].Player1.PlayerReferenceId.Should().BeEmpty();
            dualTournamentGroup.Matches[4].Player2.PlayerReferenceId.Should().BeEmpty();
        }
コード例 #2
0
        public void CanConstructDualTournamentMatchLayout()
        {
            List <string> playerNames = new List <string> {
                "Maru", "Stork", "Taeja", "Rain"
            };

            RegisterPlayers(playerNames);

            DualTournamentGroup dualTournamentGroup = dualTournamentRound.Groups.First() as DualTournamentGroup;

            dualTournamentGroup.Matches.Should().HaveCount(5);

            dualTournamentGroup.Matches[0].Player1.GetName().Should().Be(playerNames[0]);
            dualTournamentGroup.Matches[0].Player2.GetName().Should().Be(playerNames[1]);

            dualTournamentGroup.Matches[1].Player1.GetName().Should().Be(playerNames[2]);
            dualTournamentGroup.Matches[1].Player2.GetName().Should().Be(playerNames[3]);

            dualTournamentGroup.Matches[2].Player1.PlayerReferenceId.Should().BeEmpty();
            dualTournamentGroup.Matches[2].Player2.PlayerReferenceId.Should().BeEmpty();

            dualTournamentGroup.Matches[3].Player1.PlayerReferenceId.Should().BeEmpty();
            dualTournamentGroup.Matches[3].Player2.PlayerReferenceId.Should().BeEmpty();

            dualTournamentGroup.Matches[4].Player1.PlayerReferenceId.Should().BeEmpty();
            dualTournamentGroup.Matches[4].Player2.PlayerReferenceId.Should().BeEmpty();
        }
コード例 #3
0
        public void CanCreateGroup()
        {
            DualTournamentGroup dualTournamenGroup = DualTournamentGroup.Create(dualTournamentRound);

            dualTournamenGroup.Should().NotBeNull();
            dualTournamenGroup.Id.Should().NotBeEmpty();
            dualTournamenGroup.Matches.Should().BeEmpty();
            dualTournamenGroup.RoundId.Should().Be(dualTournamentRound.Id);
            dualTournamenGroup.Round.Should().Be(dualTournamentRound);
        }
コード例 #4
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;
        }
コード例 #5
0
        public void StartDateTimeForMatchesMustBeInMatchOrder()
        {
            DualTournamentGroup dualTournamentGroup = RegisterPlayers(new List <string> {
                "Maru", "Stork", "Taeja", "Rain"
            });

            List <DateTime> dateTimesBeforeChange = new List <DateTime>();

            foreach (Match match in dualTournamentGroup.Matches)
            {
                dateTimesBeforeChange.Add(match.StartDateTime);
            }

            DateTime oneHourLater    = SystemTime.Now.AddHours(1);
            DateTime twoHoursLater   = SystemTime.Now.AddHours(2);
            DateTime threeHoursLater = SystemTime.Now.AddHours(3);
            DateTime fourHoursLater  = SystemTime.Now.AddHours(4);
            DateTime fiveHoursLater  = SystemTime.Now.AddHours(5);

            dualTournamentGroup.Matches[0].SetStartDateTime(twoHoursLater);   // IS GOOD
            dualTournamentGroup.Matches[1].SetStartDateTime(fiveHoursLater);  // IS GOOD
            dualTournamentGroup.Matches[2].SetStartDateTime(fourHoursLater);  // IS BAD
            dualTournamentGroup.Matches[3].SetStartDateTime(threeHoursLater); // IS BAD
            dualTournamentGroup.Matches[4].SetStartDateTime(oneHourLater);    // IS BAD

            dualTournamentGroup.Matches[0].StartDateTime.Should().Be(twoHoursLater);
            dualTournamentGroup.Matches[1].StartDateTime.Should().Be(fiveHoursLater);
            dualTournamentGroup.Matches[2].StartDateTime.Should().Be(fourHoursLater);
            dualTournamentGroup.Matches[3].StartDateTime.Should().Be(threeHoursLater);
            dualTournamentGroup.Matches[4].StartDateTime.Should().Be(oneHourLater);

            tournamentIssueReporter.Issues.Should().HaveCount(3);

            ConfirmIssueIsAsExpected(tournamentIssueReporter.Issues[0], 0, 0, 2);
            ConfirmIssueIsAsExpected(tournamentIssueReporter.Issues[1], 0, 0, 3);
            ConfirmIssueIsAsExpected(tournamentIssueReporter.Issues[2], 0, 0, 4);
        }
コード例 #6
0
ファイル: DualTournamentRound.cs プロジェクト: Gherks/slask
 protected override GroupBase AddGroup()
 {
     return(DualTournamentGroup.Create(this));
 }