blob: a6df2f4ed25226b9da698c9420a56caea19dd1ad [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
Andrew Geissler072da3e2018-01-18 07:21:42 -08006template <typename... Args> auto dbus_string(Args&&... args)
Patrick Williams51103a42016-07-20 17:43:38 -05007{
Andrew Geissler072da3e2018-01-18 07:21:42 -08008 return std::string(sdbusplus::utility::tuple_to_array(
9 sdbusplus::message::types::type_id<Args...>())
10 .data());
Patrick Williams51103a42016-07-20 17:43:38 -050011}
12
Patrick Williams450d0ec2017-04-28 16:09:09 -050013TEST(MessageTypes, Integer)
Patrick Williams51103a42016-07-20 17:43:38 -050014{
Andrew Geissler072da3e2018-01-18 07:21:42 -080015 ASSERT_EQ(dbus_string(1), "i");
Patrick Williams450d0ec2017-04-28 16:09:09 -050016}
Patrick Williams51103a42016-07-20 17:43:38 -050017
Patrick Williams450d0ec2017-04-28 16:09:09 -050018TEST(MessageTypes, Double)
19{
20 ASSERT_EQ(dbus_string(1.0), "d");
21}
Patrick Williams51103a42016-07-20 17:43:38 -050022
Patrick Williams450d0ec2017-04-28 16:09:09 -050023TEST(MessageTypes, MultipleParameter)
24{
25 ASSERT_EQ(dbus_string(false, true), "bb");
26 ASSERT_EQ(dbus_string(1, 2, 3, true, 1.0), "iiibd");
27}
Patrick Williams51103a42016-07-20 17:43:38 -050028
Patrick Williams450d0ec2017-04-28 16:09:09 -050029TEST(MessageTypes, StringReferences)
30{
31 std::string a = "a";
32 std::string b = "b";
33 const char* c = "c";
Patrick Williams51103a42016-07-20 17:43:38 -050034
Patrick Williams450d0ec2017-04-28 16:09:09 -050035 ASSERT_EQ(dbus_string(a, std::move(b), c), "sss");
36}
Patrick Williams44982982017-01-06 16:02:37 -060037
Patrick Williams450d0ec2017-04-28 16:09:09 -050038TEST(MessageTypes, ObjectPath)
39{
40 ASSERT_EQ(dbus_string(sdbusplus::message::object_path("/asdf")), "o");
41}
Patrick Williams44982982017-01-06 16:02:37 -060042
Patrick Williams450d0ec2017-04-28 16:09:09 -050043TEST(MessageTypes, Signature)
44{
45 ASSERT_EQ(dbus_string(sdbusplus::message::signature("sss")), "g");
Patrick Williams51103a42016-07-20 17:43:38 -050046}