blob: 63afffea75968f0f271704cb9824e6b49100b482 [file] [log] [blame]
Brandon Wyman3f1242f2020-01-28 13:11:25 -06001#pragma once
2
3#include "pmbus.hpp"
4#include "util_base.hpp"
5
6#include <gmock/gmock.h>
7
8namespace phosphor
9{
10namespace pmbus
11{
12class MockedPMBus : public PMBusBase
13{
14
15 public:
16 virtual ~MockedPMBus() = default;
17
18 MOCK_METHOD(uint64_t, read, (const std::string& name, Type type),
19 (override));
Brandon Wyman1d7a7df2020-03-26 10:14:05 -050020 MOCK_METHOD(std::string, readString, (const std::string& name, Type type),
21 (override));
Brandon Wyman59a35792020-06-04 12:37:40 -050022 MOCK_METHOD(void, writeBinary,
23 (const std::string& name, std::vector<uint8_t> data, Type type),
24 (override));
Brandon Wyman3f1242f2020-01-28 13:11:25 -060025};
26} // namespace pmbus
27
28namespace power
29{
30namespace psu
31{
32class MockedUtil : public UtilBase
33{
34 public:
35 virtual ~MockedUtil() = default;
36
37 MOCK_METHOD(bool, getPresence,
38 (sdbusplus::bus::bus & bus, const std::string& invpath),
39 (const, override));
40};
41
42static std::unique_ptr<MockedUtil> util;
43inline const UtilBase& getUtils()
44{
45 if (!util)
46 {
47 util = std::make_unique<MockedUtil>();
48 }
49 return *util;
50}
51
52inline void freeUtils()
53{
54 util.reset();
55}
56
57} // namespace psu
58} // namespace power
59
60} // namespace phosphor