blob: e779c794f6294451efae96a690d85b196704469a [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
Andrew Geissler072da3e2018-01-18 07:21:42 -08005template <typename... Args> auto dbus_string(Args&&... args)
Patrick Williams51103a42016-07-20 17:43:38 -05006{
Andrew Geissler072da3e2018-01-18 07:21:42 -08007 return std::string(sdbusplus::utility::tuple_to_array(
8 sdbusplus::message::types::type_id<Args...>())
9 .data());
Patrick Williams51103a42016-07-20 17:43:38 -050010}
11
Patrick Williams450d0ec2017-04-28 16:09:09 -050012TEST(MessageTypes, Integer)
Patrick Williams51103a42016-07-20 17:43:38 -050013{
Andrew Geissler072da3e2018-01-18 07:21:42 -080014 ASSERT_EQ(dbus_string(1), "i");
Patrick Williams450d0ec2017-04-28 16:09:09 -050015}
Patrick Williams51103a42016-07-20 17:43:38 -050016
Patrick Williams450d0ec2017-04-28 16:09:09 -050017TEST(MessageTypes, Double)
18{
19 ASSERT_EQ(dbus_string(1.0), "d");
20}
Patrick Williams51103a42016-07-20 17:43:38 -050021
Patrick Williams450d0ec2017-04-28 16:09:09 -050022TEST(MessageTypes, MultipleParameter)
23{
24 ASSERT_EQ(dbus_string(false, true), "bb");
25 ASSERT_EQ(dbus_string(1, 2, 3, true, 1.0), "iiibd");
26}
Patrick Williams51103a42016-07-20 17:43:38 -050027
Patrick Williams450d0ec2017-04-28 16:09:09 -050028TEST(MessageTypes, StringReferences)
29{
30 std::string a = "a";
31 std::string b = "b";
32 const char* c = "c";
Patrick Williams51103a42016-07-20 17:43:38 -050033
Patrick Williams450d0ec2017-04-28 16:09:09 -050034 ASSERT_EQ(dbus_string(a, std::move(b), c), "sss");
35}
Patrick Williams44982982017-01-06 16:02:37 -060036
Patrick Williams450d0ec2017-04-28 16:09:09 -050037TEST(MessageTypes, ObjectPath)
38{
39 ASSERT_EQ(dbus_string(sdbusplus::message::object_path("/asdf")), "o");
40}
Patrick Williams44982982017-01-06 16:02:37 -060041
Patrick Williams450d0ec2017-04-28 16:09:09 -050042TEST(MessageTypes, Signature)
43{
44 ASSERT_EQ(dbus_string(sdbusplus::message::signature("sss")), "g");
Patrick Williams51103a42016-07-20 17:43:38 -050045}