1b4041d44SPatrick Williams #include <sdbusplus/bus.hpp>
2b4041d44SPatrick Williams
3*95269dbcSPatrick Venture #include <gtest/gtest.h>
4*95269dbcSPatrick Venture
5b4041d44SPatrick Williams constexpr auto this_name = "xyz.openbmc_project.sdbusplus.test.ListNames";
6b4041d44SPatrick Williams
7b4041d44SPatrick Williams class ListNames : public ::testing::Test
8b4041d44SPatrick Williams {
9b4041d44SPatrick Williams protected:
10072da3eaSAndrew Geissler decltype(sdbusplus::bus::new_default()) bus = sdbusplus::bus::new_default();
11b4041d44SPatrick Williams };
12b4041d44SPatrick Williams
TEST_F(ListNames,NoServiceNameWithoutRequestName)13b4041d44SPatrick Williams TEST_F(ListNames, NoServiceNameWithoutRequestName)
14b4041d44SPatrick Williams {
15b4041d44SPatrick Williams auto names = bus.list_names_acquired();
16b4041d44SPatrick Williams
17072da3eaSAndrew Geissler EXPECT_EQ(names.cend(), std::find(names.cbegin(), names.cend(), this_name));
18b4041d44SPatrick Williams }
19b4041d44SPatrick Williams
TEST_F(ListNames,HasServiceNameAfterRequestName)20b4041d44SPatrick Williams TEST_F(ListNames, HasServiceNameAfterRequestName)
21b4041d44SPatrick Williams {
22b4041d44SPatrick Williams bus.request_name(this_name);
23b4041d44SPatrick Williams auto names = bus.list_names_acquired();
24b4041d44SPatrick Williams
25b4041d44SPatrick Williams auto i = std::find(names.cbegin(), names.cend(), this_name);
26b4041d44SPatrick Williams
27b4041d44SPatrick Williams ASSERT_NE(names.cend(), i);
28b4041d44SPatrick Williams EXPECT_EQ(this_name, *i);
29b4041d44SPatrick Williams }
30b4041d44SPatrick Williams
TEST_F(ListNames,HasUniqueName)31b4041d44SPatrick Williams TEST_F(ListNames, HasUniqueName)
32b4041d44SPatrick Williams {
33b4041d44SPatrick Williams auto names = bus.list_names_acquired();
34b4041d44SPatrick Williams
35b4041d44SPatrick Williams ASSERT_FALSE(bus.get_unique_name().empty());
36b4041d44SPatrick Williams EXPECT_NE(names.cend(),
37b4041d44SPatrick Williams std::find(names.cbegin(), names.cend(), bus.get_unique_name()));
38b4041d44SPatrick Williams }
39b4041d44SPatrick Williams
TEST_F(ListNames,HasDbusServer)40b4041d44SPatrick Williams TEST_F(ListNames, HasDbusServer)
41b4041d44SPatrick Williams {
42b4041d44SPatrick Williams auto names = bus.list_names_acquired();
43b4041d44SPatrick Williams
44b4041d44SPatrick Williams auto dbus_server = "org.freedesktop.DBus";
45b4041d44SPatrick Williams auto i = std::find(names.cbegin(), names.cend(), dbus_server);
46b4041d44SPatrick Williams
47b4041d44SPatrick Williams ASSERT_NE(names.cend(), i);
48b4041d44SPatrick Williams EXPECT_EQ(dbus_server, *i);
49b4041d44SPatrick Williams }
50