diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index af86281..c9bd36c 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,6 +7,7 @@ project(uno-game-test) add_executable(uno-game-test unit/game/CardTest.cpp unit/game/CardTileTest.cpp + unit/game/PlayerTest.cpp ) target_link_libraries(uno-game-test diff --git a/test/unit/game/PlayerTest.cpp b/test/unit/game/PlayerTest.cpp new file mode 100644 index 0000000..bab3955 --- /dev/null +++ b/test/unit/game/PlayerTest.cpp @@ -0,0 +1,40 @@ +/** + * @file PlayerTest.cpp + * + * @author Yuzhe Guo + * @date 2025.11.16 + */ + +#include "../../../src/game/Card.h" +#include "../../../src/game/Player.h" + +#include + +TEST(player_test, player_test_1) +{ + UNO::GAME::HandCard handCard(std::array{ + UNO::GAME::Card(UNO::GAME::CardColor::BLUE, UNO::GAME::CardType::REVERSE), + UNO::GAME::Card(UNO::GAME::CardColor::RED, UNO::GAME::CardType::SKIP), + UNO::GAME::Card(UNO::GAME::CardColor::BLUE, UNO::GAME::CardType::NUM3), + UNO::GAME::Card(UNO::GAME::CardColor::WILD, UNO::GAME::CardType::WILDDRAWFOUR), + UNO::GAME::Card(UNO::GAME::CardColor::GREEN, UNO::GAME::CardType::NUM9), + UNO::GAME::Card(UNO::GAME::CardColor::RED, UNO::GAME::CardType::NUM1), + UNO::GAME::Card(UNO::GAME::CardColor::WILD, UNO::GAME::CardType::WILD) + }); + + ASSERT_EQ(handCard.getCards().begin()->getColor(), UNO::GAME::CardColor::RED); + ASSERT_EQ(handCard.getCards().begin()->getType(), UNO::GAME::CardType::NUM1); + + handCard.play(handCard.getCards().begin()); + + ASSERT_EQ(handCard.getCards().begin()->getColor(), UNO::GAME::CardColor::RED); + ASSERT_EQ(handCard.getCards().begin()->getType(), UNO::GAME::CardType::SKIP); + + handCard.draw(UNO::GAME::Card(UNO::GAME::CardColor::RED, UNO::GAME::CardType::NUM0)); + + ASSERT_EQ(handCard.getCards().begin()->getColor(), UNO::GAME::CardColor::RED); + ASSERT_EQ(handCard.getCards().begin()->getType(), UNO::GAME::CardType::NUM0); + + ASSERT_EQ(handCard.isEmpty(), false); + +} \ No newline at end of file