diff --git a/unit-tests/deck.cpp b/unit-tests/deck.cpp index b7b08d5368178383b22a78f4043ebddf2a49e62e..7009acfd6e5542a36b69239124e3667ab59cd2db 100644 --- a/unit-tests/deck.cpp +++ b/unit-tests/deck.cpp @@ -10,7 +10,6 @@ TEST(DeckTest, Creation) { deck mydeck; ASSERT_EQ(mydeck.get_number_of_remaining_cards(), 60); EXPECT_TRUE(mydeck.is_empty() == false); - } // can draw trump from new deck @@ -18,9 +17,53 @@ TEST(DeckTest, TrumpDraw) { deck mydeck; card* trump; trump = mydeck.draw_trump(); + EXPECT_TRUE(trump); +} + +// draw cards to player, make sure proper number of cards +TEST(DeckTest, CardDraw) { + deck mydeck; + player* player1 = new player("player1"); + std::string err; + mydeck.draw_cards(player1, 5, err); + // check card numbers + ASSERT_EQ(mydeck.get_number_of_remaining_cards(), 55); + EXPECT_TRUE(mydeck.is_empty() == false); + + // check hand + ASSERT_EQ(player1->get_hand()->get_nof_cards(), 5); } +// Draw last few cards +TEST(DeckTest, DrawFinalCards) { + deck mydeck; + player* player1 = new player("player1"); + std::string err; + mydeck.draw_cards(player1, 60, err); + + // check card numbers + ASSERT_EQ(mydeck.get_number_of_remaining_cards(), 0); + EXPECT_TRUE(mydeck.is_empty() == true); + + // check hand + ASSERT_EQ(player1->get_hand()->get_nof_cards(), 60); + + // draw trump + ASSERT_EQ(mydeck.draw_trump(), nullptr); + +} + +// Drawing too many cards must fail +TEST(DeckTest, OverDraw) { + deck mydeck; + player* player1 = new player("player1"); + std::string err; + + + EXPECT_FALSE(mydeck.draw_cards(player1, 65, err)); + +} /* A test fixture allows us to reuse the same configuration of objects for all