Patrick Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 1 | #include <sdbusplus/message/types.hpp> |
| 2 | #include <sdbusplus/utility/tuple_to_array.hpp> |
| 3 | |
Patrick Venture | 95269db | 2018-08-31 09:19:17 -0700 | [diff] [blame] | 4 | #include <gtest/gtest.h> |
| 5 | |
Patrick Venture | 2b238af | 2018-08-31 12:45:01 -0700 | [diff] [blame] | 6 | template <typename... Args> |
Patrick Williams | 78b7803 | 2020-05-20 10:32:05 -0500 | [diff] [blame] | 7 | auto dbus_string(Args&&... /*args*/) |
Patrick Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 8 | { |
Andrew Geissler | 072da3e | 2018-01-18 07:21:42 -0800 | [diff] [blame] | 9 | return std::string(sdbusplus::utility::tuple_to_array( |
| 10 | sdbusplus::message::types::type_id<Args...>()) |
| 11 | .data()); |
Patrick Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 12 | } |
| 13 | |
Patrick Williams | 450d0ec | 2017-04-28 16:09:09 -0500 | [diff] [blame] | 14 | TEST(MessageTypes, Integer) |
Patrick Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 15 | { |
Andrew Geissler | 072da3e | 2018-01-18 07:21:42 -0800 | [diff] [blame] | 16 | ASSERT_EQ(dbus_string(1), "i"); |
Patrick Williams | 450d0ec | 2017-04-28 16:09:09 -0500 | [diff] [blame] | 17 | } |
Patrick Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 18 | |
Patrick Williams | 450d0ec | 2017-04-28 16:09:09 -0500 | [diff] [blame] | 19 | TEST(MessageTypes, Double) |
| 20 | { |
| 21 | ASSERT_EQ(dbus_string(1.0), "d"); |
| 22 | } |
Patrick Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 23 | |
Patrick Williams | 450d0ec | 2017-04-28 16:09:09 -0500 | [diff] [blame] | 24 | TEST(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 Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 29 | |
Patrick Williams | 450d0ec | 2017-04-28 16:09:09 -0500 | [diff] [blame] | 30 | TEST(MessageTypes, StringReferences) |
| 31 | { |
| 32 | std::string a = "a"; |
| 33 | std::string b = "b"; |
| 34 | const char* c = "c"; |
Patrick Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 35 | |
Patrick Williams | 450d0ec | 2017-04-28 16:09:09 -0500 | [diff] [blame] | 36 | ASSERT_EQ(dbus_string(a, std::move(b), c), "sss"); |
| 37 | } |
Patrick Williams | 4498298 | 2017-01-06 16:02:37 -0600 | [diff] [blame] | 38 | |
Patrick Williams | 450d0ec | 2017-04-28 16:09:09 -0500 | [diff] [blame] | 39 | TEST(MessageTypes, ObjectPath) |
| 40 | { |
| 41 | ASSERT_EQ(dbus_string(sdbusplus::message::object_path("/asdf")), "o"); |
| 42 | } |
Patrick Williams | 4498298 | 2017-01-06 16:02:37 -0600 | [diff] [blame] | 43 | |
Patrick Williams | 450d0ec | 2017-04-28 16:09:09 -0500 | [diff] [blame] | 44 | TEST(MessageTypes, Signature) |
| 45 | { |
| 46 | ASSERT_EQ(dbus_string(sdbusplus::message::signature("sss")), "g"); |
Patrick Williams | 51103a4 | 2016-07-20 17:43:38 -0500 | [diff] [blame] | 47 | } |
Patrick Williams | b98bdc6 | 2020-06-16 16:15:40 -0500 | [diff] [blame] | 48 | |
| 49 | TEST(MessageTypes, VectorOfString) |
| 50 | { |
| 51 | std::vector<std::string> s = {"a", "b"}; |
| 52 | |
| 53 | ASSERT_EQ(dbus_string(s), "as"); |
| 54 | } |
| 55 | |
| 56 | TEST(MessageTypes, SetOfString) |
| 57 | { |
| 58 | std::set<std::string> s = {"a", "b"}; |
| 59 | |
| 60 | ASSERT_EQ(dbus_string(s), "as"); |
| 61 | } |