blob: fde3bbd928b9fe83e58801e7e2937af535b2da29 [file] [log] [blame]
Manojkiran Edaacd6dd52019-10-15 15:00:51 +05301#pragma once
Manojkiran Edaacd6dd52019-10-15 15:00:51 +05302#include "mock_ethernet_interface.hpp"
Ratan Gupta35297172018-11-28 18:40:16 +05303#include "network_manager.hpp"
4
5#include <gmock/gmock.h>
6
7namespace phosphor
8{
9namespace network
10{
11
Manojkiran Eda1b5ec9c2020-06-13 15:29:28 +053012void initializeTimers();
13void refreshObjects();
14
Ratan Gupta35297172018-11-28 18:40:16 +053015class MockManager : public phosphor::network::Manager
16{
17 public:
Patrick Williamsc38b0712022-07-22 19:26:54 -050018 MockManager(sdbusplus::bus_t& bus, const char* path,
Ratan Gupta35297172018-11-28 18:40:16 +053019 const std::string& dir) :
20 phosphor::network::Manager(bus, path, dir)
21 {
22 }
23
Manojkiran Edaacd6dd52019-10-15 15:00:51 +053024 void createInterfaces() override
25 {
26 // clear all the interfaces first
27 interfaces.clear();
28 auto interfaceStrList = getInterfaces();
29 for (auto& interface : interfaceStrList)
30 {
31 fs::path objPath = objectPath;
32 // normal ethernet interface
33 objPath /= interface;
William A. Kennington IIIa520a392022-08-08 12:17:34 -070034 config::Parser config(config::pathForIntfConf(confDir, interface));
Manojkiran Edaacd6dd52019-10-15 15:00:51 +053035 auto intf =
36 std::make_shared<phosphor::network::MockEthernetInterface>(
William A. Kennington III0caf2212022-08-18 18:15:51 -070037 bus, objPath.string(), config, *this, true);
Manojkiran Edaacd6dd52019-10-15 15:00:51 +053038 intf->createIPAddressObjects();
39 intf->createStaticNeighborObjects();
William A. Kennington IIIa520a392022-08-08 12:17:34 -070040 intf->loadNameServers(config);
Manojkiran Edaacd6dd52019-10-15 15:00:51 +053041 this->interfaces.emplace(
42 std::make_pair(std::move(interface), std::move(intf)));
43 }
44 }
William A. Kennington III4717d932021-10-08 18:28:23 -070045
William A. Kennington III56ecc782021-10-07 18:44:50 -070046 MOCK_METHOD(void, reloadConfigs, (), (override));
Ratan Gupta35297172018-11-28 18:40:16 +053047};
48
49} // namespace network
50} // namespace phosphor