def setUp(self) -> None:
     self.battle_field = BattleField()
     self.player1 = Advanced('John')
     self.player2 = Beginner('Mike')
     self.player1.card_repository.add(MagicCard('MagicCard1'))
     self.player1.card_repository.add(TrapCard('TrapCard1'))
     self.player2.card_repository.add(MagicCard('MagicCard2'))
     self.player2.card_repository.add(TrapCard('TrapCard2'))
 def test_fight_advanced_as_attacker_with_additional_cards_beginner(self):
     new_second_trap_card = TrapCard("KOZA_TRAP_SECOND")
     new_third_trap_card = TrapCard("KOZA_TRAP_THIRD")
     self.beginner_player.card_repository.add(new_second_trap_card)
     self.beginner_player.card_repository.add(new_third_trap_card)
     with self.assertRaises(Exception) as context:
         self.battle_field.fight(self.advanced_player, self.beginner_player)
     self.assertEqual(str(context.exception),
                      "Player's health bonus cannot be less than zero.")
Exemple #3
0
 def test_damage_and_health_with_cards_one_die(self):
     p1 = Beginner('One')
     p2 = Advanced('Two')
     p1.card_repository.add(TrapCard('magic1'))
     p1.card_repository.add(TrapCard('magic2'))
     p1.card_repository.add(TrapCard('magic3'))
     p2.card_repository.add(MagicCard('magic2'))
     with self.assertRaises(ValueError) as ex:
         self.bf.fight(p1, p2)
     self.assertEqual(str(ex.exception), "Player's health bonus cannot be less than zero.")
Exemple #4
0
 def test_helth_one_hero_die2(self):
     a = Advanced('A')
     e = Advanced('AA')
     # d- 120, h-5
     c_a = TrapCard('TrapCard')
     c_a.damage_points = 255
     c_e = TrapCard('TrapCard')
     a.card_repository.cards.append(c_a)
     e.card_repository.cards.append(c_e)
     self.b.fight(a, e)
     self.assertTrue(e.is_dead)
     self.assertEqual(a.health, 255)
    def test_battle_field_fight_method_when_player_dies(self):
        magic_card = MagicCard('Magic card')
        trap_card = TrapCard('Trap Card')
        trap_card2 = TrapCard('Trap Card2')

        self.beginner.card_repository.add(magic_card)
        self.enemy.card_repository.add(trap_card)
        self.enemy.card_repository.add(trap_card2)

        with self.assertRaises(Exception) as ex:
            self.battle_filed.fight(self.beginner, self.enemy)

        self.assertIsNotNone(str(ex.exception))
Exemple #6
0
 def test_helth_one_hero_die(self):
     a = Beginner('A')
     e = Advanced('AA')
     e.health = 1000
     # d- 120, h-5
     c_a = TrapCard('TrapCard')
     c_e = TrapCard('TrapCard')
     a.card_repository.cards.append(c_a)
     e.card_repository.cards.append(c_e)
     with self.assertRaises(ValueError) as ex:
         self.b.fight(a, e)
     self.assertEqual(str(ex.exception),
                      "Player's health bonus cannot be less than zero.")
Exemple #7
0
 def test_dead_player_while_fighing(self):
     advanced = Advanced("test")
     beginner = Beginner("test2")
     mc = MagicCard('testmagic')
     tc = TrapCard("testtrap")
     tc2 = TrapCard("testtrap1")
     advanced.card_repository.add(tc)
     advanced.card_repository.add(tc2)
     bf = BattleField()
     beginner.card_repository.add(mc)
     with self.assertRaises(ValueError) as ex:
         bf.fight(advanced, beginner)
     self.assertEqual(str(ex.exception),
                      "Player's health bonus cannot be less than zero.")
Exemple #8
0
    def add_card(self, type, name):
        if type == 'Magic':
            self.card_repository.add(MagicCard(name))
        elif type == "Trap":
            self.card_repository.add(TrapCard(name))

        return f"Successfully added card of type {type}Card with name: {name}"
Exemple #9
0
    def test_remove_card__expect_to_remove_card(self):
        card = TrapCard("trap")
        self.repository.add(card)

        self.repository.remove("trap")
        self.assertEqual([], self.repository.cards)
        self.assertEqual(0, self.repository.count)
