| #include "src/processing.hpp" |
| #include "src/test/util/asio_server_class.hpp" |
| #include "src/test/util/association_objects.hpp" |
| |
| #include <gtest/gtest.h> |
| |
| class TestNameChange : public AsioServerClassTest |
| { |
| }; |
| sdbusplus::asio::object_server* TestNameChange::AsioServerClassTest::server = |
| nullptr; |
| |
| // Verify unique name is removed from nameOwners |
| TEST_F(TestNameChange, UniqueNameNoInterfaces) |
| { |
| boost::container::flat_map<std::string, std::string> nameOwners = { |
| {":1.99", "test-name"}}; |
| std::string wellKnown = {"test-name"}; |
| std::string oldOwner = {":1.99"}; |
| interface_map_type interfaceMap; |
| AssociationOwnersType assocOwners; |
| AssociationInterfaces assocInterfaces; |
| |
| processNameChangeDelete(nameOwners, wellKnown, oldOwner, interfaceMap, |
| assocOwners, assocInterfaces, *server); |
| EXPECT_EQ(nameOwners.size(), 0); |
| } |
| |
| // Verify path removed from interface map and association objects |
| TEST_F(TestNameChange, UniqueNameAssociationsAndInterface) |
| { |
| boost::container::flat_map<std::string, std::string> nameOwners = { |
| {":1.99", DEFAULT_DBUS_SVC}}; |
| std::string oldOwner = {":1.99"}; |
| boost::container::flat_set<std::string> assocInterfacesSet = { |
| assocDefsInterface}; |
| |
| // Build up these objects so that an associated interface will match |
| // with the associated owner being removed |
| auto assocOwners = createDefaultOwnerAssociation(); |
| auto assocInterfaces = createDefaultInterfaceAssociation(server); |
| auto interfaceMap = createInterfaceMap( |
| DEFAULT_SOURCE_PATH, DEFAULT_DBUS_SVC, assocInterfacesSet); |
| |
| processNameChangeDelete(nameOwners, DEFAULT_DBUS_SVC, oldOwner, |
| interfaceMap, assocOwners, assocInterfaces, |
| *server); |
| EXPECT_EQ(nameOwners.size(), 0); |
| |
| // Verify owner association was deleted |
| EXPECT_TRUE(assocOwners.empty()); |
| |
| // Verify endpoint was deleted from interface association |
| auto intfEndpoints = |
| std::get<endpointsPos>(assocInterfaces[DEFAULT_FWD_PATH]); |
| EXPECT_EQ(intfEndpoints.size(), 0); |
| intfEndpoints = std::get<endpointsPos>(assocInterfaces[DEFAULT_REV_PATH]); |
| EXPECT_EQ(intfEndpoints.size(), 0); |
| |
| // Verify interface map was deleted |
| EXPECT_TRUE(interfaceMap.empty()); |
| } |