blob: 8c8169f5246ec2de52b3364e6db730b4540bf984 [file] [log] [blame]
Ed Tanousc9b55212017-06-12 13:25:51 -07001// Copyright (c) Benjamin Kietzman (github.com/bkietz)
2//
3// Distributed under the Boost Software License, Version 1.0. (See accompanying
4// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
Ed Tanousc9b55212017-06-12 13:25:51 -07006#include <dbus/connection.hpp>
7#include <dbus/endpoint.hpp>
Ed Tanous4d92cbf2017-06-22 15:41:02 -07008#include <dbus/error.hpp>
Ed Tanousc9b55212017-06-12 13:25:51 -07009#include <dbus/filter.hpp>
10#include <dbus/match.hpp>
11#include <dbus/message.hpp>
12#include <gtest/gtest.h>
13
14TEST(MessageTest, CallMessage) {
15 const dbus::message m =
16 dbus::message::new_call(dbus::endpoint("org.freedesktop.Avahi", "/",
17 "org.freedesktop.Avahi.Server"),
18 "GetHostName");
19
20 ASSERT_EQ("org.freedesktop.Avahi", m.get_destination());
21 ASSERT_EQ("/", m.get_path());
22 ASSERT_EQ("org.freedesktop.Avahi.Server", m.get_interface());
23 ASSERT_EQ("GetHostName", m.get_member());
24
25 dbus::message m2 =
26 dbus::message::new_call(dbus::endpoint("org.freedesktop.Avahi", "/",
27 "org.freedesktop.Avahi.Server"),
28 "GetHostName");
29
30 m2 << 1;
31 int i;
32 m2 >> i;
33 ASSERT_EQ(i, 1);
34
35 // m.get_sender();
36}
37
Ed Tanous4d92cbf2017-06-22 15:41:02 -070038TEST(MessageTest, Misc) {
39 auto signal_name = std::string("PropertiesChanged");
40 dbus::endpoint test_endpoint(
41 "org.freedesktop.Avahi",
42 "/xyz/openbmc_project/sensors/temperature/LR_Brd_Temp",
43 "org.freedesktop.DBus.Properties");
44 auto m = dbus::message::new_signal(test_endpoint, signal_name);
45
46 dbus::dbus_variant v(std::string("hello world"));
47 m.pack(v);
48
49 std::vector<dbus::dbus_variant> av{{std::string("hello world"), 1, 42}};
50 m.pack(av);
51}
52
Ed Tanousc9b55212017-06-12 13:25:51 -070053// I actually don't know what to do with these yet.
54/*
55TEST(MessageTest, ErrorMessage)
56{
57
58 dbus::message m = dbus::message::new_call(
59 dbus::endpoint(
60 "org.freedesktop.Avahi",
61 "/",
62 "org.freedesktop.Avahi.Server"),
63 "GetHostName");
64
65 m.set_reply_serial(42);
66 m.set_serial(43);
67
68 dbus::message em = dbus::message::new_error(
69 m,
70 "com.skizizo.NoHostname",
71 "No hostname for you!");
72
73 const error e(em);
74
75 e.throw_if_set();
76}
77*/