xref: /openbmc/phosphor-power/tools/i2c/test/mocked_i2c_interface.hpp (revision 2cad31a41ebf4508b0f8819338630f82c951b161)
1ab1327c3SLei YU #pragma once
2ab1327c3SLei YU 
3ab1327c3SLei YU #include "../i2c_interface.hpp"
4ab1327c3SLei YU 
5ab1327c3SLei YU #include <gmock/gmock.h>
6ab1327c3SLei YU 
7ab1327c3SLei YU namespace i2c
8ab1327c3SLei YU {
9ab1327c3SLei YU 
10ab1327c3SLei YU class MockedI2CInterface : public I2CInterface
11ab1327c3SLei YU {
12ab1327c3SLei YU   public:
13ab1327c3SLei YU     virtual ~MockedI2CInterface() = default;
14ab1327c3SLei YU 
15d45a9a6dSShawn McCarney     MOCK_METHOD(void, open, (), (override));
16d45a9a6dSShawn McCarney     MOCK_METHOD(bool, isOpen, (), (const, override));
17d45a9a6dSShawn McCarney     MOCK_METHOD(void, close, (), (override));
18d45a9a6dSShawn McCarney 
19ab1327c3SLei YU     MOCK_METHOD(void, read, (uint8_t& data), (override));
20ab1327c3SLei YU     MOCK_METHOD(void, read, (uint8_t addr, uint8_t& data), (override));
21ab1327c3SLei YU     MOCK_METHOD(void, read, (uint8_t addr, uint16_t& data), (override));
221d103428SLei YU     MOCK_METHOD(void, read,
231d103428SLei YU                 (uint8_t addr, uint8_t& size, uint8_t* data, Mode mode),
24ab1327c3SLei YU                 (override));
25ab1327c3SLei YU 
26ab1327c3SLei YU     MOCK_METHOD(void, write, (uint8_t data), (override));
27ab1327c3SLei YU     MOCK_METHOD(void, write, (uint8_t addr, uint8_t data), (override));
28ab1327c3SLei YU     MOCK_METHOD(void, write, (uint8_t addr, uint16_t data), (override));
291d103428SLei YU     MOCK_METHOD(void, write,
301d103428SLei YU                 (uint8_t addr, uint8_t size, const uint8_t* data, Mode mode),
31ab1327c3SLei YU                 (override));
32*a3ff7e71SShawn McCarney 
33*a3ff7e71SShawn McCarney     MOCK_METHOD(void, processCall,
34*a3ff7e71SShawn McCarney                 (uint8_t addr, uint16_t writeData, uint16_t& readData),
35*a3ff7e71SShawn McCarney                 (override));
36*a3ff7e71SShawn McCarney     MOCK_METHOD(void, processCall,
37*a3ff7e71SShawn McCarney                 (uint8_t addr, uint8_t writeSize, const uint8_t* writeData,
38*a3ff7e71SShawn McCarney                  uint8_t& readSize, uint8_t* readData),
39*a3ff7e71SShawn McCarney                 (override));
40ab1327c3SLei YU };
41ab1327c3SLei YU 
42ab1327c3SLei YU } // namespace i2c
43