blob: 80d374840fa449c3f5d1ad328d6f31486c1ea303 [file] [log] [blame]
William A. Kennington IIIabf17352020-12-22 21:07:11 -08001#include "buildjson.hpp"
2#include "image_mock.hpp"
3#include "triggerable_mock.hpp"
4#include "version_handler.hpp"
5
6#include <memory>
7#include <string>
8#include <utility>
9
10namespace ipmi_flash
11{
12
13auto createMockVersionConfig(const std::string& id,
14 ImageHandlerMock** im = nullptr,
15 TriggerMock** tm = nullptr)
16{
17 HandlerConfig<VersionBlobHandler::ActionPack> ret;
18 ret.blobId = id;
19 auto handler = std::make_unique<testing::StrictMock<ImageHandlerMock>>();
20 if (im != nullptr)
21 {
22 *im = handler.get();
23 }
24 ret.handler = std::move(handler);
25 ret.actions = std::make_unique<VersionBlobHandler::ActionPack>();
26 auto trigger = std::make_unique<testing::StrictMock<TriggerMock>>();
27 if (tm != nullptr)
28 {
29 *tm = trigger.get();
30 }
31 ret.actions->onOpen = std::move(trigger);
32 return ret;
33}
34
35template <typename C, typename Im = std::map<std::string, ImageHandlerMock*>,
36 typename Tm = std::map<std::string, TriggerMock*>>
37auto createMockVersionConfigs(const C& ids, Im* im = nullptr, Tm* tm = nullptr)
38{
39 std::vector<HandlerConfig<VersionBlobHandler::ActionPack>> ret;
40 for (const auto& id : ids)
41 {
42 ret.push_back(
43 createMockVersionConfig(id, im == nullptr ? nullptr : &(*im)[id],
44 tm == nullptr ? nullptr : &(*tm)[id]));
45 }
46 return ret;
47}
48
49} // namespace ipmi_flash