def test_find_method_finds_the_card(self):
     self.magic_card = MagicCard("Michelin")
     self.magic_card_2 = MagicCard("Dongle")
     self.card_repository.add(self.magic_card)
     self.card_repository.add(self.magic_card_2)
     self.assertEqual(self.card_repository.find("Michelin"),
                      self.magic_card)
 def test_add_method_add_card_when_unique(self):
     card_repository = CardRepository()
     magic_card_1 = MagicCard('test')
     magic_card_2 = MagicCard('test2')
     card_repository.add(magic_card_1)
     card_repository.add(magic_card_2)
     self.assertEqual(2, card_repository.count)
예제 #3
0
 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_remove_card_successful(self):
     self.magic_card = MagicCard("Michelin")
     self.magic_card_2 = MagicCard("Dongle")
     self.card_repository.add(self.magic_card)
     self.card_repository.add(self.magic_card_2)
     self.card_repository.remove("Michelin")
     self.assertEqual(self.card_repository.cards, [self.magic_card_2])
     self.assertEqual(self.card_repository.count, 1)
예제 #5
0
 def setUp(self):
     self.attacker = Advanced('I am attacker')
     mc = MagicCard('carte non-magique')
     self.attacker.card_repository.add(mc)
     self.enemy = Beginner('I am enemy')
     mc1 = MagicCard('catre magique')
     self.enemy.card_repository.add(mc1)
     self.battlefield = BattleField()
예제 #6
0
    def test_add__when_card_invalid__expect_exception(self) -> None:
        card1 = MagicCard('Card')
        card2 = MagicCard('Card')
        self.card_repository.add(card1)
        with self.assertRaises(ValueError) as context:
            self.card_repository.add(card2)

        self.assertEqual(context.exception.args[0],
                         'Card Card already exists!')
예제 #7
0
    def test_damage_and_health_with_cards(self):
        p1 = Beginner('One')
        p2 = Advanced('Two')
        p1.card_repository.add(MagicCard('magic1'))
        p2.card_repository.add(MagicCard('magic2'))
        self.bf.fight(p1, p2)

        self.assertEqual(p1.health, 165)
        self.assertEqual(p2.health, 295)
예제 #8
0
 def test_enemy_beginner_should_increase_attributes(self):
     bf = BattleField()
     p1 = Beginner("Peter")
     p2 = Beginner("George")
     mg1 = MagicCard("Magic One")
     mg2 = MagicCard("Magic Two")
     p2.card_repository.add(mg1)
     p2.card_repository.add(mg2)
     bf.fight(p2, p1)
     self.assertEqual(p2.health, 250)
 def test_fight(self):
     attacker = Advanced('p1')
     enemy = Advanced('p2')
     ac = MagicCard('card1')
     attacker.card_repository.add(ac)
     ec = MagicCard('card2')
     enemy.card_repository.add(ec)
     self.ctrl.player_repository.add(attacker)
     self.ctrl.player_repository.add(enemy)
     expected = "Attack user health 325 - Enemy user health 325"
     self.assertEqual(expected, self.ctrl.fight('p1', 'p2'))
예제 #10
0
 def test_player_dies_in_fight(self):
     bf = BattleField()
     mg1 = MagicCard("Magic One")
     mg2 = MagicCard("Magic Two")
     p1 = Beginner("Peter")
     p2 = Beginner("George")
     p1.card_repository.add(mg1)
     p1.card_repository.add(mg2)
     bf.fight(p1, p2)
     with self.assertRaises(ValueError) as cm:
         bf.fight(p1, p2)
     self.assertEqual(str(cm.exception),
                      "Player's health bonus cannot be less than zero.")
 def test_add_player_card(self):
     pl = Beginner('beg')
     crd = MagicCard('mc')
     self.ctrl.player_repository.add(pl)
     self.ctrl.card_repository.add(crd)
     res = self.ctrl.add_player_card('beg', 'mc')
     self.assertEqual("Successfully added card: mc to user: beg", res)
 def test_add_card_raise_value_error(self):
     self.magic_card = MagicCard("Michelin")
     self.card_repository.add(self.magic_card)
     with self.assertRaises(ValueError) as exc:
         self.card_repository.add(self.magic_card)
     msg = f"Card {self.magic_card.name} already exists!"
     self.assertEqual(str(exc.exception), msg)
