mirror of
https://github.com/kierankihn/uno-game.git
synced 2025-12-27 02:13:18 +08:00
test(game): add test cases for Card
This commit is contained in:
@@ -5,7 +5,6 @@ set(CMAKE_CXX_STANDARD 26)
|
|||||||
|
|
||||||
find_package(ftxui CONFIG REQUIRED)
|
find_package(ftxui CONFIG REQUIRED)
|
||||||
|
|
||||||
add_executable(uno-game src/main.cpp)
|
|
||||||
add_executable(uno-game src/main.cpp
|
add_executable(uno-game src/main.cpp
|
||||||
src/game/Card.cpp
|
src/game/Card.cpp
|
||||||
src/game/CardTile.cpp
|
src/game/CardTile.cpp
|
||||||
@@ -16,3 +15,10 @@ target_link_libraries(uno-game
|
|||||||
PRIVATE ftxui::dom
|
PRIVATE ftxui::dom
|
||||||
PRIVATE ftxui::component
|
PRIVATE ftxui::component
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_library(uno-game-lib src/game/Card.cpp
|
||||||
|
src/game/CardTile.cpp
|
||||||
|
src/common/utils.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_subdirectory(test)
|
||||||
19
test/CMakeLists.txt
Normal file
19
test/CMakeLists.txt
Normal 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)
|
||||||
63
test/unit/game/CardTest.cpp
Normal file
63
test/unit/game/CardTest.cpp
Normal 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);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user