aboutsummaryrefslogtreecommitdiff
path: root/tests/game/ChatCommand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/game/ChatCommand.cpp')
-rw-r--r--tests/game/ChatCommand.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/tests/game/ChatCommand.cpp b/tests/game/ChatCommand.cpp
index af5cfd783ad..ddf5bf32d08 100644
--- a/tests/game/ChatCommand.cpp
+++ b/tests/game/ChatCommand.cpp
@@ -31,10 +31,10 @@ struct DummyChatHandler : ChatHandler
};
template <typename F>
-static void TestChatCommand(char const* c, F f, Optional<bool> expected = true)
+static void TestChatCommand(std::string_view c, F f, Optional<bool> expected = true)
{
DummyChatHandler handler;
- bool r = ChatCommand("", 0, false, +f, "")(&handler, c);
+ bool r = Trinity::Impl::ChatCommands::CommandInvoker(*+f)(&handler, c);
if (expected)
REQUIRE(r == *expected);
}
@@ -111,4 +111,26 @@ TEST_CASE("Command argument parsing", "[ChatCommand]")
return true;
});
}
+
+ SECTION("Variant<>")
+ {
+ TestChatCommand("0x1ffff", [](ChatHandler*, Variant<uint16, uint32> v)
+ {
+ REQUIRE(v.holds_alternative<uint32>());
+ REQUIRE(v.get<uint32>() == 0x1ffff);
+ return true;
+ });
+ TestChatCommand("0xffff", [](ChatHandler*, Variant<uint16, uint32> v)
+ {
+ REQUIRE(v.holds_alternative<uint16>());
+ REQUIRE(v.get<uint16>() == 0xffff);
+ return true;
+ });
+ TestChatCommand("0x1ffff", [](ChatHandler*, Variant<uint32, uint16> v)
+ {
+ REQUIRE(v.holds_alternative<uint32>());
+ REQUIRE(v.get<uint32>() == 0x1ffff);
+ return true;
+ });
+ }
}