blob: eed76694e75a054cf6891afea623e175bb222735 [file] [log] [blame]
Patrick Williamsb77868a2017-04-28 16:24:23 -05001#include <gtest/gtest.h>
Patrick Williams9db28642017-01-06 15:55:05 -06002#include <sdbusplus/message.hpp>
Patrick Williamsaa2e7f72017-01-06 16:52:45 -06003#include <vector>
4#include <map>
5#include <unordered_map>
Patrick Williams9db28642017-01-06 15:55:05 -06006
Patrick Williamsb77868a2017-04-28 16:24:23 -05007/* Suite tests that object_path and signature can be cleanly converted to
8 * and from strings and used as container parameters.
9 */
Brad Bishop33068472017-01-24 12:55:01 -050010
Patrick Williamsb77868a2017-04-28 16:24:23 -050011TEST(MessageNativeTypeConversions, ObjectPath)
Patrick Williams9db28642017-01-06 15:55:05 -060012{
13 std::string s1 = sdbusplus::message::object_path("/asdf/");
14 sdbusplus::message::object_path p = std::move(s1);
15
Patrick Williamsb77868a2017-04-28 16:24:23 -050016 ASSERT_EQ("/asdf/", p);
17 ASSERT_EQ(p, "/asdf/");
18}
19
20TEST(MessageNativeTypeConversions, Signature)
21{
Patrick Williams9db28642017-01-06 15:55:05 -060022 std::string s2 = sdbusplus::message::signature("iii");
23 sdbusplus::message::signature sig = s2;
24
Patrick Williamsb77868a2017-04-28 16:24:23 -050025 ASSERT_EQ(sig, s2);
26 ASSERT_EQ(s2, sig);
27}
Brad Bishop33068472017-01-24 12:55:01 -050028
Patrick Williamsb77868a2017-04-28 16:24:23 -050029TEST(MessageNativeTypeConversions, SignatureInVector)
30{
Andrew Geissler072da3e2018-01-18 07:21:42 -080031 std::vector<sdbusplus::message::signature> v = {
32 sdbusplus::message::signature("iii")};
Patrick Williamsaa2e7f72017-01-06 16:52:45 -060033
Patrick Williamsb77868a2017-04-28 16:24:23 -050034 ASSERT_EQ(v.front(), "iii");
35}
36
37TEST(MessageNativeTypeConversions, SignatureInMap)
38{
Andrew Geissler072da3e2018-01-18 07:21:42 -080039 std::map<sdbusplus::message::signature, int> m = {
40 {sdbusplus::message::signature("iii"), 1}};
Patrick Williamsaa2e7f72017-01-06 16:52:45 -060041
Patrick Williamsb77868a2017-04-28 16:24:23 -050042 ASSERT_EQ(m[sdbusplus::message::signature("iii")], 1);
43}
Patrick Williamsaa2e7f72017-01-06 16:52:45 -060044
Patrick Williamsb77868a2017-04-28 16:24:23 -050045TEST(MessageNativeTypeConversions, SignatureInUnorderedMap)
46{
Andrew Geissler072da3e2018-01-18 07:21:42 -080047 std::unordered_map<sdbusplus::message::signature, int> u = {
48 {sdbusplus::message::signature("iii"), 2}};
Patrick Williamsb77868a2017-04-28 16:24:23 -050049
50 ASSERT_EQ(u[sdbusplus::message::signature("iii")], 2);
Patrick Williams9db28642017-01-06 15:55:05 -060051}