Exemplo n.º 1
0
class PenduGameTest(TestCase):
    def setUp(self):
        self.reader = Mock()
        self.writer = Mock()
        self.computer = HangmanComputer()
        self.game = HangmanGame(self.reader, self.writer, self.computer)

    def test_basic_play(self):
        self.reader.read_input.return_value = 't'
        state = State(5, 'voiture', '*******')
        self.game.play(state)

        self.reader.read_input.assert_called_once_with()
        self.writer.write_output.assert_called_once_with(5, '***t***')

    def test_win(self):
        self.reader.read_input.return_value = 'e'
        state = State(10, 'voiture', 'voitur*')
        self.game.play(state)

        self.reader.read_input.assert_called_once_with()
        self.writer.win.assert_called_once_with()

    def test_lose(self):
        self.reader.read_input.return_value = 's'
        state = State(1, 'voiture', 'vo***re')
        self.game.play(state)

        self.reader.read_input.assert_called_once_with()
        self.writer.lose.assert_called_once_with('voiture')

    def test_already_won(self):
        self.reader.read_input.return_value = 'e'
        state = State(2, 'voiture', 'voiture')

        with self.assertRaises(ValueError):
            self.game.play(state)

        self.assertEqual(self.reader.read_input.call_count, 0)

    def test_already_lose(self):
        self.reader.read_input.return_value = 'e'
        state = State(0, 'voiture', 'v***ure')

        with self.assertRaises(ValueError):
            self.game.play(state)

        self.assertEqual(self.reader.read_input.call_count, 0)
Exemplo n.º 2
0
 def setUp(self):
     self.reader = Mock()
     self.writer = Mock()
     self.computer = HangmanComputer()
     self.game = HangmanGame(self.reader, self.writer, self.computer)