xref: /openbmc/phosphor-ipmi-flash/bmc/test/image_mock.hpp (revision 6ee93c6d0add031e38fdbca093d9458549ca2e73)
1 #pragma once
2 
3 #include "image_handler.hpp"
4 
5 #include <memory>
6 
7 #include <gmock/gmock.h>
8 
9 namespace ipmi_flash
10 {
11 
12 class ImageHandlerMock : public ImageHandlerInterface
13 {
14   public:
15     virtual ~ImageHandlerMock() = default;
16     MOCK_METHOD2(open, bool(const std::string&, std::ios_base::openmode));
17     MOCK_METHOD0(close, void());
18     MOCK_METHOD2(write, bool(std::uint32_t, const std::vector<std::uint8_t>&));
19     MOCK_METHOD2(read, std::optional<std::vector<std::uint8_t>>(std::uint32_t,
20                                                                 std::uint32_t));
21     MOCK_METHOD0(getSize, int());
22 };
23 
24 std::unique_ptr<ImageHandlerMock> CreateImageMock()
25 {
26     return std::make_unique<ImageHandlerMock>();
27 }
28 
29 } // namespace ipmi_flash
30