blob: 3b46457a51465d4248960cf5f1f1e0c08f13b367 [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{
Patrick Williamsaa2e7f72017-01-06 16:52:45 -060031 std::vector<sdbusplus::message::signature> v =
32 { sdbusplus::message::signature("iii") };
33
Patrick Williamsb77868a2017-04-28 16:24:23 -050034 ASSERT_EQ(v.front(), "iii");
35}
36
37TEST(MessageNativeTypeConversions, SignatureInMap)
38{
Patrick Williamsaa2e7f72017-01-06 16:52:45 -060039 std::map<sdbusplus::message::signature, int> m =
40 { { sdbusplus::message::signature("iii"), 1 } };
41
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{
47 std::unordered_map<sdbusplus::message::signature, int> u =
48 { { sdbusplus::message::signature("iii"), 2 } };
49
50 ASSERT_EQ(u[sdbusplus::message::signature("iii")], 2);
Patrick Williams9db28642017-01-06 15:55:05 -060051}