blob: 327fe71b8516431a762f216a50582cb9c3a888c2 [file] [log] [blame]
Patrick Williams51103a42016-07-20 17:43:38 -05001#include <sdbusplus/message/types.hpp>
2#include <sdbusplus/utility/tuple_to_array.hpp>
3
Patrick Venture95269db2018-08-31 09:19:17 -07004#include <gtest/gtest.h>
5
Patrick Venture2b238af2018-08-31 12:45:01 -07006template <typename... Args>
7auto dbus_string(Args&&... args)
Patrick Williams51103a42016-07-20 17:43:38 -05008{
Andrew Geissler072da3e2018-01-18 07:21:42 -08009 return std::string(sdbusplus::utility::tuple_to_array(
10 sdbusplus::message::types::type_id<Args...>())
11 .data());
Patrick Williams51103a42016-07-20 17:43:38 -050012}
13
Patrick Williams450d0ec2017-04-28 16:09:09 -050014TEST(MessageTypes, Integer)
Patrick Williams51103a42016-07-20 17:43:38 -050015{
Andrew Geissler072da3e2018-01-18 07:21:42 -080016 ASSERT_EQ(dbus_string(1), "i");
Patrick Williams450d0ec2017-04-28 16:09:09 -050017}
Patrick Williams51103a42016-07-20 17:43:38 -050018
Patrick Williams450d0ec2017-04-28 16:09:09 -050019TEST(MessageTypes, Double)
20{
21 ASSERT_EQ(dbus_string(1.0), "d");
22}
Patrick Williams51103a42016-07-20 17:43:38 -050023
Patrick Williams450d0ec2017-04-28 16:09:09 -050024TEST(MessageTypes, MultipleParameter)
25{
26 ASSERT_EQ(dbus_string(false, true), "bb");
27 ASSERT_EQ(dbus_string(1, 2, 3, true, 1.0), "iiibd");
28}
Patrick Williams51103a42016-07-20 17:43:38 -050029
Patrick Williams450d0ec2017-04-28 16:09:09 -050030TEST(MessageTypes, StringReferences)
31{
32 std::string a = "a";
33 std::string b = "b";
34 const char* c = "c";
Patrick Williams51103a42016-07-20 17:43:38 -050035
Patrick Williams450d0ec2017-04-28 16:09:09 -050036 ASSERT_EQ(dbus_string(a, std::move(b), c), "sss");
37}
Patrick Williams44982982017-01-06 16:02:37 -060038
Patrick Williams450d0ec2017-04-28 16:09:09 -050039TEST(MessageTypes, ObjectPath)
40{
41 ASSERT_EQ(dbus_string(sdbusplus::message::object_path("/asdf")), "o");
42}
Patrick Williams44982982017-01-06 16:02:37 -060043
Patrick Williams450d0ec2017-04-28 16:09:09 -050044TEST(MessageTypes, Signature)
45{
46 ASSERT_EQ(dbus_string(sdbusplus::message::signature("sss")), "g");
Patrick Williams51103a42016-07-20 17:43:38 -050047}