Ejemplo n.º 1
0
        public void RemovingPlayerNoPlayersDoesNotThrow()
        {
            var table  = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));
            var player = new Models.Player("name", "key", 1000);

            table.RemovePlayer(player);
        }
Ejemplo n.º 2
0
        public void StakeInfoCorrect()
        {
            var table = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));

            Assert.AreEqual(1, table.StakeInfo.SmallBlind, "Unexpected small blind value.");
            Assert.AreEqual(2, table.StakeInfo.BigBlind, "Unexpected big blind value.");
        }
Ejemplo n.º 3
0
        public void AddingPlayerTakesStakeMoney()
        {
            var table  = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));
            var player = new Models.Player("name", "key", 1000);

            table.AddPlayer(player);

            Assert.AreEqual(player.Cash, 800, "Unexpected amount of cash assigned to player.");
        }
Ejemplo n.º 4
0
        public void RemovingNonSeatedPlayerDoesNotThrow()
        {
            var table        = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));
            var seatedPlayer = new Models.Player("seated", "key", 1000);

            table.AddPlayer(seatedPlayer);

            var player = new Models.Player("name", "key", 1000);

            table.RemovePlayer(player);
        }
Ejemplo n.º 5
0
        public void RemovingPlayerReturnsMoney()
        {
            var table        = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));
            var seatedPlayer = new Models.Player("seated", "key", 1000);

            table.AddPlayer(seatedPlayer);
            Assert.AreEqual(800, seatedPlayer.Cash, "Unexpected cash value on player after seating.");

            table.RemovePlayer(seatedPlayer);
            Assert.AreEqual(1000, seatedPlayer.Cash, "Upon leaving the table, the players cash value is incorrect.");
        }
Ejemplo n.º 6
0
        public void CanRemovePlayerAtCapacity()
        {
            var table        = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));
            var seatedPlayer = new Models.Player("seated", "key", 1000);

            for (int i = 0; i < 5; i++)
            {
                table.AddPlayer(new Models.Player(i.ToString(), "key", 1000));
            }

            table.RemovePlayer(seatedPlayer);
        }
Ejemplo n.º 7
0
        public void RemovingNonSeatedPlayerDoesntReturnMoney()
        {
            var table        = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));
            var seatedPlayer = new Models.Player("seated", "key", 1000);

            table.AddPlayer(seatedPlayer);

            var player = new Models.Player("name", "key", 1000);

            table.RemovePlayer(player);

            Assert.AreEqual(1000, player.Cash, "The un-seated players cash value changed.");
        }
Ejemplo n.º 8
0
        public void TableCapacityWithPlayers()
        {
            uint playerCapacity = 6;
            var  table          = new GameLogic.Table(playerCapacity, new GameLogic.StakeInfo(1, 2));

            for (int i = 0; i < playerCapacity - 1; i++)
            {
                var player = new Models.Player(i.ToString(), "key", 0);
                table.AddPlayer(player);
            }

            Assert.AreEqual(1, table.RemainingSeats, "There should be a seat remaining at the table.");
        }
Ejemplo n.º 9
0
        public void CannotAddDuplicatePlayer()
        {
            var table  = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));
            var player = new Models.Player("name", "key", 1000);

            table.AddPlayer(player);

            try
            {
                table.AddPlayer(player);
            }
            catch (InvalidOperationException)
            {
                return;
            }

            Assert.Fail("An already seated player cannot be added to the table again.");
        }
Ejemplo n.º 10
0
        public void FailureToAddAPlayerDoesNotTakeStake()
        {
            uint tableCapacity = 6;
            var  table         = new GameLogic.Table(tableCapacity, new GameLogic.StakeInfo(1, 2));

            for (int i = 0; i < tableCapacity; i++)
            {
                table.AddPlayer(new Models.Player(i.ToString(), "key", 0));
            }

            var extraPlayer = new Models.Player("name", "key", 1000);

            try
            {
                table.AddPlayer(extraPlayer);
            }
            catch (InvalidOperationException)
            {
                Assert.AreEqual(1000, extraPlayer.Cash, "Player had an unexpected amount of cash assigned.");
            }
        }
Ejemplo n.º 11
0
        public void CannotAddPlayerAtCapacity()
        {
            uint tableCapacity = 6;
            var  table         = new GameLogic.Table(tableCapacity, new GameLogic.StakeInfo(1, 2));

            for (int i = 0; i < tableCapacity; i++)
            {
                table.AddPlayer(new Models.Player(i.ToString(), "key", 0));
            }

            try
            {
                table.AddPlayer(new Models.Player("name", "key", 0));
            }
            catch (InvalidOperationException)
            {
                return;
            }

            Assert.Fail("A table shouldn't accept new players when at capacity.");
        }
Ejemplo n.º 12
0
        public void AddPlayerWhenBelowCapacity()
        {
            var table = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));

            table.AddPlayer(new Models.Player("name", "key", 1000));
        }
Ejemplo n.º 13
0
        public void TableCapacityCorrectWhenEmpty()
        {
            var table = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));

            Assert.AreEqual(6, table.RemainingSeats, "The number of remaining seats is incorrect.");
        }
Ejemplo n.º 14
0
        public void IdPropertyIsGUID()
        {
            var table = new GameLogic.Table(6, new GameLogic.StakeInfo(1, 2));

            Assert.IsNotNull(table.Id, "The Table should generate an identifying GUID.");
        }