blob: 604996e2e055883a8097323b05a4f7b0695574ae [file] [log] [blame]
Patrick Williams450d0ec2017-04-28 16:09:09 -05001#include <gtest/gtest.h>
Patrick Williams51103a42016-07-20 17:43:38 -05002#include <sdbusplus/message/types.hpp>
3#include <sdbusplus/utility/tuple_to_array.hpp>
4
5template <typename ...Args>
6auto dbus_string(Args&& ... args)
7{
8 return std::string(
9 sdbusplus::utility::tuple_to_array(
10 sdbusplus::message::types::type_id<Args...>()).data());
11}
12
Patrick Williams450d0ec2017-04-28 16:09:09 -050013TEST(MessageTypes, Integer)
Patrick Williams51103a42016-07-20 17:43:38 -050014{
Patrick Williams450d0ec2017-04-28 16:09:09 -050015 ASSERT_EQ(dbus_string(1),"i");
16}
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}