#include #include #include #include namespace sdbusplus { namespace utility { TEST(MakeDbusArgsTuple, MessageFirst) { std::tuple input_tuple; auto tuple_out = make_dbus_args_tuple(input_tuple); static_assert( std::is_same_v, int&>, "Second type wasn't int"); static_assert(std::tuple_size_v == 1, "Size was wrong"); // Verify the output reference is now the first member, and references the 2 // index tuple arg EXPECT_EQ(&std::get<2>(input_tuple), &std::get<0>(tuple_out)); } TEST(MakeDbusArgsTuple, ArgFirst) { std::tuple input_tuple{ boost::system::error_code(), 42}; auto tuple_out = make_dbus_args_tuple(input_tuple); static_assert( std::is_same_v, int&>, "Second type wasn't int"); static_assert(std::tuple_size_v == 1, "Size was wrong"); // Verify the output reference is now the first member, and references the 1 // index tuple arg EXPECT_EQ(&std::get<1>(input_tuple), &std::get<0>(tuple_out)); EXPECT_EQ(std::get<0>(tuple_out), 42); } TEST(MakeDbusArgsTuple, NoArgs) { std::tuple input_tuple; auto tuple_out = make_dbus_args_tuple(input_tuple); static_assert(std::tuple_size_v == 0, "Size was wrong"); } } // namespace utility } // namespace sdbusplus