xref: /openbmc/phosphor-ipmi-blobs/test/manager_mock.hpp (revision 8bc117792fbf118dd74d015546c22612961ccc26)
1 #pragma once
2 
3 #include "manager.hpp"
4 
5 #include <blobs-ipmid/blobs.hpp>
6 #include <memory>
7 #include <string>
8 
9 #include <gmock/gmock.h>
10 
11 namespace blobs
12 {
13 
14 class ManagerMock : public ManagerInterface
15 {
16   public:
17     virtual ~ManagerMock() = default;
18 
19     MOCK_METHOD1(registerHandler, bool(std::unique_ptr<GenericBlobInterface>));
20     MOCK_METHOD0(buildBlobList, uint32_t());
21     MOCK_METHOD1(getBlobId, std::string(uint32_t));
22     MOCK_METHOD3(open, bool(uint16_t, const std::string&, uint16_t*));
23     MOCK_METHOD2(stat, bool(const std::string&, BlobMeta*));
24     MOCK_METHOD2(stat, bool(uint16_t, BlobMeta*));
25     MOCK_METHOD2(commit, bool(uint16_t, const std::vector<uint8_t>&));
26     MOCK_METHOD1(close, bool(uint16_t));
27     MOCK_METHOD3(read, std::vector<uint8_t>(uint16_t, uint32_t, uint32_t));
28     MOCK_METHOD3(write, bool(uint16_t, uint32_t, const std::vector<uint8_t>&));
29     MOCK_METHOD1(deleteBlob, bool(const std::string&));
30     MOCK_METHOD3(writeMeta,
31                  bool(uint16_t, uint32_t, const std::vector<uint8_t>&));
32 };
33 
34 /*
35  * Provide a one-off implementation for now.
36  * To test this, set managerReturned as you need.
37  */
38 ManagerInterface* managerReturned;
39 
40 ManagerInterface* getBlobManager()
41 {
42     return managerReturned;
43 }
44 
45 } // namespace blobs
46