Exemple #10
0
 def add_card(self, type_c: str, name: str):
     if type_c == "Magic":
         card = MagicCard(name)
     else:
         card = TrapCard(name)
     self.card_repository.add(card)
     return f"Successfully added card of type {type_c}Card with name: {name}"
 def test_final_fight_logic(self):
     ac = TrapCard('test')
     ec = MagicCard('test2')
     self.att.card_repository.add(ac)
     self.en.card_repository.add(ec)
     self.bf.fight(self.att, self.en)
     self.assertEqual(50, self.en.health)
    def setUp(self):
        self.controller = Controller()

        self.beginner = Beginner('Noob')
        self.advanced = Advanced('Pro')
        self.magic_card = MagicCard('Magic')
        self.trap_card = TrapCard('Trap')
Exemple #13
0
 def test_add_card_with_exists_name_should_raise_error(self):
     card = TrapCard('TrapCard')
     self.repo.add(card)
     with self.assertRaises(ValueError) as ex:
         self.repo.add(card)
     self.assertEqual(str(ex.exception), 'Card TrapCard already exists!')
     self.assertEqual(self.repo.count, 1)
Exemple #14
0
 def add_card(self, type, name):
     if type == 'Magic':
         card = MagicCard(name)
     else:
         card = TrapCard(name)
     self.card_repository.add(card)
     return f"Successfully added card of type {type}Card with name: {name}"
 def test_enemy_damage_attacker(self):
     trap_card = TrapCard('attacker')
     magic_card2 = MagicCard('enemy')
     self.attacker.card_repository.add(trap_card)
     self.enemy.card_repository.add(magic_card2)
     self.battle_field.fight(self.attacker, self.enemy)
     self.assertEqual(60, self.attacker.health)
Exemple #16
0
 def add_card(self, type, name):
     card = MagicCard(name) if type == "Magic" else TrapCard(name)
     # if type == "Magic":
     #     card = MagicCard(name)
     # else:
     #     card = TrapCard(name)
     self.card_repository.add(card)
     return f"Successfully added card of type {type}Card with name: {name}"
 def test_fight_two_begginer_players(self):
     new_beginner_player = Beginner("KOZA_BEGINNER_NEW")
     new_second_trap_card = TrapCard("KOZA_TRAP_SECOND")
     new_beginner_player.card_repository.add(new_second_trap_card)
     with self.assertRaises(Exception) as context:
         self.battle_field.fight(self.beginner_player, new_beginner_player)
     self.assertEqual(str(context.exception),
                      "Player's health bonus cannot be less than zero.")
Exemple #18
0
class TestTrapCard(TestCase):
    def setUp(self):
        self.trap_card = TrapCard('Test1')

    def test_attributes_are_set(self):
        self.assertEqual('Test1', self.trap_card.name)
        self.assertEqual(120, self.trap_card.damage_points)
        self.assertEqual(5, self.trap_card.health_points)

    def test_set_card_name_with_empty_string__raises(self):
        with self.assertRaises(ValueError) as ex:
            self.trap_card.name(card=TrapCard(''))
        self.assertEqual("Card's name cannot be an empty string.",
                         str(ex.exception))

    def test_check_class_name(self):
        self.assertEqual("TrapCard", self.trap_card.__class__.__name__)
 def test_fight_raise_enemy_health_with_sum_of_cards_health(self):
     magic_card = MagicCard('test')
     trap_card2 = TrapCard('test2')
     self.enemy.card_repository.add(magic_card)
     self.enemy.card_repository.add(trap_card2)
     sum_card_health = sum(
         [x.health_points for x in self.enemy.card_repository.cards])
     self.assertEqual(135, sum_card_health + self.enemy.health)
Exemple #20
0
 def setUp(self):
     self.attacker = Beginner("Bushido")
     self.enemy = Beginner("Onyx")
     self.attacker.card_repository.cards = [
         MagicCard("Some magic card"),
         TrapCard("Some trap card"),
         MagicCard("Some magic card"),
         TrapCard("Some trap card"),
         MagicCard("Some magic card"),
         TrapCard("Some trap card")
     ]
     self.enemy.card_repository.cards = [
         MagicCard("Some magic card"),
         TrapCard("Some trap card"),
         MagicCard("Some magic card"),
         TrapCard("Some trap card")
     ]
