1 // 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 6 #include <dbus/connection.hpp> 7 #include <dbus/endpoint.hpp> 8 #include <dbus/error.hpp> 9 #include <dbus/filter.hpp> 10 #include <dbus/match.hpp> 11 #include <dbus/message.hpp> 12 #include <gtest/gtest.h> 13 14 TEST(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 38 TEST(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 53 // I actually don't know what to do with these yet. 54 /* 55 TEST(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 */ 78