Ejemplo n.º 1
0
class TestFizzBuzz(unittest.TestCase):

    def setUp(self):

        self.game = FizzBuzz()

        self.fixture = ['1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz', '11', \
        'Fizz', '13', '14', 'FizzBuzz', '16', '17', 'Fizz', '19', 'Buzz', 'Fizz', '22',\
        '23', 'Fizz', 'Buzz', '26', 'Fizz', '28', '29', 'FizzBuzz', '31', '32', 'Fizz', '34',\
        'Buzz', 'Fizz', '37', '38', 'Fizz', 'Buzz', '41', 'Fizz', '43', '44', 'FizzBuzz',\
        '46', '47', 'Fizz', '49', 'Buzz', 'Fizz', '52', '53', 'Fizz', 'Buzz', '56', 'Fizz', \
        '58', '59', 'FizzBuzz', '61', '62', 'Fizz', '64', 'Buzz', 'Fizz', '67', '68', 'Fizz',\
        'Buzz', '71', 'Fizz', '73', '74', 'FizzBuzz', '76', '77', 'Fizz', '79', 'Buzz', 'Fizz',\
        '82', '83', 'Fizz', 'Buzz', '86', 'Fizz', '88', '89', 'FizzBuzz', '91', '92', 'Fizz',\
        '94', 'Buzz', 'Fizz', '97', '98', 'Fizz', 'Buzz']

    def test_fixtures(self):
        """
        Test if the default case return the expected output with a fixture
        """
        self.assertEqual(self.game.numbers, self.fixture)

    def test_say_numbers_returns_always_string(self):
        """
        Test if all the returned bytes are strings
        :return:
        """
        for i in range(1, 100):
            self.assertIsInstance(self.game._say_number(i), str)

    def test_replaced_by_three(self):
        """
        Test if the replaced are being doing well
        :return:
        """
        for i in range(1, 100):
            if i % 15 == 0:
                self.assertEqual(self.game._say_number(i), self.game.fifteen)
            elif i % 3 == 0:
                self.assertEqual(self.game._say_number(i), self.game.three)
            elif i % 5 == 0:
                self.assertEqual(self.game._say_number(i), self.game.five)
            else:
                self.assertEqual(self.game._say_number(i), str(i))