public void RRBGenerateTiebreakers_FiresRoundAddedEvent()
        {
            bool roundAdded = false;

            List <IPlayer> pList = new List <IPlayer>();

            for (int i = 0; i < 4; ++i)
            {
                Mock <IPlayer> moq = new Mock <IPlayer>();
                moq.Setup(p => p.Id).Returns(i + 1);
                pList.Add(moq.Object);
            }
            IBracket b = new RoundRobinBracket(pList);

            b.RoundAdded += delegate
            {
                roundAdded = true;
            };
            for (int n = 1; n <= b.NumberOfMatches; ++n)
            {
                b.SetMatchWinner(n, PlayerSlot.Defender);
            }

            b.GenerateTiebreakers();
            Assert.IsTrue(roundAdded);
        }
        public void RRBSetMatchWinner_FinishesMatch()
        {
            List <IPlayer> pList = new List <IPlayer>();

            for (int i = 0; i < 9; ++i)
            {
                Mock <IPlayer> moq = new Mock <IPlayer>();
                moq.Setup(p => p.Id).Returns(i + 1);
                pList.Add(moq.Object);
            }
            IBracket b = new RoundRobinBracket(pList, 5);

            b.SetMatchWinner(1, PlayerSlot.Challenger);
            Assert.IsTrue(b.GetMatch(1).IsFinished);
        }
        public void RRBResetScore_RemovesRankingsWin_FromManualMatchWinner()
        {
            List <IPlayer> pList = new List <IPlayer>();

            for (int i = 0; i < 9; ++i)
            {
                Mock <IPlayer> moq = new Mock <IPlayer>();
                moq.Setup(p => p.Id).Returns(i + 1);
                pList.Add(moq.Object);
            }
            IBracket b = new RoundRobinBracket(pList, 5);

            b.AddGame(1, 1, 4, PlayerSlot.Challenger);
            b.SetMatchWinner(1, PlayerSlot.Challenger);
            b.ResetMatchScore(1);
            Assert.AreEqual(0, b.Rankings[0].Wins);
        }
        public void RRBSetMatchWinner_AddsWinValueToRankings()
        {
            List <IPlayer> pList = new List <IPlayer>();

            for (int i = 0; i < 9; ++i)
            {
                Mock <IPlayer> moq = new Mock <IPlayer>();
                moq.Setup(p => p.Id).Returns(i + 1);
                pList.Add(moq.Object);
            }
            IBracket b = new RoundRobinBracket(pList, 5);

            b.SetMatchWinner(1, PlayerSlot.Challenger);
            int rIndex = b.Rankings.FindIndex(r => r.Id == b.GetMatch(1).Players[(int)PlayerSlot.Challenger].Id);

            Assert.AreEqual(1, b.Rankings[rIndex].Wins);
        }
        public void RRBGenerateTiebreakers_ReturnsTrueWhenGenerating()
        {
            List <IPlayer> pList = new List <IPlayer>();

            for (int i = 0; i < 4; ++i)
            {
                Mock <IPlayer> moq = new Mock <IPlayer>();
                moq.Setup(p => p.Id).Returns(i + 1);
                pList.Add(moq.Object);
            }
            IBracket b = new RoundRobinBracket(pList);

            for (int n = 1; n <= b.NumberOfMatches; ++n)
            {
                b.SetMatchWinner(n, PlayerSlot.Defender);
            }

            Assert.IsTrue(b.GenerateTiebreakers());
        }
        public void RRBCheckForTies_ReturnsFalseIfNoTies()
        {
            List <IPlayer> pList = new List <IPlayer>();

            for (int i = 0; i < 2; ++i)
            {
                Mock <IPlayer> moq = new Mock <IPlayer>();
                moq.Setup(p => p.Id).Returns(i + 1);
                pList.Add(moq.Object);
            }
            IBracket b = new RoundRobinBracket(pList);

            for (int n = 1; n <= b.NumberOfMatches; ++n)
            {
                b.SetMatchWinner(n, PlayerSlot.Defender);
            }

            Assert.IsFalse(b.CheckForTies());
        }