test(game): add test cases for Card

This commit is contained in:
Kieran Kihn
2025-11-16 11:47:26 +08:00
parent acd0cae705
commit 1e49f5ffbb
3 changed files with 90 additions and 2 deletions

View File

@@ -0,0 +1,63 @@
/**
* @file
*
* @author Yuzhe Guo
* @date 2025.11.15
*/
#include "gtest/gtest.h"
#include "../../../src/game/Card.h"
TEST(card_test, card_test_1)
{
const UNO::GAME::Card card(UNO::GAME::CardColor::RED, UNO::GAME::CardType::NUM0);
EXPECT_EQ(card.getColor(), UNO::GAME::CardColor::RED);
EXPECT_EQ(card.getType(), UNO::GAME::CardType::NUM0);
EXPECT_EQ(card.colorToString(), std::string("Red"));
EXPECT_EQ(card.typeToString(), std::string("0"));
EXPECT_EQ(card.toString(), std::string("Red 0"));
}
TEST(card_test, card_test_2)
{
const UNO::GAME::Card card(UNO::GAME::CardColor::BLUE, UNO::GAME::CardType::REVERSE);
EXPECT_EQ(card.getColor(), UNO::GAME::CardColor::BLUE);
EXPECT_EQ(card.getType(), UNO::GAME::CardType::REVERSE);
EXPECT_EQ(card.colorToString(), std::string("Blue"));
EXPECT_EQ(card.typeToString(), std::string("Reverse"));
EXPECT_EQ(card.toString(), std::string("Blue Reverse"));
}
TEST(card_test, card_test_3)
{
const UNO::GAME::Card card(UNO::GAME::CardColor::WILD, UNO::GAME::CardType::WILD);
EXPECT_EQ(card.getColor(), UNO::GAME::CardColor::WILD);
EXPECT_EQ(card.getType(), UNO::GAME::CardType::WILD);
EXPECT_EQ(card.colorToString(), std::string("Wild"));
EXPECT_EQ(card.typeToString(), std::string("Wild"));
EXPECT_EQ(card.toString(), std::string("Wild"));
}
TEST(card_test, card_test_4)
{
const UNO::GAME::Card card(UNO::GAME::CardColor::WILD, UNO::GAME::CardType::WILDDRAWFOUR);
EXPECT_EQ(card.getColor(), UNO::GAME::CardColor::WILD);
EXPECT_EQ(card.getType(), UNO::GAME::CardType::WILDDRAWFOUR);
EXPECT_EQ(card.colorToString(), std::string("Wild"));
EXPECT_EQ(card.typeToString(), std::string("Wild Draw 4"));
EXPECT_EQ(card.toString(), std::string("Wild Draw 4"));
}
TEST(card_test, card_test_5)
{
EXPECT_THROW(UNO::GAME::Card(UNO::GAME::CardColor::WILD, UNO::GAME::CardType::NUM0), std::invalid_argument);
}
TEST(card_test, card_test_6)
{
EXPECT_THROW(UNO::GAME::Card(UNO::GAME::CardColor::RED, UNO::GAME::CardType::WILD), std::invalid_argument);
}