コード例 #1
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void Clone_SingleHandWithSeed_ShouldReturnExactHand()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();
            hand.Seed = 1;

            var mock1 = new Mock<OmahaPlayer>();
            mock1.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction());

            var mock2 = new Mock<OmahaPlayer>();
            mock2.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction());

            hand.Sit(mock1.Object, 3, 1000);
            hand.Sit(mock2.Object, 4, 1000);

            OmahaHiLoHand cloned = (OmahaHiLoHand)hand.Clone();

            HandResult hr1 = hand.RunToEnd();
            HandResult hr2 = cloned.RunToEnd();

            Assert.AreEqual(hr1.Winners[0].Player.HoleCards, hr2.Winners[0].Player.HoleCards);
        }
コード例 #2
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void Stand_TwoPlayersSeated_StandupTwoPlayersPlayerCountIsZero()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            var mock1 = new Mock<OmahaPlayer>();
            var mock2 = new Mock<OmahaPlayer>();

            mock1.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction());
            mock2.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction());

            hand.Sit(mock1.Object, 0, 1000);
            hand.Sit(mock2.Object, 1, 1000);

            hand.Stand(mock1.Object);
            hand.Stand(mock2.Object);

            Assert.AreEqual(0, hand.PlayerCount);
        }
コード例 #3
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void Sit_SitMaxPlayers_VerifyPlayerCoundEqualsMaxPlayers()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();
            int maxPlayers = 10;

            var mock = new Mock<OmahaPlayer>();
            mock.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction());

            for (int i = 0; i < maxPlayers; i++)
            {
                hand.Sit(mock.Object, i, 1000);
            }

            Assert.AreEqual(maxPlayers, hand.PlayerCount);
        }
コード例 #4
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void Sit_SitDifferentPlayersAtSameSeat_VerifiesThrowsException()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            var mock1 = new Mock<OmahaPlayer>();
            var mock2 = new Mock<OmahaPlayer>();

            mock1.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction());
            mock2.Setup(p => p.Act()).Returns(PokerAction.CreateFoldAction());

            hand.Sit(mock1.Object, 0, 1000);
            hand.Sit(mock2.Object, 0, 1000);
        }
コード例 #5
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_TwoPlayers_PlayerShouldReceiveShowdownEvent()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            var mock1 = new Mock<OmahaPlayer>();
            var mock2 = new Mock<OmahaPlayer>();

            mock1.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            mock1.Setup(p => p.ShowdownEvent(0, It.Is<Card[]>(c => IsValidHand(c)))).Verifiable();
            mock1.Setup(p => p.ShowdownEvent(1, It.Is<Card[]>(c => IsValidHand(c)))).Verifiable();

            mock2.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            mock2.Setup(p => p.ShowdownEvent(0, It.Is<Card[]>(c => IsValidHand(c)))).Verifiable();
            mock2.Setup(p => p.ShowdownEvent(1, It.Is<Card[]>(c => IsValidHand(c)))).Verifiable();

            hand.Sit(mock1.Object, 0, 1000);
            hand.Sit(mock2.Object, 1, 1000);

            hand.RunToEnd();

            mock1.Verify();
            mock2.Verify();
        }
コード例 #6
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_TwoPlayers_PlayerShouldReceiveWinEvent()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            var mock1 = new Mock<OmahaPlayer>();
            var mock2 = new Mock<OmahaPlayer>();

            mock1.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            mock1.Setup(p => p.WinEvent(0, It.Is<long>(w => w > 0))).Verifiable();

            mock2.Setup(p => p.Act()).Returns(PokerAction.CreateFoldAction()).Verifiable();
            mock2.Setup(p => p.WinEvent(0, It.Is<long>(w => w > 0))).Verifiable();

            hand.Sit(mock1.Object, 0, 1000);
            hand.Sit(mock2.Object, 1, 1000);

            hand.RunToEnd();

            mock1.Verify();
            mock2.Verify();
        }
コード例 #7
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_TwoPlayers_PlayerShouldReceiveGameInfoWithTwoPlayers()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            var mock1 = new Mock<OmahaPlayer>();
            var mock2 = new Mock<OmahaPlayer>();

            mock1.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            mock1.Setup(p => p.GameStartEvent(It.Is<IGameInfo>(g => g.NumberOfLivePlayersHand == 2))).Verifiable();

            mock2.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            mock2.Setup(p => p.GameStartEvent(It.Is<IGameInfo>(g => g.NumberOfLivePlayersHand == 2))).Verifiable();

            hand.Sit(mock1.Object, 0, 1000);
            hand.Sit(mock2.Object, 1, 1000);

            hand.RunToEnd();

            mock1.Verify();
            mock2.Verify();
        }
