From 8bb425b47410c0f14ba88d3f46c833834a5c5ff0 Mon Sep 17 00:00:00 2001
From: Aidan Meara <aidan@Aidans-MacBook-Pro-2.local>
Date: Thu, 28 Nov 2024 17:22:11 +0100
Subject: [PATCH] wip

---
 unit-tests/deck.cpp | 45 ++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/unit-tests/deck.cpp b/unit-tests/deck.cpp
index b7b08d5..7009acf 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
-- 
GitLab