예제 #13
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}"
 def test_add_existing_card_should_raise_error(self):
     cr = CardRepository()
     card = MagicCard("Magic")
     cr.cards.append(card)
     with self.assertRaises(ValueError) as cm:
         cr.add(card)
     self.assertEqual(str(cm.exception), "Card Magic already exists!")
예제 #15
0
 def test_add__when_card_exists__expect_to_raise_exception(self):
     card = MagicCard('Fire')
     self.card_repo.add(card)
     with self.assertRaises(ValueError) as ex:
         self.card_repo.add(card)
     expect = 'Card Fire already exists!'
     self.assertEqual(expect, str(ex.exception))
 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)
 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)
예제 #18
0
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_add_player_card(self):
     card = MagicCard('test')
     player = Beginner('name')
     self.ctrl.card_repository.add(card)
     self.ctrl.player_repository.add(player)
     expected = self.ctrl.add_player_card('name', 'test')
     self.assertEqual(expected, "Successfully added card: test to user: name")
예제 #20
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}"
예제 #21
0
 def test_add_raises(self):
     repo = CardRepository()
     c = MagicCard('test')
     repo.add(c)
     with self.assertRaises(ValueError) as ex:
         repo.add(c)
     self.assertEqual(str(ex.exception), "Card test already exists!")
예제 #22
0
    def test_fight_valid_data_should_work_correctly(self):
        battlefield = BattleField()

        attacker = Advanced("Dave")
        enemy = Advanced("John")

        first_card = MagicCard("Magic")
        second_card = MagicCard("Magic")

        attacker.card_repository.cards.append(first_card)
        enemy.card_repository.cards.append(second_card)

        battlefield.fight(attacker, enemy)

        self.assertEqual(attacker.health, 325)
        self.assertEqual(enemy.health, 325)
 def test_remove_card_raises_value_error_card_not_in_repository(self):
     self.magic_card = MagicCard("Michelin")
     self.card_repository.add(self.magic_card)
     with self.assertRaises(ValueError) as exc:
         self.card_repository.remove("")
     msg = "Card cannot be an empty string!"
     self.assertEqual(str(exc.exception), msg)
    def setUp(self):
        self.controller = Controller()

        self.beginner = Beginner('Noob')
        self.advanced = Advanced('Pro')
        self.magic_card = MagicCard('Magic')
        self.trap_card = TrapCard('Trap')
 def test_add_method_raise_ex_when_card_already_exist(self):
     with self.assertRaises(Exception) as ex:
         card_repository = CardRepository()
         magic_card_1 = MagicCard('test')
         card_repository.add(magic_card_1)
         card_repository.add(magic_card_1)
     self.assertIsNotNone(ex.exception)
예제 #26
0
    def test_fight_invalid_data_should_raise_error(self):
        battlefield = BattleField()

        attacker = Advanced("Dave")
        enemy = Advanced("John")

        first_card = MagicCard("Magic")
        second_card = MagicCard("Magic")

        attacker.card_repository.cards.append(first_card)
        enemy.card_repository.cards.append(second_card)

        attacker.take_damage(250)

        with self.assertRaises(ValueError):
            battlefield.fight(attacker, enemy)
예제 #27
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}"
예제 #28
0
 def test_remove(self):
     card = MagicCard("Exodia")
     self.cr.cards.append(card)
     self.cr.count = 1
     self.cr.remove("Exodia")
     self.assertEqual([], self.cr.cards)
     self.assertEqual(0, self.cr.count)
예제 #29
0
    def test_remove__when_card_invalid__expect_exception(self) -> None:
        card = MagicCard('Card')
        self.card_repository.add(card)
        with self.assertRaises(ValueError) as context:
            self.card_repository.remove('')

        self.assertEqual(context.exception.args[0],
                         'Card cannot be an empty string!')
예제 #30
0
 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)