blob: ef4baa5347a5c6bd2e39b72179558d6ff5aed7f3 [file] [log] [blame]
Lei YUf77189f2019-08-07 14:26:30 +08001#include "utils.hpp"
2
3#include <gmock/gmock.h>
4
5namespace utils
6{
7
8class MockedUtils : public UtilsInterface
9{
10 public:
George Liu66a54ad2024-08-23 13:53:39 +080011 MockedUtils() = default;
12 MockedUtils(const MockedUtils&) = delete;
13 MockedUtils& operator=(const MockedUtils&) = delete;
14 MockedUtils(MockedUtils&&) = delete;
15 MockedUtils& operator=(MockedUtils&&) = delete;
16
George Liu047d9942024-08-23 13:44:31 +080017 ~MockedUtils() override = default;
Lei YUf77189f2019-08-07 14:26:30 +080018
19 MOCK_CONST_METHOD1(getPSUInventoryPath,
Patrick Williams374fae52022-07-22 19:26:55 -050020 std::vector<std::string>(sdbusplus::bus_t& bus));
Lei YUf77189f2019-08-07 14:26:30 +080021
22 MOCK_CONST_METHOD3(getService,
Patrick Williams374fae52022-07-22 19:26:55 -050023 std::string(sdbusplus::bus_t& bus, const char* path,
Lei YUf77189f2019-08-07 14:26:30 +080024 const char* interface));
25
Lei YUd0bbfa92019-09-11 16:10:54 +080026 MOCK_CONST_METHOD3(getServices,
Patrick Williams374fae52022-07-22 19:26:55 -050027 std::vector<std::string>(sdbusplus::bus_t& bus,
Lei YUd0bbfa92019-09-11 16:10:54 +080028 const char* path,
29 const char* interface));
30
Lei YUf77189f2019-08-07 14:26:30 +080031 MOCK_CONST_METHOD1(getVersionId, std::string(const std::string& version));
32
Lei YU5f3584d2019-08-27 16:28:53 +080033 MOCK_CONST_METHOD1(getVersion,
34 std::string(const std::string& psuInventoryPath));
35
Lei YU65207482019-10-11 16:39:36 +080036 MOCK_CONST_METHOD1(getLatestVersion,
37 std::string(const std::set<std::string>& versions));
38
Lei YU4b9ac392019-10-12 11:02:26 +080039 MOCK_CONST_METHOD2(isAssociated, bool(const std::string& psuInventoryPath,
40 const AssociationList& assocs));
41
Lei YUf77189f2019-08-07 14:26:30 +080042 MOCK_CONST_METHOD5(getPropertyImpl,
Patrick Williams374fae52022-07-22 19:26:55 -050043 any(sdbusplus::bus_t& bus, const char* service,
Lei YUf77189f2019-08-07 14:26:30 +080044 const char* path, const char* interface,
45 const char* propertyName));
46};
47
Lei YUc09155b2019-10-11 17:30:48 +080048static std::unique_ptr<MockedUtils> utils;
Lei YUff83c2a2019-09-12 13:55:18 +080049inline const UtilsInterface& getUtils()
Lei YUf77189f2019-08-07 14:26:30 +080050{
Lei YUc09155b2019-10-11 17:30:48 +080051 if (!utils)
52 {
53 utils = std::make_unique<MockedUtils>();
54 }
55 return *utils;
56}
57
58inline void freeUtils()
59{
60 utils.reset();
Lei YUf77189f2019-08-07 14:26:30 +080061}
62
63} // namespace utils