Exemplo n.º 1
0
        public void ReturnFullGameLogs()
        {
            var player1 = new MockPlayer("Billy", 1000, 1)
            {
                PlayerActionWhenRequested = new PlayerAction("Raise", 100)
            };
            var player2 = new MockPlayer("John", 1000, 2)
            {
                PlayerActionWhenRequested = new PlayerAction("Call", 100)
            };

            var players = new List <Player>()
            {
                player1,
                player2
            };

            _engine.Players = players;

            var gameLog = _engine.PlayGame();

            var startGameMessage = gameLog.First();
            var endGameMessage   = gameLog.Last();

            Assert.Equal("Starting game.", startGameMessage);
            Assert.Contains("has won the game.", endGameMessage);
            Assert.True(gameLog.Count() > 41);
        }
Exemplo n.º 2
0
        public void NotAwardPotToFoldedPlayerWithWinningHand()
        {
            var log       = new List <string>();
            var gameState = new GameState();

            var withoutPair      = new MockPlayer("NoPair", 1000, 1);
            var withPairWillFold = new MockPlayer("FoldsPair", 1000, 2);

            withPairWillFold.PlayerActionWhenRequested = new PlayerAction("Fold", 0);

            gameState.Players = new List <Player>()
            {
                withoutPair, withPairWillFold
            };

            var mockDeck = new MockDeck();

            mockDeck.PushCardOntoDeck(new Card('C', 11));
            mockDeck.PushCardOntoDeck(new Card('S', 5));
            mockDeck.PushCardOntoDeck(new Card('D', 7));
            mockDeck.PushCardOntoDeck(new Card('H', 7));

            Hand.Play(gameState, log, mockDeck);

            Assert.True(withoutPair.Chips > withPairWillFold.Chips);
        }
Exemplo n.º 3
0
        public void CollectBlinds()
        {
            var gameState = new GameState();

            var dealer      = new MockPlayer("Dealer", 1000, 1);
            var smallBlind  = new MockPlayer("Small", 1000, 2);
            var bigBlind    = new MockPlayer("Big", 1000, 3);
            var firstAction = new MockPlayer("FirstAction", 1000, 4);

            firstAction.PlayerActionWhenRequested = new PlayerAction("Fold", 0);
            dealer.PlayerActionWhenRequested      = new PlayerAction("Raise", 500);
            smallBlind.PlayerActionWhenRequested  = new PlayerAction("Fold", 0);
            bigBlind.PlayerActionWhenRequested    = new PlayerAction("Fold", 0);

            gameState.Players = new List <Player>()
            {
                dealer, smallBlind, bigBlind, firstAction
            };

            Hand.Play(gameState, new List <string>());

            Assert.Equal(1150, dealer.Chips);
            Assert.Equal(950, smallBlind.Chips);
            Assert.Equal(900, bigBlind.Chips);
        }
Exemplo n.º 4
0
        public void AwardPotToPlayerWithHighPair()
        {
            var log       = new List <string>();
            var gameState = new GameState();

            var player1 = new MockPlayer("Billy", 1000, 1);
            var player2 = new MockPlayer("John", 1000, 2);
            var player3 = new MockPlayer("Steve", 1000, 3);

            gameState.Players = new List <Player>()
            {
                player1, player2, player3
            };

            var mockDeck = new MockDeck();

            mockDeck.PushCardOntoDeck(new Card('C', 14));
            mockDeck.PushCardOntoDeck(new Card('S', 14));
            mockDeck.PushCardOntoDeck(new Card('C', 5));
            mockDeck.PushCardOntoDeck(new Card('S', 5));
            mockDeck.PushCardOntoDeck(new Card('D', 2));
            mockDeck.PushCardOntoDeck(new Card('H', 2));

            Hand.Play(gameState, log, mockDeck);

            Assert.True(player3.Chips > player1.Chips);
            Assert.True(player3.Chips > player2.Chips);
        }
Exemplo n.º 5
0
        public void EndGameWithAccurateNumberOfChips()
        {
            var player1 = new MockPlayer("Billy", 1000, 1)
            {
                PlayerActionWhenRequested = new PlayerAction("Raise", 50)
            };
            var player2 = new MockPlayer("John", 1000, 2)
            {
                PlayerActionWhenRequested = new PlayerAction("Call", 50)
            };

            var players = new List <Player>()
            {
                player1,
                player2
            };

            _engine.Players = players;

            _engine.PlayGame();

            Assert.True(player1.ActionRequested);
            Assert.Equal(1, players.Where(x => x.Chips == 0).Count());
            Assert.Equal(1, players.Where(x => x.Chips == 2000).Count());
        }
