def test_player_makes_bet(self):
        player = Player("Jill", 100)
        # (case name, bet, expected prints, expected inputs)
        cases = [
            (
                "legal_bet",
                [10],
                ["Dealer has", "has hand", "has pot"],
                [("give bet", 10)]
            ),
            (
                "noninteger_bet",
                [10.10, 10],
                ["Dealer has", "has hand", "has pot", "Illegal bet", "Dealer has", "has hand", "has pot"],
                [("give bet", 10.10), ("give bet", 10)]
            ),
            (
                "below_zero_bet",
                [-10, 10],
                ["Dealer has", "has hand", "has pot", "Illegal bet", "Dealer has", "has hand", "has pot"],
                [("give bet", -10), ("give bet", 10)]
            ),
            (
                "over_pot_bet",
                [110, 10],
                ["Dealer has", "has hand", "has pot", "Illegal bet", "Dealer has", "has hand", "has pot"],
                [("give bet", 110), ("give bet", 10)]
            ),
        ]
        for case in cases:
            expected_prints = list(reversed(case[2]))
            expected_inputs = list(reversed(case[3]))
            def test_print(statement):
                self.assertTrue(expected_prints.pop() in statement)
            def test_input(prompt):
                expected_input = expected_inputs.pop()
                self.assertTrue(expected_input[0] in prompt)
                return expected_input[1]
            blackjack = Blackjack([player], test_print, test_input)
            blackjack._dealer_deals_cards()

            blackjack._player_makes_bet(player)