treewide: Move timers out of networkd lib scope

Change-Id: I5fd0fc70d007e0851329172b8421846a78016d57
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/test/global_network_objects.cpp b/test/global_network_objects.cpp
deleted file mode 100644
index 9442546..0000000
--- a/test/global_network_objects.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "mock_network_manager.hpp"
-#include "types.hpp"
-
-namespace phosphor
-{
-
-namespace network
-{
-
-std::unique_ptr<MockManager> manager = nullptr;
-std::unique_ptr<Timer> reloadTimer = nullptr;
-
-} // namespace network
-} // namespace phosphor
diff --git a/test/ibm/hypervisor-network-mgr-test/test_hyp_network_manager.cpp b/test/ibm/hypervisor-network-mgr-test/test_hyp_network_manager.cpp
index 08fa317..65914ac 100644
--- a/test/ibm/hypervisor-network-mgr-test/test_hyp_network_manager.cpp
+++ b/test/ibm/hypervisor-network-mgr-test/test_hyp_network_manager.cpp
@@ -17,10 +17,9 @@
   public:
     sdbusplus::bus_t bus;
     HypNetworkMgr manager;
-    sdeventplus::Event event = sdeventplus::Event::get_default();
     TestHypNetworkManager() :
         bus(sdbusplus::bus::new_default()),
