1 #pragma once 2 3 #include "pmbus.hpp" 4 #include "util_base.hpp" 5 6 #include <gmock/gmock.h> 7 8 namespace phosphor 9 { 10 namespace pmbus 11 { 12 class 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)); 20 MOCK_METHOD(std::string, readString, (const std::string& name, Type type), 21 (override)); 22 MOCK_METHOD(void, writeBinary, 23 (const std::string& name, std::vector<uint8_t> data, Type type), 24 (override)); 25 }; 26 } // namespace pmbus 27 28 namespace power 29 { 30 namespace psu 31 { 32 class 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 42 static std::unique_ptr<MockedUtil> util; 43 inline const UtilBase& getUtils() 44 { 45 if (!util) 46 { 47 util = std::make_unique<MockedUtil>(); 48 } 49 return *util; 50 } 51 52 inline void freeUtils() 53 { 54 util.reset(); 55 } 56 57 } // namespace psu 58 } // namespace power 59 60 } // namespace phosphor 61