diff options
author | Treeston <treeston.mmoc@gmail.com> | 2020-09-20 02:50:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-20 02:50:38 +0200 |
commit | 1eca51b417678b9a48b28552925d5694105f82bb (patch) | |
tree | 9ae5150e9efbd4f2ad2364922cab46093ee25419 /tests/game/ChatCommand.cpp | |
parent | a724903b8b307516780474dd23977d2a9b502eb5 (diff) |
[3.3.5] ChatCommands, the other half: chat command resolution refactor (PR #25463)
Diffstat (limited to 'tests/game/ChatCommand.cpp')
-rw-r--r-- | tests/game/ChatCommand.cpp | 26 |
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; + }); + } } |