| #include <msgpack.hpp> |
| #include <gtest/gtest.h> |
| |
| template <typename T> |
| void check_size(size_t size) { |
| T v(0); |
| msgpack::sbuffer sbuf; |
| msgpack::pack(sbuf, v); |
| EXPECT_EQ(size, sbuf.size()); |
| } |
| |
| TEST(fixint, size) |
| { |
| check_size<msgpack::type::fix_int8>(2); |
| check_size<msgpack::type::fix_int16>(3); |
| check_size<msgpack::type::fix_int32>(5); |
| check_size<msgpack::type::fix_int64>(9); |
| |
| check_size<msgpack::type::fix_uint8>(2); |
| check_size<msgpack::type::fix_uint16>(3); |
| check_size<msgpack::type::fix_uint32>(5); |
| check_size<msgpack::type::fix_uint64>(9); |
| } |
| |
| |
| template <typename T> |
| void check_convert() { |
| T v1(-11); |
| msgpack::sbuffer sbuf; |
| msgpack::pack(sbuf, v1); |
| |
| msgpack::unpacked msg; |
| msgpack::unpack(&msg, sbuf.data(), sbuf.size()); |
| |
| T v2; |
| msg.get().convert(v2); |
| |
| EXPECT_EQ(v1.get(), v2.get()); |
| |
| EXPECT_EQ(msg.get(), msgpack::object(T(v1.get()))); |
| } |
| |
| TEST(fixint, convert) |
| { |
| check_convert<msgpack::type::fix_int8>(); |
| check_convert<msgpack::type::fix_int16>(); |
| check_convert<msgpack::type::fix_int32>(); |
| check_convert<msgpack::type::fix_int64>(); |
| |
| check_convert<msgpack::type::fix_uint8>(); |
| check_convert<msgpack::type::fix_uint16>(); |
| check_convert<msgpack::type::fix_uint32>(); |
| check_convert<msgpack::type::fix_uint64>(); |
| } |