bus: add wrapper for sd_bus_list_names
Change-Id: I94467376e89cc813e270cbbe27b83c4415bb9d85
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/test/bus/list_names.cpp b/test/bus/list_names.cpp
new file mode 100644
index 0000000..65333b7
--- /dev/null
+++ b/test/bus/list_names.cpp
@@ -0,0 +1,51 @@
+#include <gtest/gtest.h>
+#include <sdbusplus/bus.hpp>
+
+constexpr auto this_name = "xyz.openbmc_project.sdbusplus.test.ListNames";
+
+class ListNames : public ::testing::Test
+{
+ protected:
+ decltype(sdbusplus::bus::new_default()) bus =
+ sdbusplus::bus::new_default();
+};
+
+TEST_F(ListNames, NoServiceNameWithoutRequestName)
+{
+ auto names = bus.list_names_acquired();
+
+ EXPECT_EQ(names.cend(),
+ std::find(names.cbegin(), names.cend(), this_name));
+}
+
+TEST_F(ListNames, HasServiceNameAfterRequestName)
+{
+ bus.request_name(this_name);
+ auto names = bus.list_names_acquired();
+
+ auto i = std::find(names.cbegin(), names.cend(), this_name);
+
+ ASSERT_NE(names.cend(), i);
+ EXPECT_EQ(this_name, *i);
+}
+
+TEST_F(ListNames, HasUniqueName)
+{
+ auto names = bus.list_names_acquired();
+
+ ASSERT_FALSE(bus.get_unique_name().empty());
+ EXPECT_NE(names.cend(),
+ std::find(names.cbegin(), names.cend(), bus.get_unique_name()));
+}
+
+
+TEST_F(ListNames, HasDbusServer)
+{
+ auto names = bus.list_names_acquired();
+
+ auto dbus_server = "org.freedesktop.DBus";
+ auto i = std::find(names.cbegin(), names.cend(), dbus_server);
+
+ ASSERT_NE(names.cend(), i);
+ EXPECT_EQ(dbus_server, *i);
+}