184bff8beSJason Ling #pragma once
284bff8beSJason Ling 
384bff8beSJason Ling #include "image_handler.hpp"
484bff8beSJason Ling 
5c78bfc82SJason Ling #include <memory>
6c78bfc82SJason Ling 
784bff8beSJason Ling #include <gmock/gmock.h>
884bff8beSJason Ling 
984bff8beSJason Ling namespace ipmi_flash
1084bff8beSJason Ling {
1184bff8beSJason Ling 
1284bff8beSJason Ling class ImageHandlerMock : public ImageHandlerInterface
1384bff8beSJason Ling {
1484bff8beSJason Ling   public:
1584bff8beSJason Ling     virtual ~ImageHandlerMock() = default;
16f450486fSWilly Tu     MOCK_METHOD(bool, open, (const std::string&, std::ios_base::openmode),
17f450486fSWilly Tu                 (override));
18f450486fSWilly Tu     MOCK_METHOD(void, close, (), (override));
19f450486fSWilly Tu     MOCK_METHOD(bool, write, (std::uint32_t, const std::vector<std::uint8_t>&),
20f450486fSWilly Tu                 (override));
21f450486fSWilly Tu     MOCK_METHOD(std::optional<std::vector<std::uint8_t>>, read,
22f450486fSWilly Tu                 (std::uint32_t, std::uint32_t), (override));
23f450486fSWilly Tu     MOCK_METHOD(int, getSize, (), (override));
2484bff8beSJason Ling };
2584bff8beSJason Ling 
26*99d292a3SWilly Tu std::unique_ptr<ImageHandlerMock> CreateImageMock();
27c78bfc82SJason Ling 
2884bff8beSJason Ling } // namespace ipmi_flash
29