blob: 29dad22b9a6c75a2ca9c5c9af54c37cc814a8729 [file] [log] [blame]
Patrick Williamsaa2e7f72017-01-06 16:52:45 -06001#include <map>
Patrick Venture95269db2018-08-31 09:19:17 -07002#include <sdbusplus/message.hpp>
Patrick Williamsaa2e7f72017-01-06 16:52:45 -06003#include <unordered_map>
Patrick Venture95269db2018-08-31 09:19:17 -07004#include <vector>
5
6#include <gtest/gtest.h>
Patrick Williams9db28642017-01-06 15:55:05 -06007
Patrick Williamsb77868a2017-04-28 16:24:23 -05008/* Suite tests that object_path and signature can be cleanly converted to
9 * and from strings and used as container parameters.
10 */
Brad Bishop33068472017-01-24 12:55:01 -050011
Patrick Williamsb77868a2017-04-28 16:24:23 -050012TEST(MessageNativeTypeConversions, ObjectPath)
Patrick Williams9db28642017-01-06 15:55:05 -060013{
14 std::string s1 = sdbusplus::message::object_path("/asdf/");
15 sdbusplus::message::object_path p = std::move(s1);
16
Patrick Williamsb77868a2017-04-28 16:24:23 -050017 ASSERT_EQ("/asdf/", p);
18 ASSERT_EQ(p, "/asdf/");
19}
20
21TEST(MessageNativeTypeConversions, Signature)
22{
Patrick Williams9db28642017-01-06 15:55:05 -060023 std::string s2 = sdbusplus::message::signature("iii");
24 sdbusplus::message::signature sig = s2;
25
Patrick Williamsb77868a2017-04-28 16:24:23 -050026 ASSERT_EQ(sig, s2);
27 ASSERT_EQ(s2, sig);
28}
Brad Bishop33068472017-01-24 12:55:01 -050029
Patrick Williamsb77868a2017-04-28 16:24:23 -050030TEST(MessageNativeTypeConversions, SignatureInVector)
31{
Andrew Geissler072da3e2018-01-18 07:21:42 -080032 std::vector<sdbusplus::message::signature> v = {
33 sdbusplus::message::signature("iii")};
Patrick Williamsaa2e7f72017-01-06 16:52:45 -060034
Patrick Williamsb77868a2017-04-28 16:24:23 -050035 ASSERT_EQ(v.front(), "iii");
36}
37
38TEST(MessageNativeTypeConversions, SignatureInMap)
39{
Andrew Geissler072da3e2018-01-18 07:21:42 -080040 std::map<sdbusplus::message::signature, int> m = {
41 {sdbusplus::message::signature("iii"), 1}};
Patrick Williamsaa2e7f72017-01-06 16:52:45 -060042
Patrick Williamsb77868a2017-04-28 16:24:23 -050043 ASSERT_EQ(m[sdbusplus::message::signature("iii")], 1);
44}
Patrick Williamsaa2e7f72017-01-06 16:52:45 -060045
Patrick Williamsb77868a2017-04-28 16:24:23 -050046TEST(MessageNativeTypeConversions, SignatureInUnorderedMap)
47{
Andrew Geissler072da3e2018-01-18 07:21:42 -080048 std::unordered_map<sdbusplus::message::signature, int> u = {
49 {sdbusplus::message::signature("iii"), 2}};
Patrick Williamsb77868a2017-04-28 16:24:23 -050050
51 ASSERT_EQ(u[sdbusplus::message::signature("iii")], 2);
Patrick Williams9db28642017-01-06 15:55:05 -060052}