xref: /openbmc/sdbusplus/test/message/types.cpp (revision b98bdc6f)
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