コード例 #8
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_TwoPlayers_PlayerShouldReceiveRoundChanged()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            var mock1 = new Mock<OmahaPlayer>();
            var mock2 = new Mock<OmahaPlayer>();

            mock1.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            mock1.Setup(p => p.RoundChanged(1)).Verifiable();
            mock1.Setup(p => p.RoundChanged(2)).Verifiable();
            mock1.Setup(p => p.RoundChanged(3)).Verifiable();

            mock2.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            mock2.Setup(p => p.RoundChanged(1)).Verifiable();
            mock2.Setup(p => p.RoundChanged(2)).Verifiable();
            mock2.Setup(p => p.RoundChanged(3)).Verifiable();

            hand.Sit(mock1.Object, 0, 1000);
            hand.Sit(mock2.Object, 1, 1000);

            hand.RunToEnd();

            mock1.Verify();
            mock2.Verify();
        }
コード例 #9
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_TwoPlayers_CanDeclareWinner()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();
            int numPlayers = 2;

            OmahaPlayer[] players = new OmahaPlayer[2];

            for (int i = 0; i < numPlayers; i++)
            {
                var mock = new Mock<OmahaPlayer>();
                mock.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
                players[i] = mock.Object;
                hand.Sit(mock.Object, i, 1000);
            }

            HandResult result = hand.RunToEnd();

            Assert.GreaterOrEqual(result.Winners.Count, 1);
        }
コード例 #10
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_TwoPlayersRaisePlayerAndFoldPlayer_VerifyRaisePlayerIsWinner()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            long amountToBet = 1000;

            var raise = new Mock<OmahaPlayer>();
            var fold = new Mock<OmahaPlayer>();

            raise.Setup(p => p.Act()).Returns(PokerAction.CreateRaiseAction(amountToBet)).Callback(() => amountToBet += 1000).Verifiable();
            fold.Setup(p => p.Act()).Returns(PokerAction.CreateFoldAction()).Verifiable();

            hand.Sit(raise.Object, 0, 1000);
            hand.Sit(fold.Object, 1, 1000);

            HandResult result = hand.RunToEnd();

            Assert.AreEqual(1, result.Winners.Count);
            Assert.AreEqual(raise.Object, result.Winners[0].Player);
        }
コード例 #11
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_TwoPlayersCallPlayerAndFoldPlayer_VerifyCallPlayerIsWinner()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            var call = new Mock<OmahaPlayer>();
            var fold = new Mock<OmahaPlayer>();

            call.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            fold.Setup(p => p.Act()).Returns(PokerAction.CreateFoldAction()).Verifiable();

            hand.Sit(call.Object, 0, 1000);
            hand.Sit(fold.Object, 1, 1000);

            HandResult result = hand.RunToEnd();

            Assert.AreEqual(1, result.Winners.Count);
            Assert.AreEqual(call.Object, result.Winners[0].Player);

            call.Verify();
            fold.Verify();
        }
コード例 #12
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_ThreeCallPlayers_RunThreeHands()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();

            int numPlayers = 3;
            OmahaPlayer[] players = new OmahaPlayer[numPlayers];

            for (int i = 0; i < numPlayers; i++)
            {
                var mock = new Mock<OmahaPlayer>();
                mock.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction());
                players[i] = mock.Object;
                hand.Sit(mock.Object, i, 1000);
            }

            List<HandResult> results = new List<HandResult>();

            for (int i = 0; i < 3; i++)
            {
                HandResult result = hand.RunToEnd();

                Assert.IsFalse(results.Contains(result));

                results.Add(result);
            }
        }
コード例 #13
0
ファイル: OmahaHiLoHandTests.cs プロジェクト: hdinh/OmahaBot
        public void RunToEnd_SeededDeck_Players2ShouldWin()
        {
            OmahaHiLoHand hand = new OmahaHiLoHand();
            hand.Seed = 1;

            var player1 = new Mock<OmahaPlayer>(); //// AAT7 (AA669)
            var player2 = new Mock<OmahaPlayer>(); //// 73JQ (333JQ) -- should be winner
                                                   //// 69336 (common)

            player1.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();
            player2.Setup(p => p.Act()).Returns(PokerAction.CreateCallAction()).Verifiable();

            hand.Sit(player1.Object, 0, 1000);
            hand.Sit(player2.Object, 1, 1000);

            HandResult result = hand.RunToEnd();

            Assert.AreEqual(1, result.Winners.Count);
            Assert.AreEqual(player2.Object, result.Winners[0].Player);

            player1.Verify();
            player2.Verify();
        }