blob: cd85c3cfaca04c0cd772d8e75e55ec4648cf45e2 [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 YU65207482019-10-11 16:39:36 +080030 MOCK_CONST_METHOD1(getLatestVersion,
31 std::string(const std::set<std::string>& versions));
32
Lei YUf77189f2019-08-07 14:26:30 +080033 MOCK_CONST_METHOD5(getPropertyImpl,
34 any(sdbusplus::bus::bus& bus, const char* service,
35 const char* path, const char* interface,
36 const char* propertyName));
37};
38
Lei YUc09155b2019-10-11 17:30:48 +080039static std::unique_ptr<MockedUtils> utils;
Lei YUff83c2a2019-09-12 13:55:18 +080040inline const UtilsInterface& getUtils()
Lei YUf77189f2019-08-07 14:26:30 +080041{
Lei YUc09155b2019-10-11 17:30:48 +080042 if (!utils)
43 {
44 utils = std::make_unique<MockedUtils>();
45 }
46 return *utils;
47}
48
49inline void freeUtils()
50{
51 utils.reset();
Lei YUf77189f2019-08-07 14:26:30 +080052}
53
54} // namespace utils