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);
+}