13b5db5bcSBenjamin Kietzman // Copyright (c) Benjamin Kietzman (github.com/bkietz) 23b5db5bcSBenjamin Kietzman // 33b5db5bcSBenjamin Kietzman // Distributed under the Boost Software License, Version 1.0. (See accompanying 43b5db5bcSBenjamin Kietzman // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 53b5db5bcSBenjamin Kietzman 6da3eeb6aSEd Tanous #include <dbus/connection.hpp> 7da3eeb6aSEd Tanous #include <dbus/endpoint.hpp> 8*82a51ce2SEd Tanous #include <dbus/error.hpp> 9da3eeb6aSEd Tanous #include <dbus/filter.hpp> 10da3eeb6aSEd Tanous #include <dbus/match.hpp> 11da3eeb6aSEd Tanous #include <dbus/message.hpp> 12da3eeb6aSEd Tanous #include <gtest/gtest.h> 133b5db5bcSBenjamin Kietzman 14da3eeb6aSEd Tanous TEST(MessageTest, CallMessage) { 15da3eeb6aSEd Tanous const dbus::message m = 16da3eeb6aSEd Tanous dbus::message::new_call(dbus::endpoint("org.freedesktop.Avahi", "/", 1716d80fe9SBenjamin Kietzman "org.freedesktop.Avahi.Server"), 183b5db5bcSBenjamin Kietzman "GetHostName"); 193b5db5bcSBenjamin Kietzman 203b5db5bcSBenjamin Kietzman ASSERT_EQ("org.freedesktop.Avahi", m.get_destination()); 213b5db5bcSBenjamin Kietzman ASSERT_EQ("/", m.get_path()); 223b5db5bcSBenjamin Kietzman ASSERT_EQ("org.freedesktop.Avahi.Server", m.get_interface()); 233b5db5bcSBenjamin Kietzman ASSERT_EQ("GetHostName", m.get_member()); 243b5db5bcSBenjamin Kietzman 25da3eeb6aSEd Tanous dbus::message m2 = 26da3eeb6aSEd Tanous dbus::message::new_call(dbus::endpoint("org.freedesktop.Avahi", "/", 2744d24258SBenjamin Kietzman "org.freedesktop.Avahi.Server"), 2844d24258SBenjamin Kietzman "GetHostName"); 2944d24258SBenjamin Kietzman 3044d24258SBenjamin Kietzman m2 << 1; 3144d24258SBenjamin Kietzman int i; 3244d24258SBenjamin Kietzman m2 >> i; 3344d24258SBenjamin Kietzman ASSERT_EQ(i, 1); 3444d24258SBenjamin Kietzman 353b5db5bcSBenjamin Kietzman // m.get_sender(); 363b5db5bcSBenjamin Kietzman } 374317e4d9SBenjamin Kietzman 38*82a51ce2SEd Tanous TEST(MessageTest, Misc) { 39*82a51ce2SEd Tanous auto signal_name = std::string("PropertiesChanged"); 40*82a51ce2SEd Tanous dbus::endpoint test_endpoint( 41*82a51ce2SEd Tanous "org.freedesktop.Avahi", 42*82a51ce2SEd Tanous "/xyz/openbmc_project/sensors/temperature/LR_Brd_Temp", 43*82a51ce2SEd Tanous "org.freedesktop.DBus.Properties"); 44*82a51ce2SEd Tanous auto m = dbus::message::new_signal(test_endpoint, signal_name); 45*82a51ce2SEd Tanous 46*82a51ce2SEd Tanous dbus::dbus_variant v(std::string("hello world")); 47*82a51ce2SEd Tanous m.pack(v); 48*82a51ce2SEd Tanous 49*82a51ce2SEd Tanous std::vector<dbus::dbus_variant> av{{std::string("hello world"), 1, 42}}; 50*82a51ce2SEd Tanous m.pack(av); 51*82a51ce2SEd Tanous } 52*82a51ce2SEd Tanous 534317e4d9SBenjamin Kietzman // I actually don't know what to do with these yet. 544317e4d9SBenjamin Kietzman /* 55da3eeb6aSEd Tanous TEST(MessageTest, ErrorMessage) 564317e4d9SBenjamin Kietzman { 574317e4d9SBenjamin Kietzman 58da3eeb6aSEd Tanous dbus::message m = dbus::message::new_call( 59da3eeb6aSEd Tanous dbus::endpoint( 604317e4d9SBenjamin Kietzman "org.freedesktop.Avahi", 614317e4d9SBenjamin Kietzman "/", 624317e4d9SBenjamin Kietzman "org.freedesktop.Avahi.Server"), 634317e4d9SBenjamin Kietzman "GetHostName"); 644317e4d9SBenjamin Kietzman 654317e4d9SBenjamin Kietzman m.set_reply_serial(42); 664317e4d9SBenjamin Kietzman m.set_serial(43); 674317e4d9SBenjamin Kietzman 68da3eeb6aSEd Tanous dbus::message em = dbus::message::new_error( 694317e4d9SBenjamin Kietzman m, 704317e4d9SBenjamin Kietzman "com.skizizo.NoHostname", 714317e4d9SBenjamin Kietzman "No hostname for you!"); 724317e4d9SBenjamin Kietzman 734317e4d9SBenjamin Kietzman const error e(em); 744317e4d9SBenjamin Kietzman 754317e4d9SBenjamin Kietzman e.throw_if_set(); 764317e4d9SBenjamin Kietzman } 774317e4d9SBenjamin Kietzman */ 78