class Test(unittest.TestCase):
    def setUp(self):
        self.gum_ball_machine = GumballMachine(50)
        self.gum_ball_machine.set_state(
            self.gum_ball_machine.get_winner_state())

    def tearDown(self):
        pass

    def test_insert_quarter(self):
        self.gum_ball_machine.insert_quarter()
        self.assertIsInstance(self.gum_ball_machine._state, WinnerState)

    def test_eject_quarter(self):
        self.gum_ball_machine.eject_quarter()
        self.assertIsInstance(self.gum_ball_machine._state, WinnerState)

    def test_turn_clank1(self):
        self.gum_ball_machine._state.turn_crank()
        self.assertIsInstance(self.gum_ball_machine._state, WinnerState)

    def test_dispense_to_no_quarter(self):
        self.gum_ball_machine._state.dispense()
        self.assertIsInstance(self.gum_ball_machine._state, NoQuarterState)

    def test_dispense_to_sold_out1(self):
        self.gum_ball_machine._count = 2
        self.gum_ball_machine._state.dispense()
        self.assertIsInstance(self.gum_ball_machine._state, SoldOutState)

    def test_dispense_to_sold_out2(self):
        self.gum_ball_machine._count = 1
        self.gum_ball_machine._state.dispense()
        self.assertIsInstance(self.gum_ball_machine._state, SoldOutState)
Example #2
0
class Test(unittest.TestCase):
    def setUp(self):
        self.gum_ball_machine = GumballMachine(50)
        self.gum_ball_machine.insert_quarter()

    def tearDown(self):
        pass

    def test_insert_quarter(self):
        self.gum_ball_machine.insert_quarter()
        self.assertIsInstance(self.gum_ball_machine._state, HasQuarterState)

    def test_eject_quarter(self):
        self.gum_ball_machine.eject_quarter()
        self.assertIsInstance(self.gum_ball_machine._state, NoQuarterState)

    def test_turn_clank_to_sold(self):
        self.gum_ball_machine._state.is_winner = False
        self.gum_ball_machine._state.turn_crank()
        self.assertIsInstance(self.gum_ball_machine._state, SoldState)

    def test_turn_clank_to_winner(self):
        self.gum_ball_machine._state.is_winner = True
        self.gum_ball_machine._state.turn_crank()
        self.assertIsInstance(self.gum_ball_machine._state, WinnerState)

    def test_dispense(self):
        self.gum_ball_machine._state.dispense()
        self.assertIsInstance(self.gum_ball_machine._state, HasQuarterState)