Ejemplo n.º 1
0
    def test_special_jack(self):
        # given
        self.game.table.append(
            makao.Card(makao.CardSuit.HEARTS, makao.CardValue.JACK))

        self.game.make_restriction(1, makao.CardValue.SIX)

        # when
        # puts jack
        expected_jack = 2
        output_jack = self.game.restriction(
            makao.Card(makao.CardSuit.SPADES, makao.CardValue.JACK),
            self.game.players[0])

        # puts illegal card
        output_illegal = self.game.restriction(
            makao.Card(makao.CardSuit.SPADES, makao.CardValue.THREE),
            self.game.players[0])

        # puts demanded card
        demand = makao.CardValue.SIX
        output_demand = self.game.restriction(
            makao.Card(makao.CardSuit.CLUBS, demand), self.game.players[0])

        # then
        self.assertEqual(output_jack, expected_jack)
        self.assertFalse(output_illegal)
        self.assertTrue(output_demand)
Ejemplo n.º 2
0
    def test_special_four(self):
        # given
        self.game.table.append(
            makao.Card(makao.CardSuit.DIAMONDS, makao.CardValue.FOUR))
        self.game.make_restriction(0)
        self.game.table.append(
            makao.Card(makao.CardSuit.SPADES, makao.CardValue.FOUR))
        self.game.make_restriction(0)

        # when
        expected_wait = 2
        output_wait = self.game.stops_pending

        # puts four
        output_four = self.game.restriction(
            makao.Card(makao.CardSuit.CLUBS, makao.CardValue.FOUR),
            self.game.players[1])

        # puts illegal card
        expected_illegal = -1
        output_illegal = self.game.restriction(
            makao.Card(makao.CardSuit.SPADES, makao.CardValue.QUEEN),
            self.game.players[1])

        # then
        self.assertEqual(output_wait, expected_wait)
        self.assertTrue(output_four)
        self.assertEqual(output_illegal, expected_illegal)
Ejemplo n.º 3
0
    def test_special_ace(self):
        # given
        self.game.table.append(
            makao.Card(makao.CardSuit.HEARTS, makao.CardValue.ACE))
        self.game.make_restriction(1, makao.CardSuit.SPADES)

        # when
        # puts ace
        expected_ace = 2
        output_ace = self.game.restriction(
            makao.Card(makao.CardSuit.CLUBS, makao.CardValue.ACE),
            self.game.players[0])

        # puts illegal card
        output_illegal = self.game.restriction(
            makao.Card(makao.CardSuit.HEARTS, makao.CardValue.FIVE),
            self.game.players[0])

        # puts demanded card
        demand = makao.CardSuit.SPADES
        output_demand = self.game.restriction(
            makao.Card(demand, makao.CardValue.EIGHT), self.game.players[0])

        # then
        self.assertEqual(output_ace, expected_ace)
        self.assertFalse(output_illegal)
        self.assertTrue(output_demand)
Ejemplo n.º 4
0
    def test_can_put_on_table(self):
        # given
        self.game.table.append(
            makao.Card(makao.CardSuit.HEARTS, makao.CardValue.FIVE))
        card_val = makao.Card(makao.CardSuit.SPADES, makao.CardValue.FIVE)
        card_suit = makao.Card(makao.CardSuit.HEARTS, makao.CardValue.EIGHT)
        card_not_playable = makao.Card(makao.CardSuit.CLUBS,
                                       makao.CardValue.SEVEN)

        # when
        output_is_playable_value = self.game.current().is_playable(card_val)
        output_is_playable_suit = self.game.current().is_playable(card_suit)
        output_is_not_playable = self.game.current().is_playable(
            card_not_playable)

        # then
        self.assertTrue(output_is_playable_value,
                        'Card should have the same value as the one on table')
        self.assertTrue(output_is_playable_suit,
                        'Card should have the same suit as the one on table')
        self.assertFalse(output_is_not_playable,
                         'Card should have same suit or value')
Ejemplo n.º 5
0
    def test_special_king(self):
        # given
        self.game.table.append(
            makao.Card(makao.CardSuit.HEARTS, makao.CardValue.KING))
        self.game.make_restriction(0)

        # when
        # cards to draw after two two's
        expected_draw = 5
        output_draw = self.game.card_pending

        # puts two of same suit
        output_two = self.game.restriction(
            makao.Card(makao.CardSuit.HEARTS, makao.CardValue.TWO),
            self.game.players[1])

        # puts three of same suit
        output_three = self.game.restriction(
            makao.Card(makao.CardSuit.HEARTS, makao.CardValue.THREE),
            self.game.players[1])

        # puts another special king
        output_king = self.game.restriction(
            makao.Card(makao.CardSuit.SPADES, makao.CardValue.KING),
            self.game.players[1])

        # puts two of other suit = illegal card
        expected_illegal = -1
        output_illegal = self.game.restriction(
            makao.Card(makao.CardSuit.CLUBS, makao.CardValue.TWO),
            self.game.players[1])

        # then
        self.assertEqual(output_draw, expected_draw)
        self.assertTrue(output_two)
        self.assertTrue(output_three)
        self.assertTrue(output_king)
        self.assertEqual(output_illegal, expected_illegal)