From a97c00e46370f4ab8c0452f219311c68f2525bea Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Wed, 2 Nov 2016 08:53:14 +0900 Subject: [PATCH] Added msgpack::object cheking code before covert it. --- test/user_class.cpp | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/test/user_class.cpp b/test/user_class.cpp index d5750f5e..758de76e 100644 --- a/test/user_class.cpp +++ b/test/user_class.cpp @@ -561,7 +561,34 @@ TEST(MSGPACK_NVP, combination) msgpack::pack(sbuf, d1); msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size()); - nvp_derived d2 = oh.get().as(); + msgpack::object obj = oh.get(); + + EXPECT_EQ(obj.via.map.size, 3); + + EXPECT_EQ(std::string(obj.via.map.ptr[0].key.via.str.ptr, obj.via.map.ptr[0].key.via.str.size), "ccc"); + EXPECT_EQ(obj.via.map.ptr[0].val.via.i64, 3); + + EXPECT_EQ(std::string(obj.via.map.ptr[1].key.via.str.ptr, obj.via.map.ptr[1].key.via.str.size), "base"); + EXPECT_EQ(obj.via.map.ptr[1].val.via.map.size, 2); + EXPECT_EQ( + std::string( + obj.via.map.ptr[1].val.via.map.ptr[0].key.via.str.ptr, + obj.via.map.ptr[1].val.via.map.ptr[0].key.via.str.size), + "aaa" + ); + EXPECT_EQ(obj.via.map.ptr[1].val.via.map.ptr[0].val.via.i64, 1); + EXPECT_EQ( + std::string( + obj.via.map.ptr[1].val.via.map.ptr[1].key.via.str.ptr, + obj.via.map.ptr[1].val.via.map.ptr[1].key.via.str.size), + "b" + ); + EXPECT_EQ(obj.via.map.ptr[1].val.via.map.ptr[1].val.via.i64, 2); + + EXPECT_EQ(std::string(obj.via.map.ptr[2].key.via.str.ptr, obj.via.map.ptr[2].key.via.str.size), "ddd"); + EXPECT_EQ(std::string(obj.via.map.ptr[2].val.via.str.ptr, obj.via.map.ptr[2].val.via.str.size), "ABC"); + + nvp_derived d2 = obj.as(); EXPECT_EQ(d2.a, 1); EXPECT_EQ(d2.b, 2); EXPECT_EQ(d2.c, 3);