unit-test: Move checkAssociationEndpointRemoves

Make it easier to unit test and continue reduction of main.cpp

Change-Id: Id4f4c4fc1e3928f1b600555c6dbe05f651fffce5
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/src/associations.hpp b/src/associations.hpp
index d926006..7fa15ab 100644
--- a/src/associations.hpp
+++ b/src/associations.hpp
@@ -76,3 +76,29 @@
     sdbusplus::asio::object_server& objectServer, const std::string& assocPath,
     const boost::container::flat_set<std::string>& endpointsToRemove,
     AssociationInterfaces& assocInterfaces);
+
+/** @brief Check and remove any changed associations
+ *
+ * Based on the latest values of the org.openbmc.Associations.associations
+ * property, passed in via the newAssociations param, check if any of the
+ * paths in the xyz.openbmc_project.Association.endpoints D-Bus property
+ * for that association need to be removed.  If the last path is removed
+ * from the endpoints property, remove that whole association object from
+ * D-Bus.
+ *
+ * @param[in] sourcePath         - Path of the object that contains the
+ *                                 org.openbmc.Associations
+ * @param[in] owner              - The Dbus service having it's associatons
+ *                                 changed
+ * @param[in] newAssociations    - New associations to look at for change
+ * @param[in,out] objectServer   - sdbus system object
+ * @param[in,out] assocOwners    - Owners of associations
+ * @param[in,out] assocInterfaces - Associations endpoints
+ *
+ * @return Void, objectServer and assocOwners updated if needed
+ */
+void checkAssociationEndpointRemoves(
+    const std::string& sourcePath, const std::string& owner,
+    const AssociationPaths& newAssociations,
+    sdbusplus::asio::object_server& objectServer,
+    AssociationOwnersType& assocOwners, AssociationInterfaces& assocInterfaces);