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

19
test/CMakeLists.txt Normal file
View File

@@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 4.0)
find_package(GTest REQUIRED)
set(CMAKE_CXX_STANDARD 26)
project(uno-game-test)
add_executable(uno-game-test unit/game/CardTest.cpp)
target_link_libraries(uno-game-test
PUBLIC uno-game-lib
)
target_link_libraries(uno-game-test
PRIVATE GTest::gtest
PRIVATE GTest::gtest_main
)
include(GoogleTest)
gtest_discover_tests(uno-game-test)

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);
}