Exemple #21
0
 def test_helth_increase_beforo_fight_with_helth_of_card(self):
     a = Beginner('A')
     e = Advanced('AA')
     a.health = 1000
     # d- 120, h-5
     c_a = TrapCard('TrapCard')
     c_e = TrapCard('TrapCard')
     a.card_repository.cards.append(c_a)
     e.card_repository.cards.append(c_e)
     self.b.fight(a, e)
     self.assertEqual(sum(i.damage_points for i in a.card_repository.cards),
                      150)
     self.assertEqual(sum(i.damage_points for i in e.card_repository.cards),
                      120)
     self.assertEqual(a.health, 925)
     self.assertFalse(a.is_dead)
     self.assertFalse(e.is_dead)
Exemple #22
0
    def test_enemy_dies_in_battle(self):
        attacker = Advanced("Test1")
        enemy = Beginner("Test2")
        card = TrapCard("TrapTest")
        card_2 = TrapCard("TrapTest2")
        attacker.card_repository.add(card)
        attacker.card_repository.add(card_2)
        enemy.card_repository.add(card)
        self.assertEqual(attacker.health, 250)
        self.assertEqual(enemy.health, 50)
        enemy.health += 175
        BattleField.fight(attacker, enemy)
        self.assertEqual(attacker.health, 260)
        self.assertEqual(enemy.health, 0)

        self.assertFalse(attacker.is_dead)
        self.assertTrue(enemy.is_dead)
 def test_normal_fight_when_one_of_them_die(self):
     tc = TrapCard('tc')
     tc.damage_points += 400
     self.enemy.card_repository.add(tc)
     with self.assertRaises(ValueError) as exc:
         self.battlefield.fight(self.attacker, self.enemy)
     self.assertEqual("Player's health bonus cannot be less than zero.",
                      str(exc.exception))
Exemple #24
0
 def add_card(self, type: str, name: str):
     if type == 'Magic':
         card = MagicCard(name)
         self.card_repository.cards.append(card)
     else:
         card = TrapCard(name)
         self.card_repository.cards.append(card)
     return f"Successfully added card of type {type} with name: {name}"
 def setUp(self):
     self.battle_field = BattleField()
     self.beginner_player = Beginner("KOZA_BEGINNER")
     self.advanced_player = Advanced("KOZA_ADVANCED")
     self.new_trap_card = TrapCard("KOZA_TRAP")
     self.new_magic_card = MagicCard("KOZA_MAGIC")
     self.beginner_player.card_repository.add(self.new_trap_card)
     self.advanced_player.card_repository.add(self.new_magic_card)
Exemple #26
0
 def test_add_player_card(self):
     ctrl = Controller()
     p = Beginner('pname')
     c = TrapCard('cname')
     ctrl.player_repository.add(p)
     ctrl.card_repository.add(c)
     res = ctrl.add_player_card('pname', 'cname')
     self.assertEqual(res, "Successfully added card: cname to user: pname")
Exemple #27
0
 def test_add_when_card_is_not_exists_then_add_to_repo_cards_increase_count(
         self):
     # name, 120, 5
     card = TrapCard('TrapCard')
     self.repo.add(card)
     self.assertEqual(self.repo.cards[0], card)
     self.assertEqual(self.repo.count, 1)
     self.assertEqual(self.repo.cards[0].damage_points, 120)
     self.assertEqual(self.repo.cards[0].health_points, 5)
Exemple #28
0
    def add_card(self, type, name):
        # global card_to_add
        if type == "Magic":
            card_to_add = MagicCard(name)
        elif type == "Trap":
            card_to_add = TrapCard(name)

        self.card_repository.add(card_to_add)
        return f"Successfully added card of type {type}Card with name: {name}"
 def test_fight_raise_card_damage_points_when_beginner(self):
     magic_card = MagicCard('test')
     trap_card2 = TrapCard('test2')
     self.attacker.card_repository.add(magic_card)
     self.attacker.card_repository.add(trap_card2)
     total_cards = [
         x.damage_points + 30 for x in self.attacker.card_repository.cards
     ]
     self.assertEqual([35, 150], total_cards)
Exemple #30
0
 def add_card(self, type_c: str, name: str):
     # Creates a card with the provided type -> "Magic" or "Trap" and name.
     # The method should return the following message:
     # "Successfully added card of type {type}Card with name: {name}"
     if type_c == 'Magic':
         self.card_repository.add(MagicCard(name))
     elif type_c == 'Trap':
         self.card_repository.add(TrapCard(name))
     return f'Successfully added card of type {type_c}Card with name: {name}'