boost_string_view.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <msgpack.hpp>
  2. #include <sstream>
  3. #include <iterator>
  4. #include <gtest/gtest.h>
  5. #ifdef HAVE_CONFIG_H
  6. #include "config.h"
  7. #endif
  8. #if defined(MSGPACK_USE_BOOST)
  9. #if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 61
  10. TEST(MSGPACK_BOOST, pack_convert_string_view)
  11. {
  12. std::stringstream ss;
  13. std::string s = "ABC";
  14. boost::string_view val1(s);
  15. msgpack::pack(ss, val1);
  16. msgpack::object_handle oh;
  17. msgpack::unpack(oh, ss.str().data(), ss.str().size());
  18. boost::string_view val2 = oh.get().as<boost::string_view>();
  19. EXPECT_TRUE(val1 == val2);
  20. }
  21. TEST(MSGPACK_BOOST, object_strinf_view)
  22. {
  23. std::string s = "ABC";
  24. boost::string_view val1(s);
  25. msgpack::object obj(val1);
  26. boost::string_view val2 = obj.as<boost::string_view>();
  27. EXPECT_TRUE(val1 == val2);
  28. }
  29. TEST(MSGPACK_BOOST, object_with_zone_string_view)
  30. {
  31. msgpack::zone z;
  32. std::string s = "ABC";
  33. boost::string_view val1(s);
  34. msgpack::object obj(val1, z);
  35. boost::string_view val2 = obj.as<boost::string_view>();
  36. EXPECT_TRUE(val1 == val2);
  37. }
  38. #endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 61
  39. #endif // defined(MSGPACK_USE_BOOST)