-        manager(bus, event, "/xyz/openbmc_test/network/hypervisor")
+        manager(bus, "/xyz/openbmc_test/network/hypervisor")
     {
         // TODO: Once the support for ipv6 has been added, the below
         // method call to set default values in the local copy
diff --git a/test/ibm/hypervisor-network-mgr-test/test_hyp_sys_config.cpp b/test/ibm/hypervisor-network-mgr-test/test_hyp_sys_config.cpp
index 4e4382e..cb75eba 100644
--- a/test/ibm/hypervisor-network-mgr-test/test_hyp_sys_config.cpp
+++ b/test/ibm/hypervisor-network-mgr-test/test_hyp_sys_config.cpp
@@ -18,10 +18,9 @@
     sdbusplus::bus_t bus;
     HypNetworkMgr manager;
     MockHypSysConfig sysConfigObj;
-    sdeventplus::Event event = sdeventplus::Event::get_default();
     TestHypSysConfig() :
         bus(sdbusplus::bus::new_default()),
-        manager(bus, event, "/xyz/openbmc_test/network/hypervisor"),
+        manager(bus, "/xyz/openbmc_test/network/hypervisor"),
         sysConfigObj(bus, "/xyz/openbmc_test/network/hypervisor/config",
                      manager)
     {
diff --git a/test/meson.build b/test/meson.build
index 0e580fd..68eac09 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -33,7 +33,6 @@
 test_lib = static_library(
   'networkd-test',
   'mock_syscall.cpp',
-  'global_network_objects.cpp',
   implicit_include_directories: false,
   include_directories: test_headers,
   dependencies: test_deps)
diff --git a/test/mock_network_manager.hpp b/test/mock_network_manager.hpp
deleted file mode 100644
index 87214d4..0000000
--- a/test/mock_network_manager.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-#include "network_manager.hpp"
-
-#include <gmock/gmock.h>
-
-namespace phosphor
-{
-namespace network
-{
-
-class MockManager : public Manager
-{
-  public:
-    MockManager(sdbusplus::bus_t& bus, const char* path,
-                const std::string& dir) :
-        Manager(bus, path, dir)
-    {
-    }
-
-    MOCK_METHOD(void, reloadConfigs, (), (override));
-
-    using Manager::handleAdminState;
-};
-
-} // namespace network
-} // namespace phosphor
diff --git a/test/test_ethernet_interface.cpp b/test/test_ethernet_interface.cpp
index 2b52e4c..e9f3973 100644
--- a/test/test_ethernet_interface.cpp
+++ b/test/test_ethernet_interface.cpp
@@ -1,7 +1,7 @@
 #include "config_parser.hpp"
 #include "ipaddress.hpp"
 #include "mock_ethernet_interface.hpp"
-#include "mock_network_manager.hpp"
+#include "test_network_manager.hpp"
 
 #include <net/if.h>
 
@@ -26,7 +26,7 @@
   public:
     sdbusplus::bus_t bus;
     std::filesystem::path confDir;
-    MockManager manager;
+    TestManager manager;
     MockEthernetInterface interface;
     TestEthernetInterface() :
         bus(sdbusplus::bus::new_default()), confDir(CaseTmpDir()),
@@ -37,7 +37,7 @@
     }
 
     static MockEthernetInterface makeInterface(sdbusplus::bus_t& bus,
-                                               MockManager& manager)
+                                               TestManager& manager)
     {
         AllIntfInfo info{InterfaceInfo{.idx = 1, .flags = 0, .name = "test0"}};
         return {bus, manager, info, "/xyz/openbmc_test/network"sv,
@@ -125,7 +125,7 @@
 TEST_F(TestEthernetInterface, addStaticNameServers)
 {
     ServerList servers = {"9.1.1.1", "9.2.2.2", "9.3.3.3"};
-    EXPECT_CALL(manager, reloadConfigs());
+    EXPECT_CALL(manager.mockReload, schedule());
     interface.staticNameServers(servers);
     config::Parser parser((confDir / "00-bmc-test0.network").native());
     EXPECT_EQ(servers, parser.map.getValueStrings("Network", "DNS"));
@@ -142,7 +142,7 @@
 TEST_F(TestEthernetInterface, addStaticNTPServers)
 {
     ServerList servers = {"10.1.1.1", "10.2.2.2", "10.3.3.3"};
-    EXPECT_CALL(manager, reloadConfigs());
+    EXPECT_CALL(manager.mockReload, schedule());
     interface.staticNTPServers(servers);
     config::Parser parser((confDir / "00-bmc-test0.network").native());
     EXPECT_EQ(servers, parser.map.getValueStrings("Network", "NTP"));
@@ -182,7 +182,8 @@
 
 TEST_F(TestEthernetInterface, DHCPEnabled)
 {
-    EXPECT_CALL(manager, reloadConfigs()).WillRepeatedly(testing::Return());
+    EXPECT_CALL(manager.mockReload, schedule())
+        .WillRepeatedly(testing::Return());
 
     using DHCPConf = EthernetInterfaceIntf::DHCPConf;
     auto test = [&](DHCPConf conf, bool dhcp4, bool dhcp6, bool ra) {
diff --git a/test/test_network_manager.cpp b/test/test_network_manager.cpp
index ffffb44..2e51ac1 100644
--- a/test/test_network_manager.cpp
+++ b/test/test_network_manager.cpp
@@ -1,5 +1,6 @@
+#include "test_network_manager.hpp"
+
 #include "config_parser.hpp"
-#include "mock_network_manager.hpp"
 
 #include <filesystem>
 #include <sdbusplus/bus.hpp>
@@ -19,7 +20,7 @@
 {
   protected:
     sdbusplus::bus_t bus;
-    MockManager manager;
+    TestManager manager;
     TestNetworkManager() :
         bus(sdbusplus::bus::new_default()),
         manager(bus, "/xyz/openbmc_test/abc", CaseTmpDir())
diff --git a/test/test_network_manager.hpp b/test/test_network_manager.hpp
new file mode 100644
index 0000000..eaf853b
--- /dev/null
+++ b/test/test_network_manager.hpp
@@ -0,0 +1,45 @@
+#pragma once
+#include "network_manager.hpp"
+
+#include <gmock/gmock.h>
+
+namespace phosphor
+{
+namespace network
+{
+
+struct MockExecutor : DelayedExecutor
+{
+    MOCK_METHOD((void), schedule, (), (override));
+    MOCK_METHOD((void), setCallback, (fu2::unique_function<void()> &&),
+                (override));
+};
+
+struct TestManagerData
+{
+    MockExecutor mockReload;
+    fu2::unique_function<void()> reloadCb;
+
+    inline MockExecutor& reloadForManager()
+    {
+        EXPECT_CALL(mockReload, setCallback(testing::_))
+            .WillOnce([&](fu2::unique_function<void()>&& cb) {
+                reloadCb = std::move(cb);
+            });
+        return mockReload;
+    }
+};
+
+struct TestManager : TestManagerData, Manager
+{
+    inline TestManager(sdbusplus::bus_t& bus, stdplus::zstring_view path,
+                       const std::filesystem::path& dir) :
+        Manager(bus, reloadForManager(), path, dir)
+    {
+    }
+
+    using Manager::handleAdminState;
+};
+
+} // namespace network
+} // namespace phosphor