1 #pragma once 2 3 #include "pmbus.hpp" 4 #include "util_base.hpp" 5 6 #include <gpiod.hpp> 7 8 #include <bitset> 9 10 #include <gmock/gmock.h> 11 12 namespace phosphor 13 { 14 namespace pmbus 15 { 16 class MockedPMBus : public PMBusBase 17 { 18 19 public: 20 virtual ~MockedPMBus() = default; 21 22 MOCK_METHOD(uint64_t, read, 23 (const std::string& name, Type type, bool errTrace), 24 (override)); 25 MOCK_METHOD(std::string, readString, (const std::string& name, Type type), 26 (override)); 27 MOCK_METHOD(std::vector<uint8_t>, readBinary, 28 (const std::string& name, Type type, size_t length), 29 (override)); 30 MOCK_METHOD(void, writeBinary, 31 (const std::string& name, std::vector<uint8_t> data, Type type), 32 (override)); 33 MOCK_METHOD(void, findHwmonDir, (), (override)); 34 MOCK_METHOD(const fs::path&, path, (), (const, override)); 35 MOCK_METHOD(std::string, insertPageNum, 36 (const std::string& templateName, size_t page), (override)); 37 }; 38 } // namespace pmbus 39 40 namespace power 41 { 42 namespace psu 43 { 44 45 class MockedUtil : public UtilBase 46 { 47 public: 48 virtual ~MockedUtil() = default; 49 50 MOCK_METHOD(bool, getPresence, 51 (sdbusplus::bus::bus & bus, const std::string& invpath), 52 (const, override)); 53 MOCK_METHOD(void, setPresence, 54 (sdbusplus::bus::bus & bus, const std::string& invpath, 55 bool present, const std::string& name), 56 (const, override)); 57 MOCK_METHOD(void, setAvailable, 58 (sdbusplus::bus::bus & bus, const std::string& invpath, 59 bool available), 60 (const, override)); 61 MOCK_METHOD(void, handleChassisHealthRollup, 62 (sdbusplus::bus::bus & bus, const std::string& invpath, 63 bool addRollup), 64 (const, override)); 65 }; 66 67 class MockedGPIOInterface : public GPIOInterfaceBase 68 { 69 public: 70 MOCK_METHOD(int, read, (), (override)); 71 MOCK_METHOD(void, write, (int value, std::bitset<32> flags), (override)); 72 MOCK_METHOD(void, toggleLowHigh, (const std::chrono::milliseconds& delay), 73 (override)); 74 MOCK_METHOD(std::string, getName, (), (const, override)); 75 }; 76 77 const UtilBase& getUtils(); 78 79 void freeUtils(); 80 81 } // namespace psu 82 } // namespace power 83 84 } // namespace phosphor 85