public void PreviousRun_AtRun1Player2()
        {
            var tournament = Factory.CreateStartedTournament(playerCount: 2, runsPerContestants: 2);

            tournament.SetRoundCounter(RoundIndividualCounterSet.CreateCounterSetFor(tournament.Rounds.First()));
            tournament.GetRoundCounter().SetValue(1, 1, 2);
            tournament.PreviousRun();

            Assert.AreEqual(1, tournament.GetCurrentRoundContestant().Ordinal);
            Assert.AreEqual(1, tournament.GetCurrentRunNo());
        }
        public void NextRun_1To2_SecondContestantFirstRun()
        {
            var tournament = Factory.CreateStartedTournament(playerCount: 2, runsPerContestants: 2);

            tournament.SetRoundCounter(RoundIndividualCounterSet.CreateCounterSetFor(tournament.Rounds.FirstOrDefault()));

            tournament.NextRun();

            Assert.AreEqual(2, tournament.GetCurrentRoundContestant().Ordinal);
            Assert.AreEqual(1, tournament.GetCurrentRunNo());
        }
        public void NextRun_Plus4TwoPlayersTwoRuns_AtEndOfRound()
        {
            var tournament = Factory.CreateStartedTournament(playerCount: 2, runsPerContestants: 2);

            tournament.SetRoundCounter(RoundIndividualCounterSet.CreateCounterSetFor(tournament.Rounds.First()));
            tournament.GetRoundCounter().SetValue(1, 1, 1);

            Exception occuredException = null;

            tournament.NextRun();
            tournament.NextRun();
            tournament.NextRun();
            try
            {
                tournament.NextRun();
            }
            catch (Exception ex) { occuredException = ex; }
            Assert.IsNotNull(occuredException);
            Assert.AreEqual(2, tournament.GetCurrentRoundContestant().Ordinal);
            Assert.AreEqual(2, tournament.GetCurrentRunNo());
            Assert.AreEqual(TournamentStatus.Running, tournament.Rounds.FirstOrDefault().Status);
            Assert.AreEqual(TournamentStatus.Running, tournament.Status);
        }