151103a41SPatrick Williams #include <sdbusplus/message/types.hpp> 251103a41SPatrick Williams #include <sdbusplus/utility/tuple_to_array.hpp> 351103a41SPatrick Williams 495269dbcSPatrick Venture #include <gtest/gtest.h> 595269dbcSPatrick Venture 62b238afbSPatrick Venture template <typename... Args> 778b7803bSPatrick Williams auto dbus_string(Args&&... /*args*/) 851103a41SPatrick Williams { 9072da3eaSAndrew Geissler return std::string(sdbusplus::utility::tuple_to_array( 10072da3eaSAndrew Geissler sdbusplus::message::types::type_id<Args...>()) 11072da3eaSAndrew Geissler .data()); 1251103a41SPatrick Williams } 1351103a41SPatrick Williams 14450d0ecbSPatrick Williams TEST(MessageTypes, Integer) 1551103a41SPatrick Williams { 16450d0ecbSPatrick Williams ASSERT_EQ(dbus_string(1), "i"); 17450d0ecbSPatrick Williams } 1851103a41SPatrick Williams 19450d0ecbSPatrick Williams TEST(MessageTypes, Double) 20450d0ecbSPatrick Williams { 21450d0ecbSPatrick Williams ASSERT_EQ(dbus_string(1.0), "d"); 22450d0ecbSPatrick Williams } 2351103a41SPatrick Williams 24450d0ecbSPatrick Williams TEST(MessageTypes, MultipleParameter) 25450d0ecbSPatrick Williams { 26450d0ecbSPatrick Williams ASSERT_EQ(dbus_string(false, true), "bb"); 27450d0ecbSPatrick Williams ASSERT_EQ(dbus_string(1, 2, 3, true, 1.0), "iiibd"); 28450d0ecbSPatrick Williams } 2951103a41SPatrick Williams 30450d0ecbSPatrick Williams TEST(MessageTypes, StringReferences) 3151103a41SPatrick Williams { 3251103a41SPatrick Williams std::string a = "a"; 3351103a41SPatrick Williams std::string b = "b"; 3451103a41SPatrick Williams const char* c = "c"; 3551103a41SPatrick Williams 36450d0ecbSPatrick Williams ASSERT_EQ(dbus_string(a, std::move(b), c), "sss"); 3751103a41SPatrick Williams } 3844982981SPatrick Williams 39450d0ecbSPatrick Williams TEST(MessageTypes, ObjectPath) 40450d0ecbSPatrick Williams { 41450d0ecbSPatrick Williams ASSERT_EQ(dbus_string(sdbusplus::message::object_path("/asdf")), "o"); 42450d0ecbSPatrick Williams } 4344982981SPatrick Williams 44450d0ecbSPatrick Williams TEST(MessageTypes, Signature) 45450d0ecbSPatrick Williams { 46450d0ecbSPatrick Williams ASSERT_EQ(dbus_string(sdbusplus::message::signature("sss")), "g"); 4751103a41SPatrick Williams } 48*b98bdc6fSPatrick Williams 49*b98bdc6fSPatrick Williams TEST(MessageTypes, VectorOfString) 50*b98bdc6fSPatrick Williams { 51*b98bdc6fSPatrick Williams std::vector<std::string> s = {"a", "b"}; 52*b98bdc6fSPatrick Williams 53*b98bdc6fSPatrick Williams ASSERT_EQ(dbus_string(s), "as"); 54*b98bdc6fSPatrick Williams } 55*b98bdc6fSPatrick Williams 56*b98bdc6fSPatrick Williams TEST(MessageTypes, SetOfString) 57*b98bdc6fSPatrick Williams { 58*b98bdc6fSPatrick Williams std::set<std::string> s = {"a", "b"}; 59*b98bdc6fSPatrick Williams 60*b98bdc6fSPatrick Williams ASSERT_EQ(dbus_string(s), "as"); 61*b98bdc6fSPatrick Williams } 62