| #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(stdplus::PinnedRef<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 |