using System; using NUnit.Framework; using PokerTournamentManager.Framework.Exceptions; namespace PokerTournamentManager.Framework.Tests { [TestFixture] public class TournamentTests { #region RegisterPlayer [Test] public void RegisterPlayer() { RegisterPlayer(new Player(), CreateTournament()); } [Test] [ExpectedException(typeof(ArgumentNullException))] public void RegisterNullPlayer() { RegisterPlayer(null, CreateTournament()); } [Test] [ExpectedException(typeof(DuplicatePlayerException))] public void RegisterAlreadyRegisteredPlayer() { Tournament tourney = CreateTournament(); Player player = new Player(); RegisterPlayer(player, ref tourney); RegisterPlayer(player, ref tourney); } private static void RegisterPlayer(Player player, Tournament tourney) { RegisterPlayer(player, ref tourney); } private static void RegisterPlayer(Player player, ref Tournament tourney) { Money initialPrizePool = tourney.PrizePool; Money expectedPrizePool = initialPrizePool + tourney.Settings.BuyInAmount; Assert.AreEqual(tourney.Settings.StartingChipsAmount, tourney.Register(player)); Assert.Contains(player, tourney.Players); Assert.AreEqual(expectedPrizePool, tourney.PrizePool); } #endregion private static Tournament CreateTournament() { return Managers.TournamentManager.CreateTournament(); } } }