1#include <msgpack.hpp> 2#include <gtest/gtest.h> 3 4template <typename T> 5void check_size(size_t size) { 6 T v(0); 7 msgpack::sbuffer sbuf; 8 msgpack::pack(sbuf, v); 9 EXPECT_EQ(size, sbuf.size()); 10} 11 12TEST(fixint, size) 13{ 14 check_size<msgpack::type::fix_int8>(2); 15 check_size<msgpack::type::fix_int16>(3); 16 check_size<msgpack::type::fix_int32>(5); 17 check_size<msgpack::type::fix_int64>(9); 18 19 check_size<msgpack::type::fix_uint8>(2); 20 check_size<msgpack::type::fix_uint16>(3); 21 check_size<msgpack::type::fix_uint32>(5); 22 check_size<msgpack::type::fix_uint64>(9); 23} 24 25 26template <typename T> 27void check_convert() { 28 T v1(-11); 29 msgpack::sbuffer sbuf; 30 msgpack::pack(sbuf, v1); 31 32 msgpack::unpacked msg; 33 msgpack::unpack(&msg, sbuf.data(), sbuf.size()); 34 35 T v2; 36 msg.get().convert(v2); 37 38 EXPECT_EQ(v1.get(), v2.get()); 39 40 EXPECT_EQ(msg.get(), msgpack::object(T(v1.get()))); 41} 42 43TEST(fixint, convert) 44{ 45 check_convert<msgpack::type::fix_int8>(); 46 check_convert<msgpack::type::fix_int16>(); 47 check_convert<msgpack::type::fix_int32>(); 48 check_convert<msgpack::type::fix_int64>(); 49 50 check_convert<msgpack::type::fix_uint8>(); 51 check_convert<msgpack::type::fix_uint16>(); 52 check_convert<msgpack::type::fix_uint32>(); 53 check_convert<msgpack::type::fix_uint64>(); 54} 55