Skip to content

Commit a97c00e

Browse files
committed
Added msgpack::object cheking code before covert it.
1 parent e61cd76 commit a97c00e

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

test/user_class.cpp

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,34 @@ TEST(MSGPACK_NVP, combination)
561561

562562
msgpack::pack(sbuf, d1);
563563
msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size());
564-
nvp_derived d2 = oh.get().as<nvp_derived>();
564+
msgpack::object obj = oh.get();
565+
566+
EXPECT_EQ(obj.via.map.size, 3);
567+
568+
EXPECT_EQ(std::string(obj.via.map.ptr[0].key.via.str.ptr, obj.via.map.ptr[0].key.via.str.size), "ccc");
569+
EXPECT_EQ(obj.via.map.ptr[0].val.via.i64, 3);
570+
571+
EXPECT_EQ(std::string(obj.via.map.ptr[1].key.via.str.ptr, obj.via.map.ptr[1].key.via.str.size), "base");
572+
EXPECT_EQ(obj.via.map.ptr[1].val.via.map.size, 2);
573+
EXPECT_EQ(
574+
std::string(
575+
obj.via.map.ptr[1].val.via.map.ptr[0].key.via.str.ptr,
576+
obj.via.map.ptr[1].val.via.map.ptr[0].key.via.str.size),
577+
"aaa"
578+
);
579+
EXPECT_EQ(obj.via.map.ptr[1].val.via.map.ptr[0].val.via.i64, 1);
580+
EXPECT_EQ(
581+
std::string(
582+
obj.via.map.ptr[1].val.via.map.ptr[1].key.via.str.ptr,
583+
obj.via.map.ptr[1].val.via.map.ptr[1].key.via.str.size),
584+
"b"
585+
);
586+
EXPECT_EQ(obj.via.map.ptr[1].val.via.map.ptr[1].val.via.i64, 2);
587+
588+
EXPECT_EQ(std::string(obj.via.map.ptr[2].key.via.str.ptr, obj.via.map.ptr[2].key.via.str.size), "ddd");
589+
EXPECT_EQ(std::string(obj.via.map.ptr[2].val.via.str.ptr, obj.via.map.ptr[2].val.via.str.size), "ABC");
590+
591+
nvp_derived d2 = obj.as<nvp_derived>();
565592
EXPECT_EQ(d2.a, 1);
566593
EXPECT_EQ(d2.b, 2);
567594
EXPECT_EQ(d2.c, 3);

0 commit comments

Comments
 (0)