public void RRBResetMatches_FiresMatchesModifiedEvent_WithAllAffectedMatches()
        {
            int matchesTouched = 5;

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

            for (int i = 0; i < 7; ++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 <= matchesTouched; ++n)
            {
                b.AddGame(n, 1, 0, PlayerSlot.Defender);
            }

            int affectedMatches = 0;

            b.MatchesModified += delegate(object sender, BracketEventArgs e)
            {
                affectedMatches += e.UpdatedMatches.Count;
            };

            b.ResetMatches();
            Assert.AreEqual(matchesTouched, affectedMatches);
        }
        public void RRBResetMatches_ResetsRankings()
        {
            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);

            for (int n = 1; n <= b.NumberOfMatches; ++n)
            {
                b.AddGame(n, 1, 3, PlayerSlot.Challenger);
            }

            b.ResetMatches();
            bool rankingsReset = true;

            foreach (IPlayerScore score in b.Rankings)
            {
                if (score.Rank != 1 || score.W != 0)
                {
                    rankingsReset = false;
                }
            }
            Assert.IsTrue(rankingsReset);
        }