def test_process_not_for_heroes(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_only_for_mobs_ability_id()) with mock.patch('the_tale.game.heroes.habilities.AbilitiesPrototype.get_for_choose', lambda x: [ABILITIES[task.ability_id]]): self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.NOT_FOR_PLAYERS)
def test_process_id_not_in_choices(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_unchoosed_ability_id()) self.assertEqual( task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.NOT_IN_CHOICE_LIST)
def test_process_no_freee_ability_points(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id()) with mock.patch("the_tale.game.heroes.habilities.AbilitiesPrototype.can_choose_new_ability", False): self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.MAXIMUM_ABILITY_POINTS_NUMBER)
def test_process_already_max_level(self): task = ChooseHeroAbilityTask(self.hero.id, battle_abilities.HIT.get_id()) self.hero.abilities.abilities[battle_abilities.HIT.get_id()].level = battle_abilities.HIT.MAX_LEVEL self.hero.abilities.updated = True self.hero.save() with mock.patch('the_tale.game.heroes.habilities.AbilitiesPrototype.get_for_choose', lambda x: [ABILITIES[task.ability_id]]): with mock.patch('the_tale.game.heroes.habilities.AbilitiesPrototype.can_choose_new_ability', True): self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.ALREADY_MAX_LEVEL)
def test_process_not_for_heroes(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_only_for_mobs_ability_id()) with mock.patch( 'the_tale.game.heroes.habilities.AbilitiesPrototype.get_for_choose', lambda x: [ABILITIES[task.ability_id]]): self.assertEqual( task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.NOT_FOR_PLAYERS)
def test_process_no_freee_ability_points(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id()) with mock.patch( 'the_tale.game.heroes.habilities.AbilitiesPrototype.can_choose_new_ability', False): self.assertEqual( task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual( task.state, CHOOSE_HERO_ABILITY_STATE.MAXIMUM_ABILITY_POINTS_NUMBER)
def test_process_already_max_level(self): task = ChooseHeroAbilityTask(self.hero.id, battle_abilities.HIT.get_id()) self.hero.abilities.abilities[battle_abilities.HIT.get_id( )].level = battle_abilities.HIT.MAX_LEVEL logic.save_hero(self.hero) with mock.patch( 'the_tale.game.heroes.habilities.AbilitiesPrototype.get_for_choose', lambda x: [ABILITIES[task.ability_id]]): with mock.patch( 'the_tale.game.heroes.habilities.AbilitiesPrototype.can_choose_new_ability', True): self.assertEqual( task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.ALREADY_MAX_LEVEL)
def test_process_success(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id()) self.assertEqual( task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.SUCCESS) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.PROCESSED)
def test_process_wrong_id(self): task = ChooseHeroAbilityTask(self.hero.id, 'ssadasda') self.assertEqual( task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.WRONG_ID)
def test_serialization(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id()) self.assertEqual( task.serialize(), ChooseHeroAbilityTask.deserialize(task.serialize()).serialize())
def test_create(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id()) self.assertEqual(task.hero_id, self.hero.id) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.UNPROCESSED)
def test_process_success(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id()) self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.SUCCESS) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.PROCESSED)
def test_process_id_not_in_choices(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_unchoosed_ability_id()) self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.NOT_IN_CHOICE_LIST)
def test_process_wrong_id(self): task = ChooseHeroAbilityTask(self.hero.id, "ssadasda") self.assertEqual(task.process(FakePostpondTaskPrototype(), self.storage), POSTPONED_TASK_LOGIC_RESULT.ERROR) self.assertEqual(task.state, CHOOSE_HERO_ABILITY_STATE.WRONG_ID)
def test_serialization(self): task = ChooseHeroAbilityTask(self.hero.id, self.get_new_ability_id()) self.assertEqual(task.serialize(), ChooseHeroAbilityTask.deserialize(task.serialize()).serialize())