class TestEnemy(unittest.TestCase): def setUp(self): self.health = 99 self.mana = 20 self.max_health = 99 self.max_mana = 20 self.damage = 15 self.weapon = Weapon('Viki', 98) self.spell = Spell('Viki', 98, 13, 3) self.enemy = Enemy(self.health, self.mana, self.damage) def test_enemy_init(self): self.assertEqual(self.enemy._health, self.health) self.assertEqual(self.enemy._mana, self.mana) self.assertEqual(self.enemy._damage, self.damage) def test_is_alive_has_health(self): self.assertTrue(self.enemy.is_alive()) def test_is_alive_has_no_health(self): self.enemy._health = 0 self.assertFalse(self.enemy.is_alive()) def test_can_cast_has_mana_for_spell(self): self.enemy.learn_spell(self.spell) self.assertTrue(self.enemy.can_cast()) def test_can_cast_has_no_mana_for_spell(self): self.enemy._mana = 0 self.enemy.learn_spell(self.spell) self.assertFalse(self.enemy.can_cast()) def test_get_health(self): self.assertEqual(self.enemy.get_health(), self.enemy._health) def test_get_mana(self): self.assertEqual(self.enemy.get_mana(), self.enemy._mana) def test_take_damage_more_than_health(self): damage_taken = 100 self.enemy.take_damage(damage_taken) self.assertEqual(self.enemy._health, 0) def test_take_damage_less_than_health(self): damage_taken = 2 self.enemy.take_damage(damage_taken) self.assertEqual(self.enemy._health, 97) def test_take_healing_more_than_max_health(self): healing_points = 100 self.enemy.take_healing(healing_points) self.assertEqual(self.enemy._health, self.max_health) def test_take_healing_already_dead(self): self.enemy._health = 0 self.enemy.is_alive() self.assertFalse(self.enemy.take_healing(20)) def test_take_healing_less_than_max_health(self): self.enemy._health = 50 healing_points = 5 self.enemy.take_healing(healing_points) self.assertEqual(self.enemy._health, 55) def test_take_mana_more_than_max_mana(self): mana_points = 10 self.enemy.take_mana(mana_points) self.assertEqual(self.enemy._mana, self.enemy._max_mana) def test_take_mana_less_than_max_mana(self): self.enemy._mana = 1 mana_points = 1 self.enemy.take_mana(mana_points) self.assertEqual(self.enemy._mana, 2) def test_equip_weapon(self): self.enemy.equip_weapon(self.weapon) self.assertEqual(self.enemy._weapon_equipped, self.weapon) def test_learn_spell(self): self.enemy.learn_spell(self.spell) self.assertEqual(self.enemy._spell_learned, self.spell) def test_attack_with_weapon_has_weapon(self): self.enemy.equip_weapon(self.weapon) self.assertEqual(self.enemy.attack(), self.enemy._weapon_equipped.get_damage()) def test_attack_with_weapon_has_no_weapon(self): self.assertEqual(self.enemy.attack(), self.enemy._damage) def test_attack_with_spell_has_spell(self): self.enemy.learn_spell(self.spell) self.assertEqual(self.enemy.attack('spell'), self.enemy._spell_learned.get_damage()) def test_attack_with_spell_has_spell_can_not_cast(self): self.enemy.learn_spell(self.spell) self.enemy._mana = 0 self.assertEqual(self.enemy.attack('spell'), self.enemy._damage) def test_attack_with_spell_has_no_spell(self): self.assertEqual(self.enemy.attack('spell'), self.enemy._damage)
class TestEnemy(unittest.TestCase): def setUp(self): self.enemy1 = Enemy() self.weapon1 = Weapon() self.spell1 = Spell() self.injured_enemy = Enemy() self.injured_enemy.current_health = 30 self.injured_enemy.current_mana = 30 self.dead_enemy = Enemy() self.dead_enemy.current_health = 0 self.dead_enemy.current_mana = 0 def test_constructor(self): self.assertIsInstance(self.enemy1, Enemy) def test_is_alive(self): self.assertTrue(self.enemy1.is_alive()) def test_is_alive_false(self): self.assertFalse(self.dead_enemy.is_alive()) def test_can_cast(self): self.enemy1.learn(self.spell1) self.assertTrue(self.enemy1.can_cast()) def test_can_cast_false(self): self.assertFalse(self.dead_enemy.can_cast()) def test_get_health(self): self.assertEqual(self.enemy1.get_health(), 100) self.assertEqual(self.dead_enemy.get_health(), 0) def test_get_mana(self): self.assertEqual(self.enemy1.get_mana(), 100) self.assertEqual(self.dead_enemy.get_mana(), 0) def test_take_healing(self): self.injured_enemy.take_healing(20) self.assertEqual(self.injured_enemy.get_health(), 50) def test_take_healing_dead_enemy(self): self.assertFalse(self.dead_enemy.take_healing(20)) def test_take_healing_massive_health(self): self.assertTrue(self.injured_enemy.take_healing(999)) self.assertEqual(self.injured_enemy.get_health(), 100) def test_take_mana(self): pass def test_attack_with_weapon(self): self.enemy1.equip(self.weapon1) self.assertEqual(self.enemy1.attack(by='weapon'), 20) def test_attack_with_spell(self): self.enemy1.learn(self.spell1) self.assertEqual(self.enemy1.attack(by='spell'), 30) def test_attack_with_no_weapon_no_spell(self): self.assertEqual(self.enemy1.attack(by='weapon'), 0)