blob: 8c58a8e362c139c4e5fd02616881b838eebe8427 [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:
11 virtual ~MockedUtils() = default;
12
13 MOCK_CONST_METHOD1(getPSUInventoryPath,
14 std::vector<std::string>(sdbusplus::bus::bus& bus));
15
16 MOCK_CONST_METHOD3(getService,
17 std::string(sdbusplus::bus::bus& bus, const char* path,
18 const char* interface));
19
Lei YUd0bbfa92019-09-11 16:10:54 +080020 MOCK_CONST_METHOD3(getServices,
21 std::vector<std::string>(sdbusplus::bus::bus& bus,
22 const char* path,
23 const char* interface));
24
Lei YUf77189f2019-08-07 14:26:30 +080025 MOCK_CONST_METHOD1(getVersionId, std::string(const std::string& version));
26
Lei YU5f3584d2019-08-27 16:28:53 +080027 MOCK_CONST_METHOD1(getVersion,
28 std::string(const std::string& psuInventoryPath));
29
Lei YUf77189f2019-08-07 14:26:30 +080030 MOCK_CONST_METHOD5(getPropertyImpl,
31 any(sdbusplus::bus::bus& bus, const char* service,
32 const char* path, const char* interface,
33 const char* propertyName));
34};
35
Lei YUc09155b2019-10-11 17:30:48 +080036static std::unique_ptr<MockedUtils> utils;
Lei YUff83c2a2019-09-12 13:55:18 +080037inline const UtilsInterface& getUtils()
Lei YUf77189f2019-08-07 14:26:30 +080038{
Lei YUc09155b2019-10-11 17:30:48 +080039 if (!utils)
40 {
41 utils = std::make_unique<MockedUtils>();
42 }
43 return *utils;
44}
45
46inline void freeUtils()
47{
48 utils.reset();
Lei YUf77189f2019-08-07 14:26:30 +080049}
50
51} // namespace utils