class TestTrapCard(TestCase): def setUp(self): self.magic_card = MagicCard('Test2') def test_attributes_are_set(self): self.assertEqual('Test1', self.magic_card.name) self.assertEqual(5, self.magic_card.damage_points) self.assertEqual(80, self.magic_card.health_points) def test_set_card_name_with_empty_string__raises(self): with self.assertRaises(ValueError) as ex: self.magic_card.name(card=MagicCard('')) self.assertEqual("Card's name cannot be an empty string.", str(ex.exception)) def test_check_class_name(self): self.assertEqual("MagicCard", self.magic_card.__class__.__name__)
def test_name_setter(self): card = MagicCard('test') card.name = 'new' self.assertEqual('new', card.name)
def test_name_raises(self): card = MagicCard('test') with self.assertRaises(ValueError) as ex: card.name = '' self.assertEqual(str(ex.exception), "Card's name cannot be an empty string.")
def test_name_invalid_data_should_raise_error(self): card = MagicCard("TestCard") with self.assertRaises(ValueError): card.name = ""
def test_name_valid_data_should_work_correctly(self): card = MagicCard("TestCard") card.name = "Pesho" self.assertEqual(card.name, "Pesho")
def test_name_setter_with_correct_string_should_change_name(self): mg = MagicCard("It's some kind of magic...") mg.name = "Magic Card" self.assertEqual(mg.name, "Magic Card")
def test_name_setter_with_empty_string_should_raise_error(self): mg = MagicCard("It's some kind of magic...") with self.assertRaises(ValueError) as cm: mg.name = "" self.assertEqual(str(cm.exception), "Card's name cannot be an empty string.")