Exemplo n.º 6
0
        public void NotifyPlayersOfActions()
        {
            var player1 = new MockPlayer("Billy", 1000, 1);
            var player2 = new MockPlayer("John", 1000, 2);

            var players = new List <Player>()
            {
                player1,
                player2
            };

            _engine.Players = players;

            _engine.PlayGame();

            Assert.True(player1.PlayerNotified);
        }
Exemplo n.º 7
0
        public void StartActionToPlayerAfterBigBlind()
        {
            var gameState = new GameState();

            var dealer      = new MockPlayer("Billy", 1000, 1);
            var smallBlind  = new MockPlayer("John", 1000, 2);
            var bigBlind    = new MockPlayer("Steve", 1000, 3);
            var firstAction = new MockPlayer("Dave", 1000, 4);

            gameState.Players = new List <Player>()
            {
                dealer, smallBlind, bigBlind, firstAction
            };

            Hand.Play(gameState, new List <string>());

            Assert.Equal(1, firstAction.PlayerActionRequestOrder);
        }
Exemplo n.º 8
0
        public void DealCards()
        {
            var player1 = new MockPlayer("Billy", 1000, 1);
            var player2 = new MockPlayer("John", 1000, 2);

            var players = new List <Player>()
            {
                player1,
                player2
            };

            _engine.Players = players;

            _engine.PlayGame();

            Assert.NotNull(player1.Card1);
            Assert.NotNull(player1.Card2);
        }
Exemplo n.º 9
0
        public void AllowPlayerToFold()
        {
            var gameState = new GameState();

            var dealer = new MockPlayer("Billy", 1000, 1);

            var firstAction = new MockPlayer("John", 1000, 2);

            firstAction.PlayerActionWhenRequested = new PlayerAction("Fold", 0);

            gameState.Players = new List <Player>()
            {
                dealer, firstAction
            };

            Hand.Play(gameState, new List <string>());

            Assert.False(dealer.ActionRequested);
        }
Exemplo n.º 10
0
        public void ProcessPlayerAction()
        {
            var player1 = new MockPlayer("Billy", 1000, 1)
            {
                PlayerActionWhenRequested = new PlayerAction("Raise", 1000)
            };
            var player2 = new MockPlayer("John", 1000, 2);

            var players = new List <Player>()
            {
                player1,
                player2
            };

            _engine.Players = players;

            _engine.PlayGame();

            Assert.True(player1.ActionRequested);
        }
Exemplo n.º 11
0
        public void AdvanceDealerSeatAfterHand()
        {
            var player1 = new MockPlayer("Billy", 1000, 1)
            {
                PlayerActionWhenRequested = new PlayerAction("Raise", 100)
            };
            var player2 = new MockPlayer("John", 1000, 2)
            {
                PlayerActionWhenRequested = new PlayerAction("Call", 100)
            };

            var players = new List <Player>()
            {
                player1,
                player2
            };

            _engine.Players = players;

            var gameLog = _engine.PlayGame();

            Assert.True(player1.NumberOfDealerSeatAdvances > 1);
        }
Exemplo n.º 12
0
        public void DealUniqueCardsFromDeck()
        {
            var log       = new List <string>();
            var gameState = new GameState();

            var player1 = new MockPlayer("Billy", 1000, 1);
            var player2 = new MockPlayer("John", 1000, 2);

            gameState.Players = new List <Player>()
            {
                player1, player2
            };

            Hand.Play(gameState, log);

            var allCardsDealt = new List <Card>();

            allCardsDealt.Add(player1.Card1);
            allCardsDealt.Add(player1.Card2);
            allCardsDealt.Add(player2.Card1);
            allCardsDealt.Add(player2.Card2);

            Assert.Equal(allCardsDealt.Count, allCardsDealt.Distinct().ToList().Count);
        }
Exemplo n.º 13
0
        public void AwardPotToPlayerWithPair()
        {
            var log       = new List <string>();
            var gameState = new GameState();

            var withoutPair = new MockPlayer("Billy", 1000, 1);
            var withPair    = new MockPlayer("John", 1000, 2);

            gameState.Players = new List <Player>()
            {
                withoutPair, withPair
            };

            var mockDeck = new MockDeck();

            mockDeck.PushCardOntoDeck(new Card('C', 11));
            mockDeck.PushCardOntoDeck(new Card('S', 5));
            mockDeck.PushCardOntoDeck(new Card('D', 7));
            mockDeck.PushCardOntoDeck(new Card('H', 7));

            Hand.Play(gameState, log, mockDeck);

            Assert.True(withPair.Chips > withoutPair.Chips);
        }