mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
[3.3.5] ChatCommands, the other half: chat command resolution refactor (PR #25463)
(cherry picked from commit 1eca51b417)
This commit is contained in:
@@ -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;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user