Add test for dynamic_format_arg_store's move ctor

This commit is contained in:
Luc Pelletier 2021-12-19 12:33:04 -05:00
parent 73732e19e9
commit 18764e4ac3

View File

@ -171,3 +171,21 @@ TEST(args_test, throw_on_copy) {
}
EXPECT_EQ(fmt::vformat("{}", store), "foo");
}
TEST(args_test, move_constructor) {
const int test_integer = 42;
const char* const test_c_string = "foo";
auto store_uptr =
std::make_unique<fmt::dynamic_format_arg_store<fmt::format_context>>();
store_uptr->push_back(test_integer);
store_uptr->push_back(std::string(test_c_string));
store_uptr->push_back(fmt::arg("a1", test_c_string));
fmt::dynamic_format_arg_store<fmt::format_context> moved_store(
std::move(*store_uptr));
store_uptr.reset();
EXPECT_EQ(
fmt::vformat("{} {} {a1}", moved_store),
std::to_string(test_integer) + " " + test_c_string + " " + test_c_string);
}