コード例 #1
0
ファイル: Program.cs プロジェクト: gjamesbaker/BJB
        static void Main(string[] args)
        {
            IBlackjackTable table = new BlackjackTable();
            IBlackjackPlayer player1 = new BlackjackPlayer {Balance = 2000, Ante = 20};
            IBlackjackPlayer player2 = new BlackjackPlayer {Balance = 3000, Ante = 30};
            table.AddPlayer(player1);
            table.AddPlayer(player2);

            table.ShuffleShoe();

            PerformOneGame(table);
        }
コード例 #2
0
ファイル: TableTests.cs プロジェクト: gjamesbaker/BJB
        public void can_add_players_to_table()
        {
            // Arrange
            var table = new BlackjackTable();
            var player = Substitute.For<IBlackjackPlayer>();

            // Act
            table.AddPlayer(player);

            // Assert
            table.Players.Count().Should().Equal(1);
            table.Players.ElementAt(0).Should().Be.SameAs(player);
        }
コード例 #3
0
ファイル: TableTests.cs プロジェクト: gjamesbaker/BJB
        public void start_new_game_calls_new_game_on_each_player()
        {
            // Arrange
            var table = new BlackjackTable();
            var player1 = Substitute.For<IBlackjackPlayer>();
            var player2 = Substitute.For<IBlackjackPlayer>();

            table.AddPlayer(player1);
            table.AddPlayer(player2);

            // Act
            table.StartNewGame();

            // Assert
            player1.Received().StartNewGame();
            player2.Received().StartNewGame();
        }
コード例 #4
0
ファイル: TableTests.cs プロジェクト: gjamesbaker/BJB
        public void call_for_bets_calls_place_bet_on_each_player()
        {
            // Arrange
            var table = new BlackjackTable();
            var player1 = Substitute.For<IBlackjackPlayer>();
            var player2 = Substitute.For<IBlackjackPlayer>();

            table.AddPlayer(player1);
            table.AddPlayer(player2);

            // Act
            table.CallForBets();

            // Assert
            player1.Received().PlaceBet();
            player2.Received().PlaceBet();
        }
コード例 #5
0
ファイル: TableTests.cs プロジェクト: gjamesbaker/BJB
        public void offer_splits_calls_offer_split_on_each_player()
        {
            // Arrange
            var table = new BlackjackTable();
            var player1 = Substitute.For<IBlackjackPlayer>();
            var player2 = Substitute.For<IBlackjackPlayer>();
            var card = Substitute.For<IBlackjackCard>();
            table.DealerHand.AddCard(card);
            table.DealerHand.AddCard(card);
            table.AddPlayer(player1);
            table.AddPlayer(player2);

            // Act
            table.OfferSplits();

            // Assert
            player1.Received().OfferSplit(card);
            player2.Received().OfferSplit(card);
        }
コード例 #6
0
ファイル: TableTests.cs プロジェクト: gjamesbaker/BJB
        public void start_new_game_resets_dealers_hand()
        {
            // Arrange
            var table = new BlackjackTable();
            var hand = table.DealerHand;
            var card = Substitute.For<IBlackjackCard>();
            hand.AddCard(card);
            hand.GetCards().Count().Should().Equal(1);

            // Act
            table.StartNewGame();

            // Assert
            table.DealerHand.GetCards().Count().Should().Equal(0);
        }
コード例 #7
0
ファイル: TableTests.cs プロジェクト: gjamesbaker/BJB
        public void table_has_a_shoe_of_cards()
        {
            // Arrange
            var table = new BlackjackTable();

            // Act
            var shoe = table.Shoe;

            // Assert
            shoe.Should().Not.Be.Null();
            shoe.CardCount().Should().Not.Equal(0);
        }
コード例 #8
0
ファイル: TableTests.cs プロジェクト: gjamesbaker/BJB
        public void table_has_a_dealer_hand()
        {
            // Arrange
            var table = new BlackjackTable();

            // Act
            var dealerHand = table.DealerHand;

            // Assert
            dealerHand.Should().Not.Be.Null();
            dealerHand.GetCards().Should().Not.Be.Null();
        }