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)
|
||||
|
||||
add_executable(uno-game src/main.cpp)
|
||||
add_executable(uno-game src/main.cpp
|
||||
src/game/Card.cpp
|
||||
src/game/CardTile.cpp
|
||||
@@ -15,4 +14,11 @@ target_link_libraries(uno-game
|
||||
PRIVATE ftxui::screen
|
||||
PRIVATE ftxui::dom
